Текст
                    Б.В. Соболь, А.Б. Галин,
Ю.В. Панов, Е.В. Рашидова,
Ы.Н. Садовой
ВЫСШЕЕ
ОБРАЗОВАНИЕ
ИНФОРМАТИКА


Высшее образование Б.В. Соболь, А.Б. Галин, Ю.В. Панов, Е.В. Рашидова, Н.Н. Садовой Информатика Учебник Издание третье, дополненное и переработанное Ростов-на-Дону «Феникс» 2007
УДК 004(075.8) ББК 32.81я73. КТК21 И 74 Рецензенты: кафедра «Информационные системы в строительстве» РГСУ, доктор технических наук, профессор РГУ А. В. Аграновский И 74 Информатика : учебник/ Б.В. Соболь [и др.]-Изд. 3-е, дополн. и перераб. — Ростов н/Д: Феникс, 2007. — 446 [1] с.-(Высшее образование). ISBN 978-5-222-12081-1 В учебнике представлены все разделы информатики, определяющие современный уровень подготовки специалистов в системе высшего образования. По своему содержанию учебник полностью соответствует требованиям государственных образовательных стандартов для широкого спектра специальностей высших учебных заведений. Адресован преподавателям и студентам высших учебных заведений, слушателям институтов повышения квалификации, пользователям, а также широкому кругу читателей. УДК 004(075.8) ISBN 978-5-222-12081-1 ББК 32.81я73 © Соболь Б.В., Галин А.Б., Панов Ю.В., Рашидова Е.В., Садовой Н.Н., 2007 © Оформление, изд-во «Феникс», 2007
предисловие Широкое использование информационных технологий во всех сферах человеческой деятельности является одним из основных признаков цивилизованного общества. Мировая история не знает никакой другой отрасли науки и технологий, развивающейся столь стремительными темпами. Трудно представить себе современного специалиста, не владеющего основными навыками работы с компьютером. Эти процессы находят свое отражение и в системе высшего образования. В 90-е годы в нашей стране появился и интенсивно развивается широкий спектр специальностей, связанных с информационными технологиями. Вместе с этим информатика заняла свое достойное место среди базовых дисциплин и стала неотъемлемой компонентой учебных планов всех без исключения специальностей высших учебных заведений. Уникальность этой науки обусловлена и еще одним очень важным обстоятельством. В настоящее время информационные технологии проникли практически во все общенаучные и специальные дисциплины, стали привычным инструментарием как в учебной, научной, так и практической деятельности. По замыслу авторов новый учебник по информатике, во-первых, по содержанию и форме изложения является актуальным. Авторы не стремятся к детальному и исчерпывающему изложению технических характеристик и возможностей всех аппаратных средств и программных продуктов. Вместе с тем в книге отражены не только все основные принципы и положения информатики как науки, но и современные аспекты и тенденции развития информационных технологий. Во-вторых, содержание книги соответствует основным положениям государственных образовательных стандартов по информатике. Это позволяет использовать ее в качестве основного учебника по этой дисциплине студентам подавляющего большинства специальностей, за исключением тех, кто специализируется в этой области. В-третьих, что не менее важно, новый учебник по информатике в отличие от многих своих собратьев является компактным. Авторы уверены, 3
что последнее обстоятельство создаст дополнительные удобства для студентов и преподавателей, пользующихся этой книгой. Содержание учебника — это, в основном, теоретический материал по всем разделам изучаемой дисциплины, или несколько расширенный вариант лекционного курса по информатике для студентов всех специальностей (за исключением профилирующих) Донского государственного технического университета. Отдельным изданием в ближайшее время выйдет «Практикум по информатике», основой которого является комплекс лабораторных и практических занятий, сопровождающих учебный курс. Мы надеемся, что новая книга по информатике не только поможет вам лучше понять, успешно освоить эту науку, но и полюбить ее, сделать неотъемлемой частью жизни и профессиональной деятельности. Авторы
СПИCOK СОКРАЩЕНИЙ ABM — аналоговая вычислительная машина АЛУ — арифметико-логическое устройство АО — аппаратное обеспечение АПС — аппаратно-программные средства АЦП — аналогово-цифровой преобразователь БД — база данных БИС — большая интегральная схема ВЗУ — внешнее запоминающее устройство ГВС — глобальные вычислительные сети ДНФ — дизъюнктивная нормальная форма ЖКИ — жидкокристаллические индикаторы ИС — информационная система КНФ — конъюнктивная нормальная форма КС — компьютерная система ЛВС — локальные вычислительные сети НСД — несанкционированный доступ ОЗУ — оперативное запоминающее устройство ООП — объектно-ориентированное проектирование ОС — операционная система ПЗУ — постоянное запоминающее устройство ПО — программное обеспечение ППЗУ — перепрограммируемые ПЗУ ППО — прикладное программное обеспечение ППП — пакет прикладных программ РОН — регистры общего назначения СА — сетевой адаптер САУ — система автоматического управления СБИС — сверхбольшая интегральная схема 5
СВТ — средства вычислительной техники СУБД — система управления базой данных ФС — файловая система ФСА — функциональная структура алгоритма ЦАП — цифро-аналоговый преобразователь ЦВМ — цифровая вычислительная машина ЦП — центральный процессор ЭВМ — электронная вычислительная машина ЭЛТ — электронно-лучевая трубка AGP (Accelerated Graphics Port) — локальная шина видеоконтроллера CASE (Computer-Aided Software Engineering) — автоматизированные системы проектирования программных средств CD (Compact Disk) — оптический компакт-диск CD-R (CD-Recodable) — оптический компакт-диск с однократной записью CD-RW (CD-Rewritable) — оптический компакт-диск с многократной записью CISC (Complex Instruction Set Computer) — полная система команд переменной длины CMYK — модель представления светоотражающих графических объектов DDE (Dynamic Data Exchange) — динамический обмен данных DDoS (Distributed DoS) — DoS атака, проводимая в определенное время DoS (Deny-of-Service) — атака на отказ в обслуживании DOS (Disk Operating System) — дисковая операционная система dpi (dots per inch) — количество точек на дюйм DRAM (Dynamic RAM) — ОЗУ динамического типа DVD (Digital Versatile Disk) — компакт-диск с высокой плотностью записи 6
FRAM (Ferroelectric RAM) — ферроэлектрическая память с произвольным доступом HTML (Hyper Text Markup Language) — универсальный язык разметки гипертекста HTTP (Hypertext Transfer Protocol) — протокол передачи гипертекста IP (Internet Protocol) — маршрутный протокол Интернет ISO (International Organization for Standardization) — Международная организация по стандартизации LCD (Liquid Crystal Display) — жидкокристаллические индикаторы LEP (Light Emission Plastics) — самоизлучающие мониторы MS (MicroSoft) Майкрософт — фирма-производитель программного обеспечения OLE (Object Linking and Embedding) — принцип внедрения и связывания объектов OMT(Object Modeling Technique) — технология объектного моделирования OOSE (Object-Oriented Software Engineering) — объектно-ориентированная разработка программного обеспечения OSI (Model of Open System Interconnections) — модель взаимодействия открытых систем PC (Personal Computer) — персональный компьютер PCI (Peripheral Component Interconnect) — общая шина настольных компьютеров PCMCIA (Personal Computer Memory Card International Association) — общая шина переносных компьютеров PDP (Plasma Display Panels) — плазменные мониторы PL/1 (Programming Language One) — язык программирования (ПЛ/1) PPM (Page Per Minute) — количество страниц в минуту RAM (Random Access Memory) — память со свободным доступом 7
RGB (Red Green Blue) — модель представления светоизлучающих графических объектов RISC (Reduced Instruction Set Computer) — сокращенный набор команд фиксированной длины ROM (Read Only Memory) — память только для чтения SMTP (Simple Mail Transfer Protocol) — простой протокол пересылки почты SRAM (Static RAM) — ОЗУ статического типа STP (Shielded Twisted Pair) — экранированная витая пара TFT (Thin Film Transistor) — жидкокристаллический экран с тонкопленочным транзистором TCP (Transmission Control Protocol) — транспортный протокол Интернет UML (Unified Modeling Language) — унифицированный язык моделирования URL (Uniform Resource Locator) — унифицированный указатель ресурса UTP (Unshielded Twisted Pair) — неэкранированная витая пара WYSIWYG (What You See Is What You Get) — принцип «что видишь (на экране), то и получишь (при печати на листе)» WWW (World Wide Web ) — Всемирная паутина
1. Информации, информатика, информационные технологии В жизни современного человека слово «информация» очень распространено и часто используется в разных контекстах. Информацией обычно называют любые сведения, которые кого-либо интересуют, которые мы получаем или передаем. Например, мы говорим: «В результате научных исследований нами получена информация о...» или «Из книг мы информированы о...», «По телевидению была передана информация о...». Фундаментальной чертой цивилизации является рост производства и потребления информации во всех отраслях человеческой деятельности. Вся жизнь человека, так или иначе, связана с получением, накоплением, обработкой, передачей информации. Практически в любой деятельности человека: в процессе чтения книг, просмотра телепередач, в разговоре — мы постоянно получаем и обрабатываем информацию. Начиная с XVII в. объем научной информации удваивался, примерно, каждые 20 лет, в настоящее время он удваивается в 5—6 лет и тенденция ускорения сохраняется. Одной из важнейших проблем человечества наших дней является лавинообразный рост потока информации в любой отрасли жизнедеятельности. Подсчитано, что современный специалист должен тратить около 80 % своего рабочего времени, чтобы уследить за всеми новыми работами в его области деятельности. Увеличение объема используемой человеком информации и растущий спрос на нее обусловили появление отрасли знания, связанной с автоматизацией обработки информации, — информатики. Далее мы дадим более точное определение понятию «информация», а также расскажем о предмете и задачах информатики, покажем ее большое прикладное значение и в связи с этим расскажем об информационных технологиях. 9
1.1. Информации 1.1.1. Понятие информации Термин информация используется во многих науках и во многих сферах человеческой деятельности. Он происходит от латинского слова «informatio», что означает «сведения, разъяснения, изложение». Несмотря на привычность этого термина, строгого и общепринятого определения не существует. В рамках рассматриваемой нами науки «информация» является первичным и, следовательно, неопределимым понятием, подобно понятиям «точка» в математике, «тело» в механике, «поле» в физике. Несмотря на то, что этому понятию невозможно дать строгое определение, имеется возможность описать его через проявляемые свойства и мы попытаемся это сделать. Как известно, в материальном мире все физические объекты, окружающие нас, являются либо телами, либо полями. Физические объекты, взаимодействуя друг с другом, порождают сигналы различных типов. В общем случае любой сигнал — это изменяющийся во времени физический процесс. Такой процесс может содержать различные характеристики. Характеристика, которая используется для представления данных, называется параметром сигнала. Если параметр сигнала принимает ряд последовательных значений и их конечное число, то сигнал называется дискретным. Если параметр сигнала — непрерывная во времени функция, то сигнал называется непрерывным. В свою очередь, сигналы могут порождать в физических телах изменения свойств. Это явление называется регистрацией сигналов. Сигналы, зарегистрированные на материальном носителе, называются данными. Существует большое количество физических методов регистрации сигналов на материальных носителях. Это могут быть механические воздействия, перемещения, изменения формы или магнитных, электрических, оптических параметров, химического состава, кристаллической структуры. В соответствии с методами регистрации, данные могут храниться и транспортироваться на различных носителях. Наиболее часто используемый и привычный носитель — бумага; сигналы регистрируются путем изменения ее оптических свойств. Сигналы могут быть зарегистрированы и путем изменения 10
магнитных свойств полимерной ленты с нанесенным ферромагнитным покрытием, как это делается в магнитофонных записях, и путем изменения химических свойств в фотографии. Данные несут информацию о событии, но не являются самой информацией, так как одни и те же данные могут восприниматься (отображаться или еще говорят интерпретироваться) в сознании разных людей совершенно по-разному. Например, текст, написанный на русском языке (т.е. данные), даст различную информацию человеку, знающему алфавит и язык, и человеку, не знающему их. Чтобы получить информацию, имея данные, необходимо к ним применить методы, которые преобразуют данные в понятия, воспринимаемые человеческим сознанием. Методы, в свою очередь, тоже различны. Например, человек, знающий русский язык, применяет адекватный метод, читая русский текст. Соответственно, человек, не знающий русского языка и алфавита, применяет неадекватный метод, пытаясь понять русский текст. Таком образом, можно считать, что информация — это продукт взаимодействия данных и адекватных методов. Из вышесказанного следует, что информация не является статическим объектом, она появляется и существует в момент слияния методов и данных, все прочее время она находится в форме данных. Момент слияния данных и методов называется информационным процессом (рис. 1.1). Сигналы Регистрация сигналов физический процесс Данные Методы Информация Рис. 1.1. Формирование информации Человек воспринимает первичные данные различными органами чувств (их у нас пять — зрение, слух, осязание, обоняние, вкус), и на их основе сознанием могут быть построены вторичные абстрактные (смысловые, семантические) данные. Таким образом, первичная информация может существовать в виде 11 Тела, поля
рисунков, фотографий, звуковых, вкусовых ощущений, запахов, а вторичная — в виде чисел, символов, текстов, чертежей, радиоволн, магнитных записей. 1.1.2. Свойства информации Понятие «информация», как уже было сказано ранее, используется многими научными дисциплинами, имеет большое количество разнообразных свойств, но каждая дисциплина обращает внимание на те свойства информации, которые ей наиболее важны. В рамках нашего рассмотрения наиболее важными являются такие свойства, как дуализм, полнота, достоверность, адекватность, доступность, актуальность. Рассмотрим их подробнее. Дуализм информации характеризует ее двойственность. С одной стороны, информация объективна в силу объективности данных, с другой — субъективна, в силу субъективности применяемых методов. Иными словами, методы могут вносить в большей или меньшей степени субъективный фактор и таким образом влиять на информацию в целом. Например, два человека читают одну и ту же книгу и получают подчас весьма разную информацию, хотя прочитанный текст, т.е. данные, были одинаковы. Более объективная информация применяет методы с меньшим субъективным элементом. Полнота информации характеризует степень достаточности данных для принятия решения или создания новых данных на основе имеющихся. Неполный набор данных оставляет большую долю неопределенности, т.е. большое число вариантов выбора, а это потребует применения дополнительных методов, например, экспертных оценок, бросание жребия и т.п. Избыточный набор данных затрудняет доступ к нужным данным, создает повышенный информационный шум, что также вызывает необходимость дополнительных методов, например, фильтрацию, сортировку. И неполный и избыточный наборы затрудняют получение информации и принятие адекватного решения. Достоверность информации — это свойство, характеризующее степень соответствия информации реальному объекту с необходимой точностью. При работе с неполным набором данных достоверность 12
информации может характеризоваться вероятностью, например, можно сказать, что при бросании монеты с вероятностью 50 % выпадет герб. Адекватность информации выражает степень соответствия создаваемого с помощью информации образа реальному объекту, процессу, явлению. Полная адекватность достигается редко, так как обычно приходится работать с не самым полным набором данных, т.е. присутствует неопределенность, затрудняющая принятие адекватного решения. Получение адекватной информации также затрудняется при недоступности адекватных методов. Доступность информации — это возможность получения информации при необходимости. Доступность складывается из двух составляющих: из доступности данных и доступности методов. Отсутствие хотя бы одного дает неадекватную информацию. Актуальность информации. Информация существует во времени, так как существуют во времени все информационные процессы. Информация, актуальная сегодня, может стать совершенно ненужной по истечении некоторого времени. Например, программа телепередач на нынешнюю неделю будет неактуальна для многих телезрителей на следующей неделе. 1.1.3. Понятие количество информации Свойство полноты информации негласно предполагает, что имеется возможность измерять количество информации. Какое количество информации содержится в данной книге, какое количество информации в популярной песенке? Что содержит больше информации: роман «Война и мир» или сообщение, полученное в письме от товарища? Ответы на подобные вопросы не просты и не однозначны, так как во всякой информации присутствует субъективная компонента. А возможно ли вообще объективно измерить количество информации? Важнейшим результатом теории информации является вывод о том, что в определенных, весьма широких условиях, можно, пренебрегая качественными особенностями информации, выразить ее количество числом, а следовательно, сравнивать количество информации, содержащейся в различных группах данных. 13
Количеством информации называют числовую характеристику информации, отражающую ту степень неопределенности, которая исчезает после получения информации. Рассмотрим пример: дома осенним утром, старушка предположила, что могут быть осадки, а могут и не быть, а если будут, то в форме снега или в форме дождя, т.е. «бабушка надвое сказала — то ли будет, то ли нет, то ли дождик, то ли снег». Затем, выглянув в окно, увидела пасмурное небо и с большой вероятностью предположила — осадки будут, т.е., получив информацию, снизила количество вариантов выбора. Далее, взглянув на наружный термометр, она увидела, что температура отрицательная, значит, осадки следует ожидать в виде снега. Таким образом, получив последние данные о температуре, бабушка получила полную информацию о предстоящей погоде и исключила все, кроме одного, варианты выбора. Приведенный пример показывает, что понятия «информация», «неопределенность», «возможность выбора» тесно связаны. Получаемая информация уменьшает число возможных вариантов выбора (т.е. неопределенность), а полная информация не оставляет вариантов вообще. За единицу информации принимается один бит (англ. bit — binary digit — двоичная цифра). Это количество информации, при котором неопределенность, т.е. количество вариантов выбора, уменьшается вдвое или, другими словами, это ответ на вопрос, требующий односложного разрешения — да или нет. Бит — слишком мелкая единица измерения информации. На практике чаще применяются более крупные единицы, например, байт, являющийся последовательностью из восьми бит. Именно восемь битов, или один байт, используется для того, чтобы закодировать символы алфавита, клавиши клавиатуры компьютера. Один байт также является минимальной единицей адресуемой памяти компьютера, т.е. обратиться в память можно к байту, а не биту. Широко используются еще более крупные производные единицы информации: 1 Килобайт (Кбайт) = 1024 байт = 210 байт, 1 Мегабайт (Мбайт) = 1024 Кбайт = 220 байт, 1 Гигабайт (Гбайт) = 1024 Мбайт = 230 байт, 1 Терабайт (Тбайт) = 1024 Гбайт = 240 байт. 14
За единицу информации можно было бы выбрать количество информации, необходимое для различения, например, десяти равновероятных сообщений. Это будет не двоичная (бит), а десятичная (дит) единица информации. Но данная единица используется редко в компьютерной технике, что связано с аппаратными особенностями компьютеров. 1.1.4. Информационные процессы Получение информации тесно связано с информационными процессами, поэтому имеет смысл рассмотреть отдельно их виды. Сбор данных — это деятельность субъекта по накоплению данных с целью обеспечения достаточной полноты. Соединяясь с адекватными методами, данные рождают информацию, способную помочь в принятии решения. Например, интересуясь ценой товара, его потребительскими свойствами, мы собираем информацию для того, чтобы принять решение: покупать или не покупать его. Передача данных — это процесс обмена данными. Предполагается, что существует источник информации, канал связи, приемник информации, и между ними приняты соглашения о порядке обмена данными, эти соглашения называются протоколами обмена. Например, в обычной беседе между двумя людьми негласно принимается соглашение, не перебивать друг друга во время разговора. Хранение данных — это поддержание данных в форме, постоянно готовой к выдаче их потребителю. Одни и те же данные могут быть востребованы не однажды, поэтому разрабатывается способ их хранения (обычно на материальных носителях) и методы доступа к ним по запросу потребителя. Обработка данных — это процесс преобразования информации от исходной ее формы до определенного результата. Сбор, накопление, хранение информации часто не являются конечной целью информационного процесса. Чаще всего первичные данные привлекаются для решения какой-либо проблемы, затем они преобразуются шаг за шагом в соответствии с алгоритмом решения задачи до получения выходных данных, которые после анализа пользователем предоставляют необходимую информацию. 15
1.1.5. Информация в жизни человечества Как мы уже выяснили, человечество со дня своего выделения из животного мира значительную часть своего времени и внимания уделяло информационным процессам. На первых этапах носителем данных была память, и информация от одного человека к другому передавалась устно. Этот способ передачи информации был ненадежен и подвержен большим искажениям, ввиду естественного свойства памяти утрачивать редко используемые данные. По мере развития цивилизации, объемы информации, которые необходимо было накапливать и передавать, росли, и человеческой памяти стало не хватать — появилась письменность. Это великое изобретение было сделано шумерами около шести тысяч лет назад. Оно позволило наряду с простыми записями счетов, векселей, рецептов записывать наблюдения за звездным небом, за погодой, за природой. Изменился смысл информационных сообщений. Появилась возможность обобщать, сопоставлять, переосмысливать ранее сохраненные сведения. Это же в свою очередь дало толчок развитию истории, литературы, точным наукам и в конечном итоге изменило общественную жизнь. Изобретение письменности характеризует первую информационную революцию. Дальнейшее накопление человечеством информации привело к увеличению числа людей, пользовавшихся ею, но письменные труды одного человека могли быть достоянием небольшого окружения. Возникшее противоречие было разрешено созданием печатного станка. Эта веха в истории цивилизации характеризуется как вторая информационная революция (началась в XVI в.). Доступ к информации перестал быть делом отдельных лиц, появилась возможность многократно увеличить объем обмена информацией, что привело к большим изменениям в науке, культуре и общественной жизни. Третья информационная революция связывается с открытием электричества и появлением (в конце XIX в.) на его основе новых средств коммуникации — телефона, телеграфа, радио. Возможности накопления информации для тех времен стали поистине безграничными, а скорость обмена очень высокой. К середине XX в. появились быстрые технологические процессы, управлять которыми человек не успевал. Проблема управления 16
техническими объектами могла решаться только с помощью универсальных автоматов, собирающих, обрабатывающих данные и выдающих решение в форме управляющих команд. Ныне эти автоматы называются компьютерами. Бурно развивавшаяся наука и промышленность привели к росту информационных ресурсов в геометрической прогрессии, что породило проблемы доступа к большим объемам информации. Наше время отмечается как четвертая информационная революция. Пользователями информации стали миллионы людей. Появились дешевые компьютеры, доступные миллионам пользователей. Компьютеры стали мультимедийными, т.е. они обрабатывают различные виды информации: звуковую, графическую, видео и др. Это, в свою очередь, дало толчок к широчайшему использованию компьютеров в различных областях науки, техники, производства, быта. Средства связи получили повсеместное распространение, а компьютеры для совместного участия в информационном процессе соединяются в компьютерные сети. Появилась всемирная компьютерная сеть Интернет, услугами которой пользуется значительная часть населения планеты, оперативно получая и обмениваясь данными, т.е. формируется единое мировое информационное пространство. В настоящее время круг людей, занимающихся обработкой информации, вырос до небывалых размеров, а скорость обмена стала просто фантастической, компьютеры применяются практически во всех областях жизни людей. На наших глазах появляется информационное общество, где акцент внимания и значимости смещается с традиционных видов ресурсов (материальные, финансовые, энергетические и пр.) на информационный ресурс, который, хотя всегда существовал, но не рассматривался ни как экономическая, ни как иная категория. Информационные ресурсы — это отдельные документы и массивы документов в библиотеках, архивах, фондах, банках данных, информационных системах и других хранилищах. Иными словами, информационные ресурсы — это знания, подготовленные людьми для социального использования в обществе и зафиксированные на материальных носителях. Информационные ресурсы страны, региона, организации все чаще рассматриваются как стратегические ресурсы, аналогичные по значимости запасам сырья, энергии, ископаемых и прочим ресурсам. 17
Развитие мировых информационных ресурсов позволило: • превратить деятельность по оказанию информационных услуг в глобальную человеческую деятельность; • сформировать мировой и внутригосударственный рынок информационных услуг; • повысить обоснованность и оперативность принимаемых решений в фирмах, банках, биржах, промышленности, торговле и др. за счет своевременного использования необходимой информации. 1.2. Предмет и структура информатики Термин информатика получил распространение с середины 80-х гг. прошлого века. Он состоит из корня inform — «информация» и суффикса matics — «наука о...». Таким образом, информатика — это наука об информации. В англоязычных странах термин не прижился, информатика там называется Computer Science — наука о компьютерах. Информатика — молодая, быстро развивающаяся наука, поэтому строгого и точного определения ее предмета пока не сформулировано. В одних источниках информатика определяется как наука, изучающая алгоритмы, т.е. процедуры, позволяющие за конечное число шагов преобразовать исходные данные в конечный результат, в других — на первый план выставляется изучение компьютерных технологий. Наиболее устоявшимися посылками в определении предмета информатики в настоящее время являются указания на изучение информационных процессов (т.е. сбора, хранения, обработки, передачи данных) с применением компьютерных технологий. При таком подходе наиболее точным, по нашему мнению, является следующее определение: Информатика — это наука, изучающая: • методы реализации информационных процессов средствами вычислительной техники (СВТ); • состав, структуру, общие принципы функционирования СВТ; • принципы управления СВТ. Из определения следует, что информатика — прикладная наука, использующая научные достижения многих наук. Кроме того, информатика — практическая наука, которая не только занимается описа- 18
тельным изучением перечисленных вопросов, но и во многих случаях предлагает способы их решения. В этом смысле информатика технологична и часто смыкается с информационными технологиями. Методы реализации информационных процессов находятся на стыке информатики с теорией информации, статистикой, теорией кодирования, математической логикой, документоведением и т.д. В этом разделе изучаются вопросы: • представление различных типов данных (числа, символы, текст, звук, графика, видео и т.д.) в виде, удобном для обработки СВТ (кодирование данных); • форматы представления данных (предполагается, что одни и те же данные могут быть представлены разными способами); • теоретические проблемы сжатия данных; • структуры данных, т.е. способы хранения с целью удобного доступа к данным. В изучении состава, структуры, принципов функционирования средств вычислительной техники используются научные положения из электроники, автоматики, кибернетики. В целом этот раздел информатики известен как аппаратное обеспечение (АО) информационных процессов. В этом разделе изучаются: • основы построения элементов цифровых устройств; • основные принципы функционирования цифровых вычислительных устройств; • архитектура СВТ — основные принципы функционирования систем, предназначенных для автоматической обработки данных; • приборы и аппараты, составляющие аппаратную конфигурацию вычислительных систем; • приборы и аппараты, составляющие аппаратную конфигурацию компьютерных сетей. В разработке методов управления средствами вычислительной техники (а средствами цифровой вычислительной техники управляют программы, указывающие последовательность действий, которые должно выполнить СВТ) используют научные положения из теории алгоритмов, логики, теории графов, лингвистики, теории игр. Этот раздел информатики известен как программное обеспечение (ПО) СВТ. В этом разделе изучаются: • средства взаимодействия аппаратного и программного обеспечения; 19
• средства взаимодействия человека с аппаратным и программным обеспечением, объединяемые понятием интерфейс; • программное обеспечение СВТ (ПО). Обобщая сказанное, можно предложить следующую структурную схему (рис. 1.2): ИНФОРМАТИКА Информационные процессы Теория кодирования. Теория информации. Теория графов. Теория множеств. Логика и др. Кодирование данных. Форматы данных. Сжатие данных. Структуры данных и др. Аппаратное обеспечение Логика. Электроника. Автоматика. Кибернетика и др. Синтез цифровых устройств. Архитектура СВТ. Аппараты и приборы вычислительных систем. Аппараты и приборы компьютерных сетей Программное обеспечение Теория алгоритмов. Логика. Теория графов. Теория игр. Лингвистика и др. Интерфейсы. Вспомогательные программы. Системы программирования. Прикладные программные продукты Рис. 1.2. Структура информатики В настоящей главе будут подробно рассмотрены некоторые проблемы представления данных различных типов: числовых, символьных, звуковых, графических. Также будут рассмотрены некоторые структуры, позволяющие хранить данные с возможностью удобного доступа к ним. Вторая глава посвящена аппаратному обеспечению информационных процессов. В ней рассматриваются вопросы синтеза цифро- 20
вых устройств, устройство электронно-вычислительных машин, устройство отдельных элементов аппаратного обеспечения. Третья составляющая информатики — программное обеспечение — неоднородна и имеет сложную структуру, включающую несколько уровней: системный, служебный, инструментальный, прикладной. На низшем уровне находятся комплексы программ, осуществляющих интерфейсные функции (посреднические между человеком и компьютером, аппаратным и программным обеспечением, между одновременно работающими программами), т.е. распределения различных ресурсов компьютера. Программы этого уровня называются системными. Любые пользовательские программы запускаются под управлением комплексов программ, называемых операционными системами. Следующий уровень — это служебное программное обеспечение. Программы этого уровня называются утилитами, выполняют различные вспомогательные функции. Это могут быть диагностические программы, используемые при обслуживании различных устройств (гибкого и жесткого диска), тестовые программы, представляющие комплекс программ технического обслуживания, архиваторы, антивирусы и т.п. Служебные программы, как правило, работают под управлением операционной системы (хотя могут и непосредственно обращаться к аппаратному обеспечению), поэтому они рассматриваются как более высокий уровень. В некоторых классификациях системный и служебный уровни объединяются в один класс — системного программного обеспечения (см. главу 3). Инструментальное программное обеспечение представляет комплексы программ для создания других программ. Процесс создания новых программ на языке машинных команд очень сложен и кропотлив, поэтому он низкопроизводителен. На практике большинство программ составляется на формальных языках программирования, которые более близки к математическому, следовательно, проще и производительней в работе, а перевод программ на язык машинных кодов осуществляет компьютер посредством инструментального программного обеспечения. Программы инструментального программного обеспечения управляются системными программами, поэтому они относятся к более высокому уровню. Прикладное программное обеспечение — самый большой по объему класс программ, это программы конечного пользователя. В чет- 21
от вертой главе будет дано подробное описание и классификация программ, входящих в этот класс. Пока же скажем, что в мире существует около шести тысяч различных профессий, тысячи различных увлечений и большинство из них в настоящее время имеет какие-либо свои прикладные программные продукты. Прикладное программное обеспечение также управляется системными программами, и имеет более высокий уровень. Обобщая сказанное, можно предложить следующую структуру программного обеспечения (рис. 1.3). ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Системное программное обеспечение Операционные системы — Драйверы Дисковые утилиты Архиваторы Антивирусы Комплекс программ техобслуживания и диагностики Прикладное программное обеспечение Программы - обработчики текста Электронные таблицы СУБД Переводчики Игры Развлечения и др. Профессиональные ППО Инструментальное программное обеспечение — Трансляторы Редакторы программного кода Отладчики Редакторы связей Системы быстрой разработки программных приложений (RAD) Рис. 1.3. Классификация программного обеспечения Предложенная классификация программного обеспечения является в большой мере условной, так как в настоящее время программ- 22
ные продукты многих фирм стали объединять в себе программные элементы из разных классов. Например, операционная система Windows, являясь комплексом системных программ, в своем составе содержит блок служебных программ (дефрагментация, проверка, очистка диска и др.), а также текстовый процессор WordPad, графический редактор Paint, которые принадлежат классу прикладных программ. 1.3. Представление (кодирование) данных Чтобы работать с данными различных видов, необходимо унифицировать форму их представления, а это можно сделать с помощью кодирования. Кодированием мы занимаемся довольно часто, например, человек мыслит весьма расплывчатыми понятиями, и, чтобы донести мысль от одного человека к другому, применяется язык. Язык — это система кодирования понятий. Чтобы записать слова языка, применяется опять же кодирование — азбука. Проблемами универсального кодирования занимаются различные области науки, техники, культуры. Вспомним, что чертежи, ноты, математические выкладки являются тоже некоторым кодированием различных информационных объектов. Аналогично, универсальная система кодирования требуется для того, чтобы большое количество различных видов информации можно было бы обработать на компьютере. Подготовка данных для обработки на компьютере (представление данных) в информатике имеет свою специфику, связанную с электроникой. Например, мы хотим проводить расчеты на компьютере. При этом нам придется закодировать цифры, которыми записаны числа. На первый взгляд, представляется вполне естественным кодировать цифру ноль состоянием электронной схемы, где напряжение на некотором элементе будет равно 0 вольт, цифру единица — 1 вольт, двойку — 2 вольт и т.д., девятку — 9 вольт. Для записи каждого разряда числа в этом случае потребуется элемент электронной схемы, имеющий десять состояний. Однако элементная база электронных схем имеет разброс параметров, что может привести к появлению напряжения, скажем, 3,5 вольт, а оно может быть истолкова- 23
но и как тройка и как четверка, т.е. потребуется на уровне электронных схем «объяснить» компьютеру, где заканчивается тройка, а где начинается четверка. Кроме того, придется создавать весьма непростые электронные элементы для производства арифметических операций с числами, т.е. на схемном уровне должны быть созданы таблица умножения — 10 х 10 = 100 схем и таблица сложения — тоже 100 схем. Для электроники 40-х гг. (время, когда появились первые вычислительные машины) это была непосильная задача. Еще сложнее выглядела бы задача обработки текстов, ведь русский алфавит содержит 33 буквы. Очевидно, такой путь построения вычислительных систем не состоятелен. В то же время весьма просто реализовались электронные схемы с двумя устойчивыми состояниями: есть ток — 1, нет тока — 0, есть электрическое (магнитное) поле — 1, нет — 0. Взгляды создателей вычислительной техники были обращены на двоичное кодирование как универсальную форму представления данных для дальнейшей обработки их средствами вычислительной техники. Предполагается, что данные располагаются в некоторых ячейках, представляющих упорядоченную совокупность из двоичных разрядов, а каждый разряд может временно содержать одно из состояний — 0 или 1. Тогда группой из двух двоичных разрядов (двух бит) можно закодировать 22 = 4 различные комбинации кодов (00, 01, 10, 11); аналогично, три бита дадут 23 = 8 комбинаций, восемь бит или 1 байт — 28 = 256 и т.д. Итак, внутренняя азбука компьютера очень бедна, содержит всего два символа: 0, 1, поэтому и возникает проблема представления всего многообразия типов данных — чисел, текстов, звуков, графических изображений, видео и др. — только этими двумя символами, с целью дальнейшей обработки средствами вычислительной техники. Вопросы представления некоторых типов данных мы рассмотрим в последующих параграфах. 1.3.1. Представление чисел в двоичном коде Существуют различные способы записи чисел, например: можно записать число в виде текста — сто двадцать три; римской системе счисления — CXXIII; арабской — 123. 24
Системы счисления Совокупность приемов записи и наименования чисел называется системой счисления. Числа записываются с помощью символов, и по количеству символов, используемых для записи числа, системы счисления подразделяются на позиционные и непозиционные. Если для записи числа используется бесконечное множество символов, то система счисления называется непозиционной. Примером непозиционной системы счисления может служить римская. Например, для записи числа один используется буква I, два и три выглядят как совокупности символов II, III, но для записи числа пять выбирается новый символ V, шесть — VI, десять — вводится символ X, сто — С, тысяча — М и т.д. Бесконечный ряд чисел потребует бесконечного числа символов для записи чисел. Кроме того, такой способ записи чисел приводит к очень сложным правилам арифметики. Позиционные системы счисления для записи чисел используют ограниченный набор символов, называемых цифрами, и величина числа зависит не только от набора цифр, но и от того, в какой последовательности записаны цифры, т.е. от позиции, занимаемой цифрой, например, 125 и 215. Количество цифр, используемых для записи числа, называется основанием системы счисления, в дальнейшем его обозначим q. В повседневной жизни мы пользуемся десятичной позиционной системой счисления, q = 10, т.е. используется 10 цифр: 0 1 2 3 4 5 6 7 8 9. Рассмотрим правила записи чисел в позиционной десятичной системе счисления. Числа от 0 до 9 записываются цифрами, для записи следующего числа цифры не существует, поэтому вместо 9 пишут 0, но левее нуля образуется еще один разряд, называемый старшим, где записывается (прибавляется) 1, в результате получается 10. Затем пойдут числа 11, 12, но на 19 опять младший разряд заполнится и мы его снова заменим на 0, а старший разряд увеличим на 1, получим 20. Далее по аналогии 30, 40 ... 90, 91, 92 ... до 99. Здесь заполненными оказываются два разряда сразу; чтобы получить следующее число, мы заменяем оба на 0, а в старшем разряде, теперь уже третьем, поставим 1 (т.е. получим число 100) и т.д. Очевидно, что, используя конечное число цифр, можно записать любое сколь угод- 25
но большое число. Заметим также, что производство арифметических действий в десятичной системе счисления весьма просто. Число в позиционной системе счисления с основанием q может быть представлено в виде полинома по степеням q. Например, в десятичной системе мы имеем число а в общем виде это правило запишется так: Здесь X(q) — запись числа в системе счисления с основанием q; х. — натуральные числа меньше q, т.е. цифры; п — число разрадов целой части; m — число разрядов дробной части. Записывая слева направо цифры числа, мы получим закодированную запись числа в q-ичной системе счисления: В информатике, вследствие применения электронных средств вычислительной техники, большое значение имеет двоичная система счисления, q = 2. На ранних этапах развития вычислительной техники арифметические операции с действительными числами производились в двоичной системе ввиду простоты их реализации в электронных схемах вычислительных машин. Например, таблица сложения и таблица умножения будут иметь по четыре правила: 0 + 0 = 0 0+1 = 1 1+0=1 1 + 1 = 10 0x0 = 0 0x1=0 1x0 = 0 1x1 = 1 А значит, для реализации поразрядной арифметики в компьютере потребуются вместо двух таблиц по сто правил в десятичной системе счисления две таблицы по четыре правила в двоичной. Соответственно на аппаратном уровне вместо двухсот электронных схем — восемь. Но запись числа в двоичной системе счисления длиннее записи 26
того же числа в десятичной системе счисления в log2 10 раз (примерно в 3,3 раза). Это громоздко и не удобно для использования, так как обычно человек может одновременно воспринять не более пяти- семи единиц информации, т.е. удобно будет пользоваться такими системами счисления, в которых наиболее часто используемые числа (от единиц до тысяч) записывались бы одной-четырьмя цифрами. Как это будет показано далее, перевод числа, записанного в двоичной системе счисления, в восьмеричную и шестнадцатеричную очень сильно упрощается по сравнению с переводом из десятичной в двоичную. Запись же чисел в них в три раза короче для восьмеричной и в четыре для шестнадцатеричной системы, чем в двоичной, но длины чисел в десятичной, восьмеричной и шестнадцатеричной системах счисления будут различаться ненамного. Поэтому, наряду с двоичной системой счисления, в информатике имеют хождение восьмеричная и шестнадцатеричная системы счисления. Восьмеричная система счисления имеет восемь цифр: 0 1 2 3 4 5 6 7. Шестнадцатеричная — шестнадцать, причем первые 10 цифр совпадают по написанию с цифрами десятичной системы счисления, а для обозначения оставшихся шести цифр применяются большие латинские буквы, т.е. для шестнадцатеричной системы счисления получим набор цифр: 0123456789ABCDEF. Если из контекста не ясно, к какой системе счисления относится запись, то основание системы записывается после числа в виде нижнего индекса. Например, одно и то же число 231, записанное в десятичной системе, запишется в двоичной, восьмеричной и шестнадцатеричной системах счисления следующим образом: 231(10)= 11100111(2)=347(8)=Е7(16). Запишем начало натурального ряда в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления. Десятичная 0 1 2 3 4 5 Двоичная 0 1 10 И 100 101 Восьмеричная 0 1 2 3 4 5 Шестнадцатеричная 0 1 2 3 4 5 27
ш Десятичная 6 7 8 9 10 11 12 13 14 15 16 17 Двоичная 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 Восьмеричная 6 7 10 И 12 13 14 15 16 17 20 21 Шестнадца- теричная 6 7 8 9 А В С D Е F 10 И Преобразование чисел из одной системы счисления в другую Так как десятичная система для нас удобна и привычна, все арифметические действия мы делаем в ней, и преобразование чисел из произвольной недесятичной (q 10) системы в десятичную удобно выполнять на основе разложения по степеням q, например: 11100111(2)= 1 х27+ 1 х26 + 1 х25 + Ох 24 + Ox 23 + 1 х 22 + + 1 х 21 + 1 х 2°= 128 + 64 + 32 + 4 + 2 + 1 = 231(10), или 347(8)= 3 х 82+ 4 х 81 + 7 х 8°= 3 х 64 + 4x8 + 7 = 231(10). Преобразование из десятичной в прочие системы счисления проводится с помощью правил умножения и деления. При этом целая и дробная части переводятся отдельно. Рассмотрим алгоритм на примере перевода десятичного числа 231 в двоичную систему (совершенно аналогичен перевод из десятичной системы в любую q-ичную). Разделим число на два (основание системы): нацело 231 : 2 = 115 и остаток 1, т.е. можно записать 231 = 115x21+ 1 х20. Число 115 (такой двоичной цифры нет) тоже может быть раз- 28
делено нацело на 2, т.е. 115 : 2 = 57 и остаток 1. По аналогии запишем 231 = (57 х 2 + 1) х 2 + 1 = 57 х 22+ 1 х I1 + 1 х 2°; аналогично продолжим процесс дальше: 57 : 2 = 28, остаток 1; 231 = ((28 х2+1)х2+1)х2+1 = 28х х 23 + 1 х 22 + 1 х 21 + 1 х 2°. 28 : 2 = 14, остаток 0; 231 = (((14 х 2 + 0) х 2 +1) х 2 + 1)х2 + + 1 = 14 х 24 + 1 х 22 + 1 х 21 + 1 х 2°. 14 : 2 = 7, остаток 0; 231=((((7 х 2 + 0) х 2 + 0) х 2 + 1) х 2 + 1)х х2+ 1 =7х25+ 1 х22+ 1 х2Ч 1 х 2°. 7:2 = 3, остаток 1; 231 = (((((3 х2 + 1)х2 + 0)х2 + 0)х2 + + 1)х2+ 1)х2 + 1 = 3х26+ 1 х25+ 1 х22+ 1 х 21 + 1 х 2°. 3:2= 1; остаток 1; далее процесс продолжать нельзя, так как 1 не делится нацело на 2. 231 = ((((((1 х2+1)х2+1)х2 + 0)х2 + 0)х2+1)х2+1)х х 2 + 1 = 1 х 27 + 1 х 26 + 1 х 25 + 1 х 22 + 1 х 21 + 1 х 2°. Таким образом, последовательное деление нацело позволяет разложить число по степеням двойки, а это в краткой записи и есть двоичное изображение числа. 231 = 1 х 27 + 1 х 26 + 1 х 25 + 0 х 24 + 0 х 23 + 1 х 22 + 1 х 21 + + 1x2°= 11100111(2). Эти выкладки можно сократить, записав процесс деления следующим образом: 231(10)=11100111(2) 29
Читая частное и остатки от деления в порядке, обратном получению, получим двоичную запись числа. Такой способ перевода чисел называется правилом (алгоритмом) последовательного деления, очевидно, что он применим для любого основания. Для дробных чисел правило последовательного деления заменяется правилом последовательного умножения, которое также рассмотрим на примере. Переведем 0,8125 из десятичной системы в двоичную систему счисления. Умножим его на 2, т.е. 0,8125 х 2 = 1,625 или 0,8125 = (1 + 0,625) х х 2"1 = 1 х2-' + 0,625х2"1. Аналогично 0,625 = (1 + 0,25) х 2~1 или 0,8125 = 1 х 2~] + (1 + 0,25) х 21 х 2"1 = 1 х 2~] + 1 х 2~2 + + 0,25 х 2"2, но 0,25 = 0,5 х 2~\ 0,8125 = 1 х 2-1 + (1 + 0,5 х 2~1) х 2Л х 2~х = 1 х 2"1 + 1 х 2~2 + + 0,5 х 2-3 , но 0,5 = 1 х 2"1. 0,8125 = 1 х 2-1 + 1 х 2~2+ 1 х 2~] х 2~ъ = 1 х 2"1 + 1 х 2~2+ 1 х 2~\ В итоге получаем, что 0,8125(10) =1x2"'+ 1х2"2+ 1х2~4 = = 0,1101(2. Сокращая выкладки, получим правило (алгоритм) последовательного умножения; 0 1 1 0 1 8125 2 625 2 250 2 5 2 0 Попутно заметим, что в десятичной системе счисления правильная дробь переводится в десятичную дробь в конечном виде только в том случае, если ее знаменатель в качестве множителей имеет толь- 30
к ко степени двоек и пятерок, т.е. дробь имеет вид m n . Все же остальные дроби переводятся в бесконечные периодические дроби. Аналогично в двоичной системе счисления конечный вид получают дроби, где в знаменателе только степени двойки, т.е. большинство десятичных конечных дробей в двоичной системе счисления будут бесконечными периодическими дробями. Если ведутся приближенные вычисления, то последний разряд является сомнительным, и для обеспечения в приближенных вычислениях одинаковой точности в двоичной и десятичной записях числа без бесконечных дробей, достаточно взять число двоичных разрядов в (log210 ~ 3,3) 4 раза больше, чем десятичных. Между двоичной системой счисления, с одной стороны, и восьмеричной и шестнадцатеричной (заметим, 8 и 16 — есть третья и четвертая степени двойки) — с другой, существует связь, позволяющая легко переводить числа из одной системы в другую. Рассмотрим на примере: 231,8125(|0)= 11100111,1101(2)= 1 х 27+ 1 х 26 + 1 х 25 + 1 х 22 + + 1 х 2' + 1 х 2°+ 1 х 21 + 1 х 2"2+1 х 2Л Для перевода в шестнадцатеричную систему счисления сгруппируем целую и дробную части в группы по четыре члена и вынесем в каждой группе за скобки множители, кратные 24. Получим: (1 х 23 + 1 х 22 + 1 х 21 + 0 х 2°) х 24 + (1 х 23 + 1 х 22 + 1 х 2» + + 1 х 2°) + (1 х 23 + 1 х 22 + 0 х 2" + 1 х 2°) х 2"4= (1 х 23 + 1 х 22 + + 1 х 21 + 0) х 16' + (1 х 22 + 1 х 2' + 1 х 2°) х 16° + (1 х 23 + 1 х 22 + + 0 х 21 + 1 х 2°) х 16-' = 14 х 16' + 7 х 16° + 13 х 16"1 = E7.D(I6) Резюмируя, заключаем: для того, чтобы перевести число из двоичной системы в шестнадцатеричную, надо от десятичной запятой вправо и влево выделить группы по четыре цифры (они называются тетрадами), и каждую группу независимо от других перевести в одну шестнадцатеричную цифру. Аналогичное правило для восьмеричной системы читатель выведет сам. 31
Представление чисел в двоичном коде Представление чисел в памяти компьютера имеет специфическую особенность, связанную с тем, что в памяти компьютера они должны располагаться в байтах — минимальных по размеру адресуемых (т.е. к ним возможно обращение) ячейках памяти. Очевидно, адресом числа следует считать адрес первого байта. В байте может содержаться произвольный код из восьми двоичных разрядов, и задача представления состоит в том, чтобы указать правила, как в одном или нескольких байтах записать число. Действительное число многообразно в своих «потребительских свойствах». Числа могут быть целые точные, дробные точные, рациональные, иррациональные, дробные приближенные, числа могут быть положительными и отрицательными. Числа могут быть «карликами», например, масса атома, «гигантами», например, масса Земли, реальными, например, количество студентов в группе, возраст, рост. И каждое из перечисленных чисел потребует для оптимального представления в памяти свое количество байтов. Очевидно, единого оптимального представления для всех действительных чисел создать невозможно, поэтому создатели вычислительных систем пошли по пути разделения единого по сути множества чисел на типы (например, целые в диапазоне от ... до ..., приближенные с плавающей точкой с количеством значащих цифр ... и т.д.). Для каждого в отдельности типа создается собственный способ представления. Целые числа. Целые положительные числа от 0 до 255 можно представить непосредственно в двоичной системе счисления (двоичном коде). Такие числа будут занимать один байт в памяти компьютера. Число 0 1 2 3 • • • 255 Двоичный код числа 0000 0000 0000 0001 0000 0010 0000 0011 • • • 1111 1111 32
В такой форме представления легко реализуется на компьютерах двоичная арифметика. Если нужны и отрицательные числа, то знак числа может быть закодирован отдельным битом, обычно это старший бит; ноль интерпретируется как плюс, единица как минус. В таком случае одним байтом может быть закодированы целые числа в интервале от —127 до +127, причем двоичная арифметика будет несколько усложнена, так как в этом случае существуют два кода, изображающих число ноль 0000 0000 и 1000 0000, и в компьютерах на аппаратном уровне это потребуется предусмотреть. Рассмотренный способ представления целых чисел называется прямым кодом. Положение с отрицательными числами несколько упрощается, если использовать, так называемый, дополнительный код. В дополнительном коде положительные числа совпадают с положительными числами в прямом коде, отрицательные же числа получаются в результате вычитания из 1 0000 0000 соответствующего положительного числа. Например, число —3 получит код 1 0000 0000 0000 0011 1111 1101 В дополнительном коде хорошо реализуется арифметика, так как каждый последующий код получается из предыдущего прибавлением единицы с точностью до бита в девятом разряде. Например, 5-3 = 5 + (-3). 0000 0101 1111 1101 I 0000 0010, т.е., отбрасывая подчеркнутый старший разряд, получим 2. Аналогично целые числа от 0 да 65536 и целые числа от —32768 до 32767 в двоичной (шестнадцатеричной) системе счисления представляются в двухбайтовых ячейках. Существуют представления целых чисел и в четырехбайтовых ячейках. Действительные числа. Действительные числа в математике представляются конечными или бесконечными дробями, т.е. точность представления чисел не ограничена. Однако в компьютерах числа хранятся в регистрах и ячейках памяти, которые представляют собой последовательность байтов с ограниченным количеством разря- 2. Информатика 33
дов. Следовательно, бесконечные или очень длинные числа усекаются до некоторой длины и в компьютерном представлении выступают как приближенные. В большинстве систем программирования в написании действительных чисел целая и дробная части разделяются не запятой, а точкой. Для представления действительных чисел, как очень маленьких, так и очень больших, удобно использовать форму записи чисел в виде произведения X = m • qp, где m — мантисса числа; q — основание системы счисления; р — целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой. То есть число 4235,25 может быть записано в одном из видов: 4235,25 = 423,525-10* = 42,3525-102 = 4,23525-103 = 0,423525-104. Очевидно, такое представление не однозначно. Если мантисса 1 / q < |m| < q (0,1 < |m| < 1 для десятичной системы счисления), то представление числа становится однозначным, а такая форма называется нормализованной. Если «плавающая» точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведенных под мантиссу, обеспечивается запись максимального количества значащих цифр числа, т.е. максимальная точность. Действительные числа в компьютерах различных типов записываются по-разному, тем не менее существует несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру. Рассмотрим на примере числа, занимающего 4 байта. 32 31 30 24 23 22 21 Знак мантиссы 34 Смещенный порядок Мантисса 2
Первый бит двоичного представления используется для кодирования знака мантиссы. Следующая группа бит кодирует порядок числа, а оставшиеся биты кодируют абсолютную величину мантиссы. Длины порядка и мантиссы фиксируются. Порядок числа может быть как положительным, так и отрицательным. Чтобы отразить это в двоичной форме, величина порядка представляется в виде суммы истинного порядка и константы, равной абсолютной величине максимального по модулю отрицательного порядка, называемой смещением. Например, если порядок может принимать значения от —128 до 127 (8 бит), тогда, выбрав в качестве смещения 128, можно представить диапазон значений порядка от 0 (-128+128, порядок + смещение) до 255 (127+128), Так как мантисса нормализованного числа всегда начинается с нуля, некоторые схемы представления его лишь подразумевают, используя лишний разряд для повышения точности представления мантиссы. Использование смещенной формы позволяет производить операции над порядками как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел. Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, пред ставимого в компьютере при заданном формате. Вещественные числа в памяти компьютера, в зависимости от требуемой точности (количества разрядов мантиссы) и диапазона значений (количества разрядов порядка), занимают от четырех до десяти байтов. Например, четырехбайтовое вещественное число имеет 23 разряда мантиссы (что соответствует точности числа 7—8 десятичных знаков) и 8 разрядов порядка (обеспечивающих диапазон значений 10±38). Если вещественное число занимает десять байтов, то мантиссе отводится 65 разрядов, а порядку — 14 разрядов. Это обеспечивает точность 19—20 десятичных знаков мантиссы и диапазон значений 10±4931. Понятие типа данных. Как уже говорилось, минимально адресуемой единицей памяти является байт, но представление числа требует большего объема. Очевидно, такие числа займут группу байт, а 35
адресом числа будет адрес первого байта группы. Следовательно, произвольно взятый из памяти байт ничего нам не скажет о том, частью какого информационного объекта он является — целого числа, числа с плавающей запятой или команды. Резюмируя вышесказанное, можно сделать вывод, что кроме задачи представления данных в двоичном коде, параллельно решается обратная задача — задача интерпретации кодов, т.е. как из кодов восстановить первоначальные данные. Для представления основных видов информации (числа целые, числа с плавающей запятой, символы, звук и т.д.) в системах программирования используют специального вида абстракции — типы данных. Каждый тип данных определяет логическую структуру представления и интерпретации для соответствующих данных. В дальнейшем для каждого типа данных будут определены и соответствующие ему операции обработки. 1.3.2. Представление символьный и текстовых данных в двоичном коде Для передачи информации между собой люди используют знаки и символы. Начав с простейших условных жестов, человек создал целый мир знаков, где главным средством общения стал язык (т.е. речь и письменность). Слово есть минимальная первичная единица языка, представляющая собой специальный набор символов и служащая для наименования понятий, предметов, действий и т.п. Следующим по сложности элементом языка является предложение — конструкция, выражающая законченную мысль. На основе предложений строится текст. Текст (от лат. textus — ткань, соединение) - высказывание, выходящее за рамки предложения и представляющее собой единое и целое, наделенное внутренней структурой и организацией в соответствии с правилами языка. С появлением вычислительных машин стала задача представления в цифровой форме нечисловых величин, и в первую очередь — символов, слов, предложений и текста. Символы. Для представления символов в числовой форме был предложен метод кодирования, получивший в дальнейшем широкое распространение и для других видов представления нечисловых дан- 36
ных (звуков, изображений и др.). Кодом называется уникальное беззнаковое целое двоичное число, поставленное в соответствие некоторому символу. Под алфавитом компьютерной системы понимают совокупность вводимых и отображаемых символов. Алфавит компьютерной системы включает в себя арабские цифры, буквы латинского алфавита, знаки препинания, специальные символы и знаки, буквы национального алфавита, символы псевдографики — растры, прямоугольники, одинарные и двойные рамки, стрелки. Первоначально для хранения кода одного символа отвели 1 байт (8 битов), что позволяло закодировать алфавит из 256 различных символов. Система, в которой каждому символу алфавита поставлен в соответствие уникальный код, называется кодовой таблицей. Разные производители средств вычислительной техники создавали для одного и того же алфавита символов свои кодовые таблицы. Это приводило к тому, что символы, набранные с помощью одной таблицы кодов, отображались неверно при использовании другой таблицы. Для решения проблемы многообразия кодовых таблиц в 1981 г. Институт стандартизации США принял стандарт кодовой таблицы, получившей название ASCII (American Standard Code of Information Interchange — американский стандартный код информационного обмена). Эту таблицу использовали программные продукты, работающие под управлением операционной системы MS-DOS, разработанной компанией Microsoft по заказу крупной фирмы — производителя персональных компьютеров IBM (International Business Machine). Широкое распространение персональных компьютеров фирмы IBM привело к тому, что стандарт ASCII приобрел статус международного. В таблице ASCII содержится 256 символов и их кодов. Таблица состоит из двух частей: основной и расширенной. Основная часть (символы с кодами от 0 до 127 включительно) является базовой, она в соответствии с принятым стандартом не может быть изменена. В нее вошли: управляющие символы (им соответствуют коды с 1 по 31), арабские цифры, буквы латинского алфавита, знаки препинания, специальные символы (табл. 1.1). Расширенная часть (символы с кодами от 128 до 255) отдана национальным алфавитам, символам псевдографики и некоторым специальным символам. В соответствии с утвержденными стандар- 37
Тоблица 1.1. Базовая часть тоблицы кодов ASCII Код 32 33 34 35 36 37 38 39 40 41 42 43 пробел 1 • щш н $ % & » ( ) ■Ж -•" Коя 44 45 46 47 48 49 50 51 52 53 54 55 » / 0 1 2 3 4 5 6 7 Код 56 57 58 59 60 61 62 63 64 65 66 67 8 9 * • * < — > ? ■ @ 11 В С Код 68 69 70 71 72 73 74 75 76 77 78 79 D Е F G Н I J К L М N 0 Код 80 81 82 83 84 85 86 87 88 89 90 91 Р 0 R S Т и V w X V Z [ Код 92 93 94 95 96 97 98 99 100 101 102 103 \ ] •л. ~ a Ь с d е f g Код 104 105 106 107 108 109 110 111 112 113 114 115 h 1 • 3 к 1 m п о Р q г s Код 116 117 118 119 120 121 122 123 124 125 126 127 t и V W X У Z { 1 1 } ^"ш- й тами эта часть таблицы изменяется в зависимости от национального алфавита той страны, где она используется, и способа кодирования. Именно поэтому, при наименовании программ, документов и других объектов желательно использовать латинские буквы, содержащиеся в основной, неизменяемой части таблицы, так как русскоязычные имена при несоответствии таблиц кодирования будут неверно отображаться. Например, операционная система Windows поддерживает большое число расширенных таблиц для различных национальных алфавитов. В России наиболее распространенной кодовой таблицей алфавита русского языка является «латиница Windows 1251» (табл. 1.2). В качестве другого примера рассмотрим расширенную таблицу «ГОСТ—альтернативная» (табл. 1.3), на смену которой пришла «латиница Windows 1251». Во многих странах Азии 256 кодов явно не хватило для кодирования их национальных алфавитов. В 1991 г. производители программных продуктов и организации, утверждающие стандарты, пришли к соглашению о выработке единого стандарта. Этот стандарт построен по 16 битной схеме кодирования и получил название UNICODE. Он позволяет закодировать 216= 65536 символов, которых достаточно для кодирования всех национальных алфавитов в одной таблице. Так как каждый символ этой кодировки занимает два байта (вместо одного, как раньше), все текстовые документы, пред- 38
Таблииа 1.2. Расширенная таблица «латинииа Windows 1251» Код 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 Символ ъ г 1 t 11 • • ■ t t € %0 Jb < ьь ft ъ и Код 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 Символ ? • • И » • — — D ТМ гь > ЬЬ К h и Код 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 Символ У у J п г1 i i § Ё © е « -I ® if Код 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 Chmboj а ± I i Г Я Я • ё № е » i s s Т Код 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 Симво; А Б В Г д Е Ж 3 И Й к л м н о п Код 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 Chmboj Р С т У ф X Ц ч ш Щ ъ ы ь э ю я Код 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 Симво; a б в г Д е ж 3 и й к л м н о п Код 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 Симво. Р С т У Ф X Ц ч ш Щ ъ ы ь э ю я Таблииа 1.3. Расширенная таблица «ГОСТ-альтернативная» Код 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 А И Р Ш a И X 1 IL JL Т Р Ш Ё о Код 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 Б Й С щ б Й it'll' 1 г т с щ е • Код 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 В К Т Ъ в к 1 1 I т г т ъ е ■ Код 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 Г Л У Ы г п 1 1 I 1 и ы е S Код 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 Д М Ф Ь д м J — t ■ ф ь I W Код 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 Е М К 3 е н 1 + i= i X э • • 1 D Код 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 Ж 0 Ц ю ж о ] 1 Y s Ц Ю 9 ■ Код 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 3 П Ч Я 3 п 1 } i ч я н 39
ставленные в UNICODE, стали длиннее в два раза. Современный уровень технических средств нивелирует этот недостаток UNICODE. Текстовые строки. Текстовая (символьная) строка — это конечная последовательность символов. Это может быть осмысленный текст или произвольный набор, короткое слово или целая книга. Длина символьной строки — это количество символов в ней. Записывается в память символьная строка двумя способами: либо число, обозначающее длину текста, затем текст, либо текст, затем — разделитель строк. Текстовые документы. Текстовые документы используются для хранения и обмена данными, но сплошной, не разбитый на логические фрагменты текст воспринимается тяжело. Структурирование теста достигается форматированием — специфическим расположением текста при подготовке его к печати. Для анализа структуры текста были разработаны языки разметки, которые устанавливают текстовые метки (маркеры или теги), используемые для обозначения частей документа, записывают вместе с основным текстом в текстовом формате. Программы, анализирующие текст, структурируют его, считывая теги. 1.3.3. Предстовление звуковых данных в двоичном коде Звук — это упругая продольная волна в воздушной среде. Чтобы ее представить в виде, читаемом компьютером, необходимо выполнить следующие преобразования (рис. 1.4.). Звуковой сигнал преобразовать в электрический аналог звука с помощью микрофона. Электрический аналог получается в непрерывной форме и не пригоден для обработки на цифровом компьютере. Чтобы перевести сигнал в цифровой код, надо пропустить его через аналого-цифровой преобразователь (АЦП). При воспроизведении происходит обратное преобразование — цифро-аналоговое (через ЦАП). Позже будет показано, что конструктивно АЦП и ЦАП находятся в звуковой карте компьютера. Во время оцифровки сигнал дискретизируется по времени и по уровню (рис. 1.5.). Дискретизация по времени выполняется следующим образом: весь период времени Т разбивается на малые 40
Упругая волна в воздушной среде Токовый аналог звука Дискретизация двоичного кода КОМПЬЮТЕР Обработка кода Рис. 1.4. Схема обработки звукового сигнала Рис. 1.5. Схема дискретизации звукового сигнала интервалы времени At, точками t,, t2, ... tn. Предполагается, что в течение интервала At уровень сигнала изменяется незначительно и может с некоторым допущением считаться постоянным. Величина v = 1/At называется частотой дискретизации. Она измеряется в герцах (Гц) — количество измерений в течение секунды. 41
Дискретизация по уровню называется квантованием и выполняется так: область изменения сигнала от самого малого значения X . min до самого большого значения Хтах разбивается на N равных квантов, промежутков величиной АХ = (X - X )/N. у max mm7' Точками Х„ Х„ ... X . X. = X . + ДХ • (i - 1). 1' 2' n I min х ' Каждый квант связывается с его порядковым номером, т.е. целым числом, которое легко может быть представлено в двоичной системе счисления. Если сигнал после дискретизации по времени (напомним, его принимаем за постоянную величину) попадает в промежуток X, < X < X, то ему в соответствие ставится код i. Возникают две задачи: — первая', как часто по времени надо измерять сигнал, — вторая', с какой точностью надо измерять сигнал, чтобы получить при воспроизведении звук удовлетворительного качества. Ответ на первую задачу дает теорема Найквиста, которая утверждает, что, если сигнал оцифрован с частотой v, то высшая «слышимая» частота будет не более v/2. Вторая задача решается подбором числа уровней так, чтобы звук не имел высокого уровня шума и «электронного» оттенка звучания (точнее, это характеризуется уровнем нелинейных искажений). Попутно заметим, что число уровней берется как 2П. Чтобы измерение занимало целое число байт; v выбирают п = 8 или п = 16, т.е. каждое измерение занимает один или два байта. Высокое качество воспроизведения получается в формате лазерного аудиодиска при следующих параметрах оцифровки: частота дискретизации — 44,1 кгц, квантование — 16 бит, т.е. Ах = (Xmax— Xmi)/ 216. Таким образом, 1 с стереозвука займет 2 байт • 44100байт/с • • 2 кан * 1 с = 176 400 байт дисковой памяти. Качество звука при этом получается очень высоким. Для телефонных переговоров удовлетворительное качество получается при частоте дискретизации 8 кгц и частоте квантования 255 уровней, т.е. 1 байт, при этом 1 с звуковой записи займет на диске 1 байт • 8000 байт/с • 1 с = 8000 байт. 42
1.3.4. Представление графических даннын в двоичном коде Есть два основных способа представления изображений. Первый — графические объекты создаются как совокупности линий, векторов, точек — называется векторной графикой. Второй — графические объекты формируются в виде множества точек (пикселей) разных цветов и разных яркостей, распределенных по строкам и столбцам, — называется растровой графикой. Модель RGB. Чтобы оцифровать цвет, его необходимо измерить. Немецкий ученый Грасман сформулировал три закона смешения цветов: 1) закон трехмерности — любой цвет может быть представлен комбинацией трех основных цветов; 2) закон непрерывности — к любому цвету можно подобрать бесконечно близкий; 3) закон аддитивности — цвет смеси зависит только от цвета составляющих. За основные три цвета приняты красный (Red), зеленый (Green), синий (Blue). В модели RGB любой цвет получается в результате сложения основных цветов. Каждый составляющий цвет при этом характеризуется своей яркостью, поэтому модель называется аддитивной. Эта схема применяется для создания графических образов в устройствах, излучающих свет, — мониторах, телевизорах. Модель CMYK. В полиграфических системах напечатанный на бумаге графический объект сам не излучает световых волн. Изображение формируется на основе отраженной волны от окрашенных поверхностей. Окрашенные поверхности, на которые падает белый свет (т.е. сумма всех цветов), должны поглотить (т.е. вычесть) все составляющие цвета, кроме того, цвет которой мы видим. Цвет поверхности можно получить красителями, которые поглощают, а не излучают. Например, если мы видим зеленое дерево, то это означает, что из падающего белого цвета, т.е. суммы красного, зеленого, синего, поглощены красный и синий, а зеленый отражен. Цвета красителей должны быть дополняющими: голубой (Cyan = В + G), дополняющий красного; пурпурный (Magenta = R + В), дополняющий зеленого; желтый (Yellow = R + G), дополняющий синего. 43
Но так как цветные красители по отражающим свойствам не одинаковы, то для повышения контрастности применяется еще черный (black). Модель CMYK названа по первым буквам слов Cyan, Magenta, Yellow и последней букве слова black. Так как цвета вычитаются, модель называется субстрактивной. Оцифровка изображения. При оцифровке изображение с помощью объектива проецируется на светочувствительную матрицу т строк и п столбцов, называемую растром. Каждый элемент матрицы — мельчайшая точка, при цветном изображении состоящая из трех светочувствительных (т.е. регистрирующих яркость) датчиков красного, зеленого, желтого цвета. Далее оцифровывается яркость каждой точки по каждому цвету последовательно по всем строкам растра. Если для кодирования яркости каждой точки использовать по одному байту (8 бит) на каждый из трех цветов (всего 3 • 8 = 24 бита), то система обеспечит представление 224« 16,7 млн распознаваемых цветов, что близко цветовосприятию человеческого зрения. Режим представления цветной графики двоичным кодом из 24 разрядов называется полноцветным или True Color. Очевидно, графические данные, также как и звуковые, занимают очень большие объемы на носителях. Например, скромный по современным меркам экран монитора имеет растр 800 х 600 точек, изображение, представленное в режиме True Color, займет 800 х 600 х 3 = 1 440 000 байт. В случае, когда не требуется высокое качество отображения цвета, применяют режим High Color> который кодирует одну точку растра двумя байтами (16 разрядов дают 216 ~ 65,5 тысячи цветов). Режим, который при кодировании одной точки растра использует один байт, называется индексным, в нем различаются 256 цветов. Этого недостаточно, чтобы передать весь диапазон цветов. Код каждой точки при этом выражает собственно не цвет, а некоторый номер цвета (индекс) из таблицы цветов, называемой палитрой. Палитра должна прикладываться к файлам с графическими данными и используется при воспроизведении изображения. 1.3.5. Понятие сжатия информации Еще одна проблема, тесно связанная с моделями представления информации, — сжатие информации. При хранении и передаче данных по каналам связи объем ин- 44
формации является основным параметром. Поэтому проблема представления дополняется проблемой сжатия, т.е. плотной упаковкой информации. Разработаны и применяются два типа алгоритмов сжатия: сжатие с изменением структуры данных (оно происходит без потери данных) и сжатие с частичной потерей данных. Алгоритмы первого типа предусматривают две операции: сжатие информации для хранения, передачи и восстановление данных точно в исходном виде, когда их требуется использовать. Такой тип сжатия применяется, например, для хранения текстов (наиболее известны алгоритмы Хаффмена и Лемпеля-Зива). Алгоритмы второго типа не позволяют полностью восстановить оригинал и применяются для хранения графики или звука; для текстов, чисел или программ они неприменимы. 1.4. Структуры данных Работа с большим количеством данных автоматизируется проще, когда данные упорядочены. Для упорядочивания данных применяют следующие структуры: линейные (списки), табличные, иерархические (дерево). Линейная структура. Линейная структура данных (или список) — это упорядоченная структура, в которой адрес данного однозначно определяется его номером (индексом). Примером линейной структуры может быть список учебной группы или дома, стоящие на одной улице. В списках, как правило, новый элемент начинается с новой строки. Если элементы располагаются в строчку, нужно внести разделительный знак между элементами. Поиск осуществляется по разделителям (чтобы найти, например, десятый элемент, надо отсчитать девять разделителей). Если элементы списка одной длины, структура называется вектором данных, разделители не требуются. При длине одного элемента — d, зная номер элемента — п, его начало определяется соотношением d (n— 1). Табличная структура данных. Табличная структура данных — это упорядоченная структура, в которой адрес данного однозначно определяется двумя числами — номером строки и номером столбца, на пересечении которых находится ячейка с искомым элементом. 45
Если элементы располагаются в строчку, нужно внести два разделительных знака — разделительный знак между элементами строки и разделительный знак между строками. Поиск, аналогично линейной структуре, осуществляется по разделителям. Если элементы таблицы одной длины, структура называется матрицей данных, разделители в ней не требуются. При длине одного элемента — d, зная номер строки — m и номер столбца n, a также строк и столбцов М, N, найдем адрес его начала: d [N(m - 1) + (n - 1)]. Таблица может быть и трехмерная, тогда три числа характеризуют положение элемента и требуются три типа разделителей, а может быть и п-мерная. Иерархическая структура. Нерегулярные данные, которые трудно представляются в виде списка или таблицы, могут быть представлены в иерархической структуре, в которой адрес каждого элемента определяется путем (маршрутом доступа), идущим от вершины структуры к данному элементу. Иерархическую структуру образуют, например, почтовые адреса (рис. 1.6). Краснодарский край Семикаракорский район Ворошиловский Россия Ростовская область Ставропольский край Ростов Красносулинский Белокалитвинский район район Большая Садовая Буденновский Рис. 1.6. Пример иерархической структуры данных Адрес одного из домов, расположенных, к примеру, на улице Большая Садовая, может выглядеть следующим образом: Россия\Ростовская область\Ростов\ул. Большая Садовая\д. 1. 46
Линейная и табличная структуры более просты, чем иерархическая структура, но если в линейной структуре появляется новый элемент, то упорядоченность сбивается. Например, если в списке студентов появляется новый человек, то расположенный по алфавиту список нарушается. В иерархической структуре введение нового элемента не нарушает структуры дерева, недостатком ее является трудоемкость записи адреса и сложность упорядочения. 1.5. Хранение данных Для устройств обработки данных, к которым относится и компьютер, большое значение имеет организация метода хранения информации на внешних носителях, позволяющих сохранять данные энергонезависимо. Способ хранения данных на таких носителях должен обеспечивать их целостность, доступность и защищенность. В настоящее время наиболее популярными внешними носителями являются диски. На одном диске помещается информация, объем которой может измеряться триллионами байтов. В этом случае эффективный способ хранения особенно важен. Разработчики программного обеспечения предложили оригинальный способ организации хранения информации: в виде файлов. Под файлом понимается именованная область носителя, содержащая данные произвольной длины и воспринимаемая компьютерной системой как единое целое. Имя файла имеет особое значение, оно сопоставлено адресу размещения файла на носителе. Носитель имеет служебную таблицу, в каждой строке которой записано имя файла и адрес его местонахождения на носителе. Эта таблица используется специальной программой, которая называется файловой сие- темой. Для доступа к данным она получает имя файла, находит по таблице его местоположение на носителе и возвращает содержимое файла. Как правило, процесс обработки информации сопровождается ее последующим сохранением. Для этого компьютерная программа объединяет какой-либо блок обрабатываемых данных в единое целое, снабжает его именем и передает файловой системе для записи на внешний носитель. Имя файла состоит из некоторого набора символов и для боль- 47
шинства файловых систем может содержать до 256 знаков. Имя файла может быть дополнено расширением, которое определяет тип информации, хранящейся в файле. Расширение содержит от одного до трех символов и отделяется от имени точкой. Большинство программ при создании файла автоматически добавляют к имени свое уникальное расширение, которое помогает им в дальнейшем опознавать «свои» файлы. Например, файлы, созданные программой Microsoft Word, имеют расширение .doc, расширение .xls добавляет программа Microsoft Excel. Кроме имени, файловая система, создавая файл, снабжает его дополнительной информацией: датой и временем создания (или модификации), размером сохраненных данных, правами доступа к информации, хранящейся в нем. Эта информация называется атрибутами файла и предоставляет возможности файловой системе оперативно работать с файлами. Файл в числовом виде хранит информацию разных типов, например, текстовую, звуковую, графическую и т.д. Программа, создающая файл, размещает информацию в нем таким образом, чтобы при дальнейшей работе с файлом записанные данные можно было распознать и правильно извлечь. Способ представления данных в файле называется форматом файла. Формат определяет внутреннюю организацию информации, хранимой в файле. Открывая файл, прикладная программа проверяет его формат. Если он соответствует распознаваемым ею форматам, информация, хранящаяся в файле, извлекается в удобном для работы виде. Современные операционные системы автоматически распознают формат файла и самостоятельно запускают работающую с ним прикладную программу. Имеется возможность определять формат файла, не исследуя его структуры. Для этого используется его расширение. Анализируя расширение, операционная система определяет тип и структуру файла. Многие форматы файлов стандартизированы и используются соответствующими программными приложениями, работающими под управлением различных операционных систем. Как было уже сказано, задачу централизованного управления данными решает файловая система. Она выполняет функции распределения внешней памяти, отображения имен файлов в соответствующие адреса и обеспечения доступа к данным. Для удобства работы файлы объединяют в группы, их имена рас- 48
полагают в файле специального вида, называемом каталогом или папкой. Каталоги образуют иерархическую (древовидную) структуру. Каталоги, размещенные на вершине иерархии, называются каталогами первого уровня. Каталоги первого уровня могут содержать каталоги второго уровня и т.д. Каждый каталог содержит описание файлов или каталогов следующего уровня иерархии. Так же как и файлу, каталогу задается имя и атрибуты, позволяющие файловой системе манипулировать им: создавать, удалять, перемещать, добавлять в него файлы, каталоги и т.д. 1.6. Математические основы информатики Как было отмечено ранее, информатика — прикладная наука, находящаяся на стыке многих наук. Вместе с тем она опирается на спектр разделов такой фундаментальной науки, как математика. Наиболее важное прикладное значение для информатики имеют булева алгебра, используемая в разработке алгоритмов программ и в синтезе цифровых устройств, теория множеств и теория графов, используемые в описании различных структур. 1.6.1. Алгебра высказываний (булева алгебра) Основные понятия Основное понятие булевой алгебры — выказывание. Под простым высказыванием понимается повествовательное предложение, о котором можно сказать, истинно оно или ложно (третьего не дано). Высказывания обозначаются латинскими буквами и могут принимать одно из двух значений: ЛОЖЬ (обозначим 0) или ИСТИНА (обозначим 1). Например, содержание высказывания А: «дважды два равно четырем» истинно А = 1, а высказывание В: «три больше пяти» всегда есть ЛОЖЬ. В дальнейшем нас не будет интересовать содержательная часть высказываний, а только их истинность. Два высказывания А и В называются равносильными, если они имеют одинаковые значения истинности, записывается А = В. 49
Логические операиии Сложное высказывание можно построить из простых с помощью логических операций: отрицания, конъюнкции, дизъюнкции, импликации и логических выражений, представляющих собой комбинации логических операций. Рассмотрим их подробней. Операцией отрицания А называют высказывание А (или -А, говорят не А), которое истинно тогда, когда А ложно, и ложно тогда, когда А истинно. Например, если событие А состоит в том, что «завтра будет снег», то А «завтра НЕ будет снега», истинность одного утверждения автоматически означает ложность второго. Отрицание — унарная (т.е. для одного операнда) логическая операция. Ей соответствует языковая конструкция, использующая частицу НЕ. Это правило можно записать в виде следующей таблицы: А 0 1 А 1 0 Такая таблица называется таблицей истинности. Конъюнкцией (логическим умножением) двух высказываний А и В является новое высказывание С, которое истинно только тогда, когда истинны оба высказывания, записывается С = А л В или С = А & В (при этом говорят С равно А и В). Примером такой операции может быть следующая: пусть высказывание А состоит в том, что «высота шкафа меньше высоты двери», событие В «ширина шкафа меньше ширины двери», событие С «шкаф можно внести в дверь, если ширина шкафа меньше ширины двери И высота шкафа меньше высоты двери», т.е. данная операция применяется, если два высказывания связываются союзом И. Таблица истинности этой операции, как следует из определения, имеет вид А 0 0 1 1 В 0 1 0 1 А&В 0 0 0 1 50
Дизъюнкцией (логическим сложением) двух высказываний А и В является новое высказывание С, которое истинно, если истинно хотя бы одно высказывание. Записывается С = A v В (при этом говорят: С равно А ИЛИ В). Пример такой операции следующий: пусть высказывание А состоит в том, что «студент может добираться домой на автобусе», событие В «студент может добираться домой на троллейбусе», событие С «студент добрался домой на автобусе ИЛИ троллейбусе», т.е. данная операция применяется, если два высказывания связываются союзом ИЛИ. Таблица истинности такой операции следующая: А 0 0 1 1 В 0 1 0 1 AvB 0 1 1 1 Импликацией двух высказываний А (А называется посылкой) и В (В называется заключением) является новое высказывание С, которое ложно только тогда, когда посылка истинна, а заключение ложно, записывается С = А —> В (при этом говорят: из А следует В). Примером такой операции может быть любое рассуждение типа: если произошло событие А, то произойдет событие В, «если идет дождь, то на небе тучи». Очевидно, операция не симметрична, т.е. из В —> А не всегда истинно, в нашем примере «если на небе тучи, то идет дождь» не всегда истинно. Таблица истинности импликации следующая: А 0 0 1 1 В 0 1 0 1 А->В 1 1 0 1 Импликация имеет следующие свойства: А-»В*В -> А А->А= 1 51
0->А= 1 1 -» А = А А-» 1 = 1 А-» 0 = А Эквиваленцией двух высказываний А и В является новое высказывание С, которое истинно только тогда, когда оба высказывания имеют одинаковые значения истинности, записывается С = А <-» В (.С = А = В). Примером такой операции может быть любое высказывание типа: событие А равносильно событию В. Таблица истинности: А 0 0 1 1 В 0 1 0 1 А«->В 1 0 0 1 Эквиваленция имеет следующие свойства: А <-» В = В <-» А А<-> В = В <-> А А*-» 1 =А А<-»0 = А Логические Выражения. ПоряЭок логический операиий С помощью логических операций из простых высказываний (логических переменных и констант) можно построить логические выражения, которые также называются булевскими функциями. Например, С = (( A v В) -> В) v А. Чтобы избежать большого количества скобок в булевских функциях, принято следующее соглашение о старшинстве операций. Первыми выполняются операции в скобках, затем операции в следующем порядке: отрицание, конъюнкция и дизъюнкция слева направо, импликация, эквиваленция. 52
Зависимости межЭу логическими опероииоми Операции не являются независимыми; одни из них могут быть выражены через другие. Можно доказать с помощью таблиц истинности следующие равносильности: 1. А = А закон двойного отрицания 2. А&В = В&А коммутативный закон для конъюнкции 3. AvB = BvA коммутативный закон для дизъюнкции 4. (А & В) & С = А & (В & С) ассоциативный закон для конъюнкции 5. (AvB)vC = Av(BvC) ассоциативный закон для дизъюнкции 6. А & (В v С) = (А & В) v (А & С) дистрибутивные законы 7. A v (В & С) = (A v В) & (A v С) 8. А&В = A v В законы де Моргана 9. AvB = А & В 10. А & А = А закон идемпотенции для конъюнкции 11. A v A = А закон идемпотенции для дизъюнкции 12. А & 1 = А закон единицы для конъюнкции 13. А & 0 = 0 закон нуля для конъюнкции 14. A v 1 = 1 закон единицы для дизъюнкции 15. A v 0 = А закон нуля для дизъюнкции 16. A v А = 1 закон исключения третьего 17. А & А = 0 закон противоречия 18. А -> В = A v В 19. А <-» В = (А -> В) & (В -> А) = ( A v В) & ( A v В ) = = (A&B)v(A & В) 20. A v (А & В) = А законы поглощения 21. А & (A v В) = А 53
22. А&(А vB) = A&B 23. Av (A & В) = Av В Одну и ту же зависимость между логическими переменными можно выразить различными формулами. Поэтому важно иметь возможность приводить формулы с помощью эквивалентных преобразований к некоторому стандартному виду. Существует несколько стандартных форм, к которым приводятся логические выражения с помощью эквивалентных преобразований (формул 1—23). Первая из них — дизъюнктивная нормальная форма (ДНФ), имеет вид Al v A2 v ... v An, где каждое из составляющих высказываний есть конъюнкция простых высказываний и их отрицаний, например: В = ( А1 & А2 & A3) v (А4 & А5). Вторая — конъюнктивная нормальная форма (КНФ), имеет вид А1 л А2 а ... a An, где каждое из составляющих есть дизъюнкция простых высказываний и их отрицаний, например: В = ( Al v А2 v A3) & (А4 v А5) & А6. Табличное и алгебраическое з^Эание булеВскин срункиий Задать булевскую функцию можно, определяя ее значения для всех наборов значений аргументов. Каждый аргумент может иметь два значения: 0 и 1, следовательно, п аргументов могут принимать 2П различных наборов. Пусть, например, булевская функция имеет три аргумента: X,, Х2, Х3. Общее число наборов 23 = 8; зададим таблицу истинности функции, указав для каждого набора значение функции. № 1 2 3 4 5 6 7 8 X, 0 0 0 0 1 1 1 1 х? 0 0 1 1 0 0 1 1 Х3 0 1 0 1 0 1 0 1 F 0 1 0 1 0 1 0 1 54
Для составления алгебраической формы по результатам таблицы сделаем следующее. В комбинациях, где функция принимает значение 1, единицу заменим именем функции, а нуль — именем с отрицанием (т.е. комбинации 0 0 1 поставим в соответствие выражение Xj &Х2&Х3), все элементы соединим знаками дизъюнкции, для рассматриваемого примера получим F(X,, Х^ Х3) = (XY &Х2 &X3) v v (ХХ&Х2&Х3) v (X,&X2&X3) v (Х,&Х2&Х3). Как нетрудно заметить, построенная функция удовлетворяет заданной таблице истинности. Функция представляет дизъюнктивную нормальную форму. Кроме того, заметим, что в каждую группу дизъюнкций входят все аргументы функции. Такая ДНФ называется совершенной, а каждая группа дизъюнкций называется коституентой единицы. Аналогично, для комбинаций, где функция принимает значение нуля, можно построить алгебраическую форму F(X,,X2,X3) = = (X,vX2vX3) & (X,vX^vX3) & (X^vXjVXj) & (XjV^vXj), которая также удовлетворяет заданной таблице истинности и представляет собой конъюнктивную нормальную форму, в данном случае совершенную. Каждая конъюнкция называется конституентой нуля. В главе 2 будет показано, как, основываясь на булевой алгебре, создаются цифровые устройства. 1.6.2. Элементы теории множеств Множеством называется любое объединение определенных вполне различимых объектов; их может и не быть вообще. Можно говорить о множестве точек на отрезке [0,1], множестве студентов в группе, множестве снежных дней в июле на экваторе, т.е. множество образуют любые объекты, объединенные по любому признаку. Объекты, составляющие множество, называются элементами множества. Множество, не имеющее ни одного элемента, называется пустым, оно обозначается 0. Множество, состоящее из конечного числа элементов, называется конечным, в противном случае — бесконечным. Задать множество можно перечислением его элементов. Например, множество образованное из п элементов а,, а2, ..., ап, обозначается А = {а,, а2, ..., ап}; пишется а е А (говорится «элемент а при- 55
надлежит множеству А»), если а является элементом множества А, в противном случае a g A. Задать множество можно также, указав общее свойство для всех его и только его элементов. Например, множество точек равноудаленных от концов отрезка. Два множества считаются равными, если состоят из одних и тех же элементов; записывается этот факт А = В. Множество А, называется подмножеством А (записывается А,сА), если все элементы множества А1 являются элементами А. Для множеств определены следующие операции: объединение, пересечение, дополнение. Объединением множеств А и В (записывается AuB) называется множество, состоящее из элементов как одного, так и второго множества. Например, А и В — множества точек, принадлежащих некоторым двум кругам, имеющим общие точки, тогда объединением AuB будет фигура, состоящая из общих точек. Пересечением множеств А и В (записывается АпВ) называется множество, состоящее из элементов, принадлежащих как одному, так и второму множеству одновременно. Дополнением множества А до В называется множество, состоящее из элементов множества В, не принадлежащих А. Дополнение обозначается А = В-А (рис. 1.7). Рис. 1.7. Операции надмножествами 56
1.6.3. Элементы теории графов Основные понятия Граф задается парой множеств: множества Е, называемого множеством вершин, и множества U, называемого множеством ребер. Ребро u g U есть пара (е., е.), где е., е. g Е , указывающая, между какими двумя вершинами проведено ребро. Говорят, что ребро ug U инцидентно вершинам е., е.. Если порядок ребер не имеет значения, т.е. и = (е., е.) = (е., е.), то ребро называется неориентированным или просто ребром, если же порядок имеет значение, то ребро и = (е., е.) называется ориентированным ребром или дугой. Вершина е. — называется началом дуги, е. — конец дуги. Граф, содержащий хотя бы одну дугу, называется ориентированным графом или орграфом. Граф G(E,U) называется конечным, если множество Е вершин конечно. Граф G(E,U), у которого любые две вершины соединены ребром, называется полным. Если хотя бы две вершины соединены несколькими ребрами, то такой граф называется мулътиграфом. Две вершины е., e.G E называются смежными, если они соединены ребром. Число ребер, инцидентных данной вершине е., называется локальной степенью этой вершины р(е.). Число ребер г графа G(E,U) определяется выражением г = ~У.Р(е{), где п — количество вершин в графе. 2 ы Рассмотрим граф, изображенный на рис. 1.8. Рис. 1.8. Ориентированный граф 57
Множество вершин графа состоит из пяти элементов: Е = {1, 2, 3, 4, 5}, а множество ребер U = {(1, 2), (1, 4), (1, 5), (2, 3), (3, 4), (5, 3)}. Ребро (5, 3) — является ориентированным ребром или дугой. Число ребер в графе определяется по значению локальных степеней для каждой вершины: р(1) = 3; р(2) = 2; р(3) = 3; р(4) = 2; р(5) = 2; р = (3 + 2 + 3 + + 2 + 2) / 2 = 6. Важным в теории графов является понятие части графа G(E,U), который обозначается G'(E',U') с G(E,U). Множества вершин и ребер части графа являются подмножествами вершин и ребер исходного графа Е'сЕ U' с U. Многие задачи на графах состоят в определении частей графа с заданными свойствами. Часть графа G'(E',U') с G(E,U) называется подграфом графа G(E,U), если Е' с Е , а подмножество U'cU образовано только ребрами, инцидентными вершинам множества Е'. Полным графом называется граф G(E,U), у которого каждая вершина ее Е соединена ребрами с остальными вершинами (рис. 1.9). Рис. 1.9. Полный граф 58
Связанность грофоВ Маршрутом графа G называется последовательность ребер S = = (и., и7, ... и ), в которой каждые два соседних ребра имеют общую вершину, т.е. u,= (e,, e2); и2 = (е2, е3); ... un= (en, еп+1). Не исключено, что одно и то же ребро может встречаться несколько раз на одном маршруте. Две вершины е. и е. называются связанными, если существует мар- шрут из е. в е.. Компонентой связности графа называется подмножество его вершин с инцидентными им ребрами, такое, что любая вершина связана с любой другой вершиной маршрута. Например, из графа на рис. 1.10 можно выделить следующие две компоненты связанности, показанные сплошной линией. Рис. 1.10. Компоненты связанности графа Простой цепью, или простым путем, называется маршрут, в котором ни одно ребро ire повторяется дважды. Элементарной цепью или элементарным путем называется маршрут, в котором ни одна вершина не повторяется дважды. Циклом в графе называется маршрут, у которого начальная вершина совпадает с конечной. Например, следующий граф имеет цикл S = (1, 2, 3, 5, 4, 1) (рис. 1.11). 59
Рис. 1.11. Цикл в графе Цикл, проходящий по всем ребрам графа только один раз, называется эйлеровым циклом. В теории графов доказывается теорема, определяющая, содержит ли граф эйлеров цикл. Оказывается, конечный граф содержит эйлеров цикл тогда и только тогда, когда он связан, и все его локальные степени вершин четные. Важной прикладной задачей теории графов является задача поиска в графе цикла, проходящего через каждую вершину только один раз. Такие циклы называются гамильтоновыми циклами. Весьма важным является связанный граф, не имеющий циклов, он называется деревом. В дереве любые две вершины связаны единственным путем. Вершина называется концевой, если ей инцидентно не более одного ребра; одна из концевых вершин может быть выбрана в качестве корня. ЗоЭоние графа Граф может задаваться в виде рисунка, аналитически, в виде матрицы. Выше приводилось задание графа в виде рисунка. Аналитическое задание состоит в задании элементов множества вершин Е = {ер е2, ... еп} и множества ребер U = {up u2, ... um}. Для выполнения различного рода формальных преобразований над фафами удобно использовать их матричные задания. Матрица А размерностью пхп называется матрицей смежности графа G(E,U), если ее элементы образованы по правилу: элемент матрицы а.= т, если вершины ей е. соединены т ребрами, и а..= 0, если эти верши- 60
ны не связаны ребрами. Матрица смежности, имеет число строк и столбцов, равное количеству вершин графа. Матрица А размерностью n x m называется матрицей инцидентности графа G(E,U), если ее элементы образованы по правилу: элемент матрицы Ь.. = 1, если вершина е. инцидентна ребру и. и Ь.. = 0 в противном случае. Так как каждое ребро инцидентно двум вершинам, то в каждой строке этой матрицы ровно два ненулевых элемента. Построим матрицы смежности и инцидентности для графа, изображенного на рис. 1.12. Рис. 1.12. Пример графа Матрица смежности будет состоять из пяти строк и пяти столбцов. 1 2 3 4 5 1 0 1 0 1 0 2 1 0 1 1 0 3 0 1 0 0 1 4 1 1 0 0 1 5 0 5 1 1 0 Матрица инцидентности будет состоять из пяти строк и шести столбцов. 1 2 3 4 5 а 1 1 0 0 0 b 1 0 0 1 0 с 0 1 1 0 0 d 0 0 1 0 1 е 0 1 0 1 0 f 0 0 0 1 1 61
2. Технические средство реализации информационный процессов 2.1. Представление информации В технических устройствах В основу любого устройства, предназначенного для преобразования или хранения информации, должен быть положен принцип ее представления, то есть ее физический носитель. Известны, например, механические устройства, в которых информация представляется углами поворота или перемещения объектов относительно друг друга. Так как автоматизация процесса обработки информации всегда являлась важной задачей для дальнейшего прогресса промышленности и науки, предлагались устройства, принцип представления информации в которых зависел от уровня развития техники: механические устройства с ручным, а затем с паровым приводом, электромеханические, электрические устройства и, наконец, электронные устройства. Последние получили широкое распространение и за 30-40 лет вытеснили устройства других типов. Исключение составляют случаи, когда преобразование информации требует наличия движущихся объектов, например, лентопротяжные или дисковые механизмы памяти больших объемов, исполнительные механизмы и приводы и некоторые другие. Преимущество использования электронных устройств обусловлено многими факторами, главными из которых являются удобство преобразования и передачи электрических сигналов, малая инерционность электронных устройств и, следовательно, их высокое быстродействие. Вычислительные устройства, использующие непрерывную форму представления информации, называются аналоговыми вычислительными машинами (АВМ). Вычислительные устройства, использующие дискретную форму представления, называются цифровыми вычислительными машинами (ЦВМ). В настоящее время устройства, использующие непрерывный спо- 62
соб представления информации, вытесняются более прогрессивными цифровыми устройствами, даже из таких традиционно «аналоговых» областей, как телевидение и телефония. Что касается непосредственно вычислительных систем, то их развитие, начавшееся преимущественно с АВМ, постепенно перешло к ЦВМ и к середине 70-х гг. прошлого столетия ЦВМ полностью вытеснили АВМ. В дальнейшем мы будем рассматривать только вычислительные устройства с дискретным представлением информации, поэтому здесь остановимся несколько подробнее на принципе построения и полезных свойствах АВМ. АВМ имели блочную структуру, т.е. представляли собой систему связанных между собой базовых элементов. Связи между базовыми элементами, их состав и количество изменялись для каждой задачи, решаемой на АВМ. В качестве базового элемента использовался операционный усилитель, схема которого показана на рис. 2.1. Он состоит из усилителя, входных элементов (Е1, ..., Ея) и элемента обратной связи (Еос). В качестве элементов используются радиоэлектронные компоненты: резисторы, конденсаторы, индуктивности. В зависимости от типов элементов, базовый элемент может производить сложение, интегрирование, дифференцирование и некоторые другие операции над входными напряжениями (UbxI, ..., ивхя), результат операции снимается в виде выходного напряжения (ивых). Основными достоинствами АВМ являлись простота аппаратной реализации и высокая скорость получения решения. Основным же недостатком являлась низкая точность результата, так как радиоэлектронные компоненты, подвергаясь воздействиям внешней среды, изменяли свои параметры, что и влияло на точность решения. 63
ЦВМ имеют гораздо более высокую сложность аппаратной и программной реализации. Информация в них имеет определенные границы представления, т.е. точность представления информации конечна. Для расширения границ представления необходимо увеличивать аппаратную часть или увеличивать время обработки. Основными достоинствами ЦВМ, а в дальнейшем — компьютерных систем (КС) являются: • гарантированная точность результата, зависящая только от границ представления данных; • универсальность — способность обрабатывать данные любыми методами, представляемыми последовательностью простых арифметических и логических операций; • возможность реализации большого числа известных численных математических методов решения задач. 2.2. Базовая система элементов компьютерным систем Компьютерые системы (КС) используют естественное представление чисел в позиционной системе счисления, поэтому при построении базовых элементов очень большое значение имеет выбор основания системы счисления. Как уже говорилось выше (см. главу 1), для построения цифровых устройств была выбрана двоичная система счисления. Одним из преимуществ двоичного представления являлось и то, что для проектирования устройств можно было использовать мощный аппарат алгебры логики — булевых функций. При построении функциональных узлов КС используются элементы, которые реализуют базовую систему логических функций. Одним из таких базовых наборов является набор из трех функций: дизъюнкции (логическое ИЛИ), конъюнкции (логическое И) и отрицание (логическое НЕ). На рис. 2.2 показаны условные обозначения и значения выходного сигнала в зависимости от входных сигналов. Ноль изображается на диаграммах низким значением сигнала, а единица — высоким. Используя эти базовые элементы, строятся все функциональные узлы ЦВМ. 64
а) элемент «логическое ИЛИ» б) элемент «логическое И» в) элемент «логическое НЕ» Рис. 2.2. Базовая система логических элементов цифровых устройств 3. Информатика 65
2.3. Функциональные узлы компьютерных систем 2.3.1. Элемент памяти Основой любого компьютера является ячейка памяти, которая может хранить данные или команды. Основой любой ячейки памяти является функциональное устройство, которое может по команде принять или выдать один двоичный бит, а, главное, сохранять его сколь угодно долго. Такое устройство называется триггер, или защелка. Оно строится на основе базового набора логических схем. На рис. 2.3 показана схема триггера. Он собран на четырех логических элементах: два элемента «логическое НЕ» (схемы 1 и 2) и два элемента «логическое И-НЕ» (схемы 3 и 4). Два последних элемента представляют собой комбинацию логических элементов «логическое И» и «логическое НЕ». Такой элемент на входе выполняет операцию логического умножения, результат которой инвертируется на выходе логическим отрицанием. Триггер имеет два выхода Q и Q . Сигнал на выходе Q соответствует значению, хранящемуся в триггере. Вы- R Рис. 2.3. Схема триггера в состоянии хранения бита информации 66
ход Q используется при необходимости получить инверсное значение сигнала. Входы S и R предназначены для записи в триггер одного бита со значением ноль или единица. Рассмотрим состояние триггера во время хранения бита. Пусть в триггер записан ноль (на выходе Q низкий уровень сигнала). Единица на выходе схемы 4 и единица на выходе схемы 1 поддерживают состояние выхода схемы 3 в состоянии нуля (1л1 = 0). В свою очередь, ноль на выходе схемы 3 поддерживает единицу на выходе схемы 4 (0 л 1 = 1). Такое состояние может поддерживаться триггером бесконечно долго. Для записи в триггер единицы подадим на вход S единицу (рис. 2.4). На выходе схемы 1 получится ноль, который обеспечит на выходе схемы 3 единицу. С выхода схемы 3 единица поступит на вход схемы 4, на выходе которой значение изменится на ноль (1 л 1 = 0). Этот ноль на входе схемы 3 будет поддерживать сигнал на ее выходе в состоянии единицы. Теперь можно снять единичный сигнал на входе 5, на выходе схемы 3 все равно будет высокий уровень. Т.е. триггер сохраняет записанную в него единицу. Единичный сигнал на входе S необходимо удерживать некоторое время, пока на выходе схемы 4 не появится нулевой сигнал. Затем вновь на входе S устанавливается нулевой сигнал, но триггер поддерживает единичный сиг- Рис. 2.4. Запись в триггер единицы 67
нал на выходе Q, т.е. сохраняет записанную в него единицу. Точно так же, подав единичный сигнал на вход R, можно записать в триггер ноль. Условное обозначение триггера показано на рис. 2.5. Рис. 2.5. Условное обозначение триггера 2.3.2. Регистры Триггер служит основой для построения функциональных узлов, способных хранить двоичные числа, осуществлять их синхронную параллельную передачу и запись, а также выполнять с ними некоторые специальные операции. Такие функциональные узлы называются регистрами. Регистр представляет собой набор триггеров, число которых определяет разрядность регистра. Разрядность регистра кратна восьми битам: 8-, 16-, 32-, 64-разрядные регистры. Кроме этого в состав регистра входят схемы управления его работой. На рис. 2.6 приведена схема регистра хранения. Регистр содержит п триггеров, образующих п разрядов. Перед записью информации регистр обнуляется подачей единичного сигнала на вход «Сброс». Запись информации в регистр производится синхронно подачей единичного сигнала «Запись». Этот сигнал открывает входные вентили (схемы «логическое И»), и на тех входах хг.. хп, где присутствует единичный сигнал, произойдет запись единицы. Чтение информации из регистра также про- 68
изводится синхронно, подачей сигнала «Чтение» на выходные вентили. Обычно регистры содержат дополнительные схемы, позволяющие организовать такие операции, как сдвиг информации (регистры сдвига) и подсчет поступающих единичных сигналов (регистры счетчики). 0 0 0 «Запись» «Сброс» «Чтение» Рис. 2.6. n-разрядный регистр хранения с синхронной записью и чтением 2.3.3. Устройства обработки информации Для обработки информации компьютер должен иметь устройство, выполняющее основные арифметические и логические операции над числовыми данными. Такие устройства называются арифметико-логическими устройствами (АЛУ). В основе АЛУ лежит устройство, реализующее арифметическую операцию сложения двух 69
ШйИРШвЩй целых чисел. Остальные арифметические операции реализуются с помощью представления чисел в специальном дополнительном коде. Сумматор АЛУ представляет собой многоразрядное устройство, каждый разряд которого представляет собой схему на логических элементах, выполняющих суммирование двух одноразрядных двоичных чисел с учетом переноса из предыдущего младшего разряда. Результатом является сумма входных величин и перенос в следующий старший разряд. Такое функциональное устройство называется одноразрядным, полным сумматором. Его условное обозначение показано на рис. 2.7. Рис. 2.7. Условное обозначение полного одноразрядного сумматора Рассмотренные выше функциональные элементы являются основными при построении схем компьютерных систем. 2.4. Принцип автоматической обработки информации вычислительным устройством Основным отличием вычислительной машины от таких счетных устройств, как счеты, арифмометр, калькулятор, заключается в том, что вся последовательность команд на вычисление предварительно записывается в память вычислительной машины и выполняется последовательно автоматически. Впервые принцип вычислительной машины с автоматическим выполнением команд предложил американский ученый фон Нейман. Он описал основные узлы, которые 70
должна содержать такая машина. Этот принцип получил название фон-неймановской вычислительной машины. Большинство современных КС в настоящее время построено именно по этому принципу. Машина фон Неймана состояла из памяти, представлявшей собой набор регистров, АЛУ, устройства ввода-вывода и устройства управления (рис. 2.8). Рис. 2.8. Машина фон Неймана Устройство ввода передавало команды и данные в АЛУ, откуда они записывались в память. Все команды, совокупность которых называется программой, записываются в память в соседние ячейки по возрастанию их адресов, а данные, которые требуют обработки,— в ячейки с произвольными адресами. Последняя команда программы — это обязательно команда остановки работы. Каждая команда содержит код операции, которую необходимо выполнить, и адреса ячеек, в которых находятся данные, обрабатываемые этой командой. Устройство управления содержит специальный регистр, который называется «Счетчик команд». После загрузки программы и данных в 71
память в счетчик команд записывается адрес первой команды программы. После чего вычислительная машина переходит в режим автоматического выполнения программы. Устройство управления считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». Регистр команд хранил команду во время ее исполнения. Устройство управления расшифровывает тип операции команды, считывает из памяти данные, адреса которых указаны в команде, и приступает к ее выполнению. Для каждой команды устройство управления имеет свой алгоритм обработки, который заключается в выработке управляющих сигналов для всех остальных устройств машины. Этот алгоритм мог быть реализован на основе комбинационных логических схем или с помощью специальной внутренней памяти, куда эти алгоритмы были записаны в виде микрокоманд, объединенных в микропрограммы. Выполнение микропрограммы происходит по тому же принципу, что и программы в основной памяти, т.е. по принципу фон Неймана. Каждая микрокоманда содержит набор управляющих сигналов для устройств машины. Отметим, что устройства управления выполнением команд процессоров в современных компьютерных системах также строятся по принципу комбинационных схем или микропрограммных автоматов, в соответствии с чем делятся на RISC и CISC процессоры, о которых будет рассказано ниже. Микропрограмма выполнения любой команды обязательно содержит сигналы, изменяющие содержимого счетчика команд на единицу. Таким образом, после завершения выполнения очередной команды, счетчик команд указывал на следующую ячейку памяти, в которой находилась следующая команда программы. Устройство управления читает команду, адрес которой находится в счетчике команд, помещает ее в регистр команд и т.д. Этот процесс продолжается до тех пор, пока очередная исполняемая команда не оказывается командой останова исполнения программы. Интересно отметить, что и команды, и данные, находящиеся в памяти, представляют собой целочисленные двоичные наборы. Отличить команду от данных устройство управления не может, поэтому, если программист забыл закончить программу командой останова, устройство управления читает следующие ячейки памяти, в которых уже нет команд программы, и пытается интерпретировать их как команды. 72
Особым случаем можно считать команды безусловного или условного перехода, когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов. В этом случае команда перехода содержит адрес ячейки, куда требуется передать управление. Этот адрес записывается устройством управления непосредственно в счетчик команд и происходит переход на соответствующую команду программы. 2.5. Поколения цифровых устройств обработки информации В период развития цифровых технологий были разработаны компьютеры самых разных типов. Многие из них давно забыты, но другие оказали сильное влияние на развитие современных вычислительных систем. Здесь мы дадим краткий обзор некоторых этапов развития вычислительных машин, чтобы показать, как человеческая мысль пришла к современному пониманию компьютерных технологий. Устройства, облегчающие счет или запоминание его результатов, известны давно, но нас будут интересовать только устройства для вычислений, которые автоматически выполняют заложенные в них программы. Поэтому мы не рассматриваем здесь такие устройства, как счеты, механические арифмометры и электронные калькуляторы. Первая счетная машина с хранимой программой была построена французским ученым Блезом Паскалем в 1642 г. Она была механической с ручным приводом и могла выполнять операции сложения и вычитания. Немецкий математик Готфрид Лейбниц в 1672 г. построил механическую машину, которая могла делать также операции умножения и деления. Впервые машину, работающую по программе, разработал в 1834 г. английский ученый Чарльз Бэббидж. Она содержала запоминающее устройство, вычислительное устройство, устройство ввода с перфокарт и печатающее устройство. Команды считывались с перфокарты и выполняли считывание данных из памяти в вычислительное устройство и запись в память результатов вычислений. Все устройства машины Бэббиджа, включая память, были механическими и содержали тысячи шестеренок, при изготовлении которых требовалась точность, недоступная в XIX в. Машина реализовала любые 73
программы, записанные на перфокарте, поэтому впервые для написания таких программ потребовался программист. Первым программистом была англичанка Ада Ловлейс, в честь которой уже в наше время был назван язык программирования Ada. В XX в. начала развиваться электроника и ее возможности немедленно взяли на вооружение разработчики вычислительных машин. С построения вычислительных машин, базовая система элементов которых была построена на электронных компонентах, начинается отсчет поколений цифровых вычислительных машин. Отметим, что деление периода развития цифровой техники на этапы связано, в основном, с переводом базовой системы элементов на новые технологии производства электронных компонентов. Первое поколение - электронные ломпы (1945-1955 гг.) В основе базовой системы элементов этого поколения компьютеров лежали электронные лампы. Их использование определяло и достоинства и недостатки цифровых устройств. Электронные лампы обеспечивали высокую скорость переключения логических элементов, что увеличивало скорость вычисления по сравнению с попытками создать вычислительную машину, базовый элемент которой был построен на основе электромеханического реле. Электронные лампы были достаточно долговечны и обеспечивали надежную работу компьютера. К сожалению, недостатков у ламповых компьютеров тоже было достаточно. Электронные лампы работали с напряжениями в десятки вольт и расходовали много энергии, кроме того, размер электронных ламп, по современным понятиям микроэлектроники, был огромным — несколько десятков кубических сантиметров. Для построения вычислительной машины нужны были тысячи логических элементов, поэтому размер ламповых вычислительных машин по занимаемой площади составлял десятки квадратных метров, а потребляемая мощность колебалась в пределах от единиц до десятков и даже сотен киловатт. Такая мощность приводила к перегреванию ламп, которые были размешены довольно компактно, и ставила задачу эффективного охлаждения электронных компонентов машины. Скорость обработки информации в ламповых машинах колебалась от нескольких сотен до нескольких тысяч операций в секунду. 74
Второе поколение - транзисторы (1955-1965 гг.) Полупроводниковые приборы — транзисторы были изобретены в 1948 г. Они отличались от электронных ламп малыми размерами, низким напряжением питания и малой потребляемой мощностью. Все эти достоинства полупроводниковых приборов произвели революцию в радиоэлектронной промышленности. Стали появляться миниатюрные приемо-передающие радио- и телеустройства, появилась возможность встраивать управляющие устройства непосредственно в объекты управления и т.д. Новая элементная база для компьютеров на основе транзисторов произвела революцию и в производстве компьютеров. Значительное уменьшение габаритов, снижение потребляемой мощности и стоимости позволило создавать архитектуры компьютера с большими функциональными возможностями, резко повысить быстродействие компьютеров до сотен тысяч и даже миллионов операций в секунду. Увеличение производительности обеспечивалось как за счет более высокой скорости работы транзисторов по сравнению с электронными лампами, так и путем введения в состав вычислительной машины нескольких обрабатывающих устройств, работающих параллельно. Площадь, требуемая для размещения компьютера, снизилась до нескольких квадратных метров, предпринимались попытки изготавливать и настольные варианты. Снижение стоимости увеличило число потенциальных пользователей компьютеров. Появились крупные фирмы по производству компьютеров широкого назначения: International Business Machines (IBM), Control Data Corporation (CDC), Digital Equipment Corporation (DEC) и др. Следует отметить компьютер PDP-8 фирмы DEC — первого мини- компьютера с общей шиной, оказавшего большое влияние на развитие архитектур персональных компьютеров. Третье поколение - интегральные схемы (1965-1980 гг.) Полупроводниковые элементы и другие электронные компоненты выпускались электронной промышленностью в виде отдельных элементов. Так, полупроводниковый кристалл, на котором размещался транзистор, заключался в специальный металлический или пластмассовый корпус. Требование уменьшения габаритов электронных 75
устройств привело к тому, что сначала полупроводниковые приборы стали производиться в бескорпусном исполнении, а затем в 1958 г. была предпринята попытка разместить в одном полупроводниковом кристалле все компоненты одного функционального узла. Так появились интегральные схемы (ИС), которые позволили резко уменьшить размеры полупроводниковых схем и снизить потребляемую мощность. На основе ИС строились мини-ЭВМ, которые выполнялись в виде одной стойки и периферийных устройств. Мощность, потребляемая компьютером на ИС, уменьшилась до сотен ватт. Увеличение быстродействия узлов, построенных на ИС, позволило довести быстродействие компьютеров до десятков миллионов операций в секунду Электронная промышленность приступила к массовому производству электронных компонентов на ИС, что позволило снизить их стоимость и резко уменьшить стоимость аппаратной составляющей компьютеров. Уменьшение стоимости привело к разработке и практической реализации мощных вычислительных систем, использующих параллельную обработку: многопроцессорные и конвейерные вычислители. Четвертое поколение - сверхбольшие интегральные схемы (с 1980 гг.) Микроминиатюризация электронных устройств привела к появлению новой отрасли промышленности — микроэлектроники, которая относится к области высоких технологий. Используя последние научно-технические достижения физики, химии, кристаллографии, материаловедения и даже космонавтики (в невесомости можно получить полупроводниковые кристаллы очень высокой чистоты), добились размещения на одном кристалле размером несколько квадратных миллиметров сначала сотен, затем тысяч и, наконец, миллионов транзисторов и других электронных компонентов. Теперь полупроводниковая схема содержала уже не набор нескольких логических элементов, из которых строились затем функциональные узлы компьютера, а целиком функциональные узлы и, в первую очередь процессор, который, учитывая его размеры, получил название микропроцессор, устройства управления внешними устройствами — контроллеры внешних устройств. Такие интегральные схемы получили название сначала больших интегральных схем (БИС), а затем и сверхбольших интегральных схем (СБИС). 76
Итогом такого бурного развития микроэлектроники стало появление одноплатных ЭВМ, где на одной плате, размером несколько десятков квадратных сантиметров, размещались несколько СБИС, содержащих все функциональные блоки компьютера. Одноплатные компьютеры встраивались в различные промышленные, медицинские и бытовые приборы для оперативной обработки информации и управления. Стоимость одноплатных компьютеров так упала, что появилась возможность их приобретения отдельными людьми. Такой возможностью воспользовались английские инженеры Стив Джобс и Стив Возняк. Используя выпускаемые промышленностью функциональные узлы: плата микро-ЭВМ с процессором и памятью, клавиатура, дисплей, они собрали дешевую настольную вычислительную машину — мыкрокомпьютер. Его привлекательность для непрофессиональных пользователей заключалась в том, что это было готовое к употреблению устройство, содержащее все необходимое оборудование и программное обеспечение для работы. Этот микрокомпьютер получил название Apple и стал первым в мире персональным компьютером. Персональными компьютерами, которые получили большое распространение на компьютерном рынке, заинтересовалась крупная компания, занимавшаяся выпуском мощных вычислительных систем — IBM, и решила наладить выпуск своей модели персонального компьютера. Совместно с фирмой Intel, разработавшей микропроцессорный комплект, и фирмой Microsoft, которая оснастила компьютер операционной системой MS DOS, IBM создала персональный компьютер IBM PC. Значительный потенциал фирмы IBM позволил в короткие сроки произвести огромное количество таких компьютеров. Их привлекательная для покупателей цена и некоторые новшества, например, больший, по сравнению с выпускавшимися в то время персональными компьютерами других фирм, объем оперативной памяти, позволили компьютеру IBM PC стать самой популярной «персоналкой» в мире. Дальнейшая классификация вычислительных систем по их принадлежности к различным поколениям весьма условна. В настоящее время элементная база микропроцессорных систем активно развивается, но в ее основе по-прежнему лежат СБИС. Некоторые специалисты выделяют пятое, шестое и последующие поколения как усовершенствование микроэлектронных технологий. Другие рассматривают последующие поколения как изменение структур обработки команд и данных внутри микропроцессора. 77
2.6. Архитектуры вычислительных систем сосредоточенной обработки информации Современный компьютер состоит из нескольких функциональных узлов: процессор, память, контроллеры устройств и т.д. Каждый узел представляет собой сложное электронное устройство, в состав которого могут входить миллионы логических элементов. Для лучшего понимания принципа работы каждого узла и компьютера в целом вводится понятие уровней представления компьютера. Цифровой логический уровень — уровень логических схем базовой системы элементов. Микроархитектурный уровень — уровень организации обработки информации внутри функционального узла. Сюда относятся регистры различного назначения, устройство обработки поступающих команд, устройство преобразования данных, устройство управления. Командный уровень — набор функциональных узлов и связи между ними, система команд и данных, передаваемых между устройствами. Набор блоков, связей между ними, типов данных и операций каждого уровня называется архитектурой уровня. Архитектура командного уровня называется обычно компьютерной архитектурой или компьютерной организацией. В этом разделе мы рассмотрим различные компьютерные архитектуры. Архитектуры других уровней будут рассмотрены в следующих разделах. 2.6.1. Архитектуры с фиксированным набором устройств Компьютерами с сосредоточенной обработкой называются такие вычислительные системы, у которых одно или несколько обрабатывающих устройств (процессоров) расположены компактно и используют для обмена информацией внутренние шины передачи данных. Компьютеры первого и второго поколения имели архитектуру закрытого типа с ограниченным набором внешнего оборудования. Такая архитектура характерна для компьютеров, базовая система логических элементов которых построена на дискретных электронных компонентах (электронных лампах, транзисторах). Введение любого дополнительного функционального блока в такие архитектуры был 78
от сопряжен с увеличением потребляемой мощности, занимаемой площади и резко увеличивал стоимость всей системы. Поэтому компьютер, выполненный по этой архитектуре, не имел возможности подключения дополнительных устройств, не предусмотренных разработчиком. Укрупненная схема такой компьютерной архитектуры приведена на рис. 2.9. Оперативная память хранит команды и данные исполняемых программ, АЛУ обеспечивает не только числовую обработку, но и участвует в процессе ввода-вывода информации, осуществляя ее занесение в оперативную память. Канал ввода/вывода представляет собой специализированное устройство, работающее по командам, подаваемым устройством управления. Канал допускает подключение определенного числа внешних устройств. Устройство управления обеспечивает выполнение команд программы и управляет всеми узлами системы. Канал ввода/вывода Устройство управления АЛУ и регистры ввода/вывода Буферные регистры Оперативная память Рис. 2.9. Архитектура компьютера закрытого типа 79
Компьютеры такой архитектуры эффективны при решении чисто вычислительных задач. Они плохо приспособлены для реализации компьютерных технологий, требующих подключения дополнительных внешних устройств и высокой скорости обмена с ними информацией. 2.6.2. Вычислительные системы с открытой орхитектурой В начале 70-х гг. фирмой DEC {Digital Equipment Corporation) был предложен компьютер совершенно иной архитектуры. Эта архитектура позволяла свободно подключать любые периферийные устройства, что сразу же заинтересовало разработчиков систем управления различными техническими системами, так как обеспечивало свободное подключение к компьютеру любого числа датчиков и исполнительных механизмов. Главным нововведением являлось подключение всех устройств, независимо от их назначения, к общей шине передачи информации. Подключение устройств к шине осуществлялось в Центральный процессор Запоминающее устройство Устройство отображения Клавиатура Контроллер Другие устройства Контроллер Контроллер Общая шина Рис. 2.10. Архитектура компьютера открытого типа соответствии со стандартом шины. Стандарт шины являлся свободно распространяемым документом, что позволяло фирмам— производителям периферийного оборудования разрабатывать контроллеры для подключения своих устройств к шинам различных стандартов. Архитектура компьютера открытого типа, основанная на использовании общей шины, приведена на рис. 2.10. Общее управление всей системой осуществляет центральный процессор. Он управляет общей шиной, выделяя время другим устройствам для обмена информацией. Запоминающее устройство хранит исполняемые программы и 80
данные и согласовано уровнями своих сигналов с уровнями сигналов самой шины. Внешние устройства, уровни сигналов которых отличаются от уровней сигналов шины, подключаются к ней через специальное устройство — контроллер. Контроллер согласовывает сигналы устройства с сигналами шины и осуществляет управление устройством по командам, поступающим от центрального процессора. Контроллер подключается к шине специальными устройствами — портами ввода-вывода. Каждый порт имеет свой номер, и обращение к нему процессора происходит, также как и к ячейке памяти, по этому номеру. Процессор имеет специальные линии управления, сигнал на которых определяет, обращается ли процессор к ячейке памяти или к порту ввода-вывода контроллера внешнего устройства. Несмотря на преимущества, предоставляемые архитектурой с общей шиной, она имеет и серьезный недостаток, который проявлялся все больше при повышении производительности внешних устройств и возрастании потоков обмена информацией между ними. К общей шине подключены устройства с разными объемами и скоростью обмена, в связи с чем «медленные» устройства задерживали работу «быстрых». Дальнейшее повышение производительности компьютера было найдено во введении дополнительной локальной шины, к которой подключались «быстрые» устройства. Архитектура компьютера с общей и локальной шинами приведена на рис. 2.11. Центральный процессор Контроллер шины Запоминающее устройство Устройство отображения Клавиатура Контроллер Контроллер Локальная шина Контроллер Устройство Другие устройст ва Контроллер Общая шина Рис. 2.11. Архитектура компьютера с общей и локальной шиной 81
Контроллер шины анализирует адреса портов, передаваемые процессором, и передает их контроллеру подключенному к общей или локальной шине. Конструктивно контроллер каждого устройства размещается на общей плате с центральным процессором и запоминающим устройством или, если устройство не является стандартно входящим в состав компьютера, на специальной плате, вставляемой в специальные разъемы на общей плате — слоты расширения. Дальнейшее развитие микроэлектроники позволило размещать несколько функциональных узлов компьютера и контроллеры стандартных устройств в одной микросхеме СБИС. Это сократило количество микросхем на общей плате и дало возможность ввести две дополнительные локальные шины для подключения запоминающего устройства и устройства отображения, которые имеют наибольший объем обмена с центральным процессором и между собой. Хотя архитектура компьютера осталась прежней, структура современного персонального компьютера имеет вид, представленный на рис. 2.12. Центральный процессор Видеоконтроллер Локальная шина Центральный контроллер Локальная шина Контроллер Другие устройства Запоминающее устройство Общая шина Функциональный контроллер Выходы контроллеров для подключения стандартных внешних устройств Рис. 2.12. Структура персонального компьютера 82
Центральный контроллер играет роль коммутатора, распределяющего потоки информации между процессором, памятью, устройством отображения и остальными узлами компьютера. Кроме этого в состав микросхемы центрального контроллера включены устройства, которые поддерживают работу компьютера. К ним относятся системный таймер; устройство прямого доступа к памяти, которое обеспечивает обмен данными между внешними устройствами и памятью в периоды, когда это не требуется процессору; устройство обработки прерываний, которое обеспечивает быструю реакцию процессора на запросы внешних устройств, имеющих данные для передачи. Функциональный контроллер — это СБИС, которая содержит контроллеры для подключения стандартных внешних устройств, таких как клавиатура, мышь, принтер, модем и т.д. Часто в состав этого контроллера входит такое устройство, как аудиокарта, позволяющая получить на внешних динамиках высококачественный звук при прослушивании музыкальных и речевых файлов. Для подключения специфических устройств часть общей шины, соединяющая центральный и функциональный контроллеры, имеет слоты расширения для установки плат контроллеров. 2.6.3. Архитектуры многопроцессорных вычислительных систем Персональные компьютеры позволяют реализовать многие компьютерные технологии, начиная от работы в Интернете, и кончая построением анимационных трехмерных сцен. Однако существуют задачи, объем вычислений которых превышает возможности персонального компьютера. Для их решений применяются компьютеры с гораздо более высоким быстродействием. Для получения высокого быстродействия на существующей элементной базе используются архитектуры, в которых процесс обработки распараллеливается и выполняется одновременно на нескольких обрабатывающих устройствах Существует три основных подхода к построению архитектур таких компьютеров: многопроцессорные, магистральные и матричные архитектуры. Архитектура простых многопроцессорных систем выполняется по схеме с общей шиной. Два или более процессоров и один или несколько модулей памяти размещены на общей шине. Каждый про- 83
цессор, для обмена с памятью, проверяет, свободна ли шина, и, если она свободна, он занимает ее. Если шина занята, процессор ждет, пока она освободится. При увеличении числа процессоров производительность системы будет ограничена пропускной способностью шины. Чтобы решить эту проблему, каждый процессор снабжается собственной локальной памятью (рис. 2.13), куда помещаются тексты исполняемых программ и локальные переменные, обрабатываемые данным процессором. Общее запоминающее устройство используется для хранения общих переменных и общего системного программного обеспечения. При такой организации нагрузка на общую шину значительно снижается. Локальное запоминающее устройство Локальное запоминающее устройство Процессор Процессор Периферийный процессор Контроллер Внешние устройства Общее запоминающее устройство Общая шина Контроллер Внешние устройства Рис. 2.13. Архитектура многопроцессорной вычислительной системы с общей шиной Один из процессоров выделяется для управления всей системой. Он распределяет задания на исполнение программ между процессорами и управляет работой общей шины. Периферийный процессор осуществляет обслуживание внешних устройств при вводе и выводе информации из общей памяти. Он 84
может быть того же типа, что и остальные процессоры, но обычно устанавливается специализированный процессор, предназначенный для выполнения операций управления внешними устройствами. Магистральный принцип является самым распространенным при построении высокопроизводительных вычислительных систем. Процессор такой системы имеет несколько функциональных обрабатывающих устройств, выполняющих арифметические и логические операции, и быструю регистровую память для хранения обрабатываемых данных. Данные, считанные из памяти, размещаются в регистрах и из них загружаются в обрабатывающие устройства. Результаты вычислений помещаются в регистры и используются как исходные данные для дальнейших вычислений. Таким образом, получается конвейер преобразования данных: регистры — обрабатывающие устройства — регистры — ... . Архитектура магистрального суперкомпьютера приведена на рис. 2.14. Число функциональных устройств здесь равно шести («Сложение», «Умножение» и т.д.), однако в реальных системах их количество может быть иным. Устройство пла- Регистры для хранения обрабатываемых данных Сложение Умножение Деление Логика Индекс Сдвиг Общее запоминающее устройство Периферийный процессор Внешние устройства Устройство планирования последовател ьности выполнения команд Контроллер Внешние устройства Рис. 2.14. Архитектура магистрального суперкомпьютера 85 Контроллер
нирования последовательности выполнения команд распределяет данные, хранящиеся в регистрах, на функциональные устройства и производит запись результатов снова в регистры. Конечные результаты вычислений записываются в общее запоминающее устройство. В матричной вычислительной системе процессоры объединяются в матрицу процессорных элементов. В качестве процессорных элементов могут использоваться универсальные процессоры, имеющие собственное устройство управления, или вычислители, содержащие только АЛУ и выполняющие команды внешнего устройства управления. Каждый процессорный элемент снабжен локальной памятью, хранящей обрабатываемые процессором данные, но при необходимости процессорный элемент может производить обмен со своими соседями или с общим запоминающим устройством. В первом случае, программы и данные нескольких задач или независимых частей одной задачи загружаются в локальную память процессоров и выполняются параллельно. Во втором варианте все процессорные элементы одновременно выполняют одну и ту же команду, поступающую от устройства обработки команд на все процессорные элементы, но над разными данными, хранящимися в локальной памяти каждого процессорного элемента. Вариант архитектуры с общим управлением показан на рис. 2.15. Обмен данными с периферийными устройствами выполняется через периферийный процессор, подключенный к общему запоминающему устройству. 2.6.4. Классификация компьютеров по сферам применения Наиболее часто при выборе компьютера для той или иной сферы применения используется такая характеристика, как производительность, под которой понимается время, затрачиваемое компьютером для решения той или иной задачи. Понятие «производительность» определяет и некоторые другие характеристики компьютера, такие, например, как объем оперативной памяти. Вполне естественно, что компьютер с высокой скоростью обработки должен снабжаться большим объемом оперативной памяти, так как иначе его производительность будет ограничена- необходимостью подкачки информации из более медленной внешней памяти. Можно считать, что производительность является некоторой интегрированной харак- 86
Матрица процессорных элементов Общее запоминающее устройство Периферийный процессор Контроллер Устройство обработки команд Внешние устройства Контроллер Внешние устройства Рис. 2.15. Архитектура матричной вычислительной системы с общим управлением теристикой, определяющей общую вычислительную мощность компьютера, и, соответственно, области его применения. По производительности компьютеры можно условно разбить на три класса: суперкомпьютеры; мэйнфреймы; микрокомпьютеры. Суперкомпьютеры — компьютеры с производительностью свыше 100 млн операций в секунду. Применяются для решения таких задач, как моделирование физических процессов, гидрометеорология, кос- 87
мические исследования и других задач, которые требуют огромных объемов вычислений. Выполняются обычно по многопроцессорной архитектуре, имеют большой набор внешних устройств, и, как правило, выпускаются небольшими партиями для конкретной задачи или конкретного заказчика. Обычно важность решаемой задачи такова, что основным параметром суперкомпьютера является его высокая производительность, а такие параметры, как стоимость, размеры или вес, не являются определяющими. Мэйнфреймы — компьютеры с производительностью от 10 до 100 млн операций в секунду Они используются для решения таких задач, как хранение, поиск и обработка больших массивов данных, построение трехмерной анимационной графики, создание рекламных роликов, выполняют роль узлов глобальной сети, используемой торговыми или компьютерными фирмами с большим потоком запросов. Выполняются по многопроцессорной архитектуре с общей шиной и небольшим числом мощных процессоров. Конструктивно выполняются в виде одной стойки или в настольном варианте. Стоимость мэйнфреймов колеблется от тридцати до трехсот тысяч долларов. Микрокомпьютеры — компактные компьютеры универсального назначения, в том числе и для бытовых целей, имеющие производительность до 10 млн. операций в секунду. Микрокомпьютеры, или персональные компьютеры, можно классифицировать по конструктивным особенностям: стационарные (настольные) и переносные. Переносные компьютеры, в свою очередь, можно разделить на портативные (laptop), блокноты {notebook) и карманные {Palmtop). Портативные компьютеры по размеру близки к обычному портфелю, они, в настоящее время, уступают место более компактным. Блокноты по размеру близки к книге крупного формата и имеют массу около 3 кг. Такие компьютеры имеют встроенные аккумуляторы, позволяющие работать без сетевого напряжения. В настоящее время имеются полноцветные жидкокристаллические мониторы, не уступающие по качеству мониторам стационарных компьютеров. Карманные компьютеры в настоящее время являются самыми маленькими персональными компьютерами. Они не имеют внешней памяти на магнитных дисках, она заменена на энергонезависимую электронную память. Эта память может перезаписываться при помощи линии связи с настольным компьютером. Карманный компьютер можно использовать как словарь-переводчик или записную книгу. 88
2.7. Функциональная организация персонального компьютера 2.7.1. Центральный процессор Центральный процессор (ЦП) — функционально-законченное программно-управляемое устройство обработки информации, выполненное на одной или нескольких СБИС. В современных персональных компьютерах разных фирм применяются процессоры двух основных архитектур: • полная система команд переменной длины — Complex Instruction Set Computer (CISC); • сокращенный набор команд фиксированной длины — Reduced Instruction Set Computer (RISC). Весь ряд процессоров фирмы Intel, устанавливаемых в персональные компьютеры IBM, имеют архитектуру CISC, а процессоры Motorola, используемые фирмой Apple для своих персональных компьютеров, имеют архитектуру RISC. Обе архитектуры имеют свои преимущества и недостатки. Так CISC-процессоры имеют обширный набор команд (до 400), из которых программист может выбрать команду, наиболее подходящую ему в данном случае. Недостатком этой архитектуры является то, что большой набор команд усложняет внутреннее устройство управления процессором, увеличивает время исполнения команды на микропрограммном уровне. Команды имеют различную длину и время исполнения. RISC-архитектура имеет ограниченный набор команд и каждая команда выполняется за один такт работы процессора. Небольшое число команд упрощает устройство управления процессора. К недостаткам RISC-архитектуры можно отнести то, что если требуемой команды в наборе нет, программист вынужден реализовать ее с помощью нескольких команд из имеющегося набора, увеличивая размер программного кода. Упрощенная схема процессора, отражающая основные особенности архитектуры микроуровня, приведена на рис. 2.16. Наиболее 89 Управление и синхронизация Счетчик команд Управление выборкой очередной микрокомандь Регистры общего назначения АЛУ Внутренняя шина ПЗУ микрокоманд Дешифратор команд Буфер команд шина шина шина адреса данных управ- ления Рис. 2.16. Архитектура процессора сложным функциональным устройством процессора является устройство управления выполнением команд. Оно содержит: • буфер команд, который хранит одну или несколько очередных команд программы; читает следующие команды из запоминающего устройства, пока выполняется очередная команда, уменьшая время ее выборки из памяти; • дешифратор команд расшифровывает код операции очередной команды и преобразует его в адрес начала микропрограммы, которая реализует исполнение команды; • управление выборкой очередной микрокоманды представляет собой небольшой процессор, работающий по принципу фон Неймана, имеет свой счетчик микрокоманд, который автоматически выбирает очередную микрокоманду из ПЗУ микрокоманд; • постоянное запоминающее устройство (ПЗУ) микрокоманд — это запоминающее устройство, в которое информация записывается однократно и затем может только считываться; отличительной особенностью ПЗУ является то, что записанная в него информация сохраняется сколь угодно долго и не требует постоянного питающего напряжения. 90 Контроллер шины
Поступивший от дешифратора команд адрес записывается в счетчик микрокоманд устройства выборки, и начинается процесс обработки последовательности микрокоманд. Каждый разряд микрокоманды связан с одним управляющим входом какого-либо функционального устройства. Так, например, управляющие входы регистра хранения «Сброс», «Запись», «Чтение» соединены с соответствующими разрядами микрокоманды. Общее число разрядов микрокоманды может составлять от нескольких сотен до нескольких тысяч и равно общему числу управляющих входов всех функциональных устройств процессора. Часть разрядов микрокоманды подается на устройство управления выборкой очередной микрокоманды и используется для организации условных переходов и циклов, так как алгоритмы обработки команд могут быть достаточно сложными. Выборка очередной микрокоманды осуществляется через определенный интервал времени, который, в свою очередь, зависит от времени выполнения предыдущей микрокоманды. Частота, с которой осуществляется выборка микрокоманд, называется тактовой частотой процессора. Тактовая частота является важной характеристикой процессора, так как определяет скорость выполнения процессором команд, и, в конечном итоге, быстродействие процессора. Арифметико-логическое устройство (АЛУ) предназначено для выполнения арифметических и логических операций преобразования информации. Функционально АЛУ состоит из нескольких специальных регистров, полноразрядного сумматора и схем местного управления. Регистры общего назначения (РОН) используются для временного хранения операндов исполняемой команды и результатов вычислений, а также хранят адреса ячеек памяти или портов ввода-вывода для команд, обращающихся к памяти и внешним устройствам. Необходимо отметить, что если операнды команды хранятся в РОН, то время выполнения команды значительно сокращается. Одна из причин, почему программисты иногда обращаются к программированию на языке машинных команд, это наиболее полное использование РОН для получения максимального быстродействия при выполнении программ, критичных по времени. Рассмотрим кратко характеристики процессоров, используемых в современных ПК типа IBM PC. Процессоры для этих ПК выпус- 91
кают многие фирмы, но законодателем моды здесь является фирма Intel. Ее последней разработкой является процессор Intel Core, выпуск которого начат в начале 2006 г. К основным особенностям архитектуры Intel Core можно отнести следующие: — имеется специальный внутренний КЭШ размером 2 Мбайта; — добавлена арбитражная шина, которая уменьшает нагрузку системной шины; — внутренняя микроархитектура процессора базируется на двух ядрах — параллельно работающих конвейерах команд {суперскалярная архитектура), которые исполняют сразу несколько команд в 12 разных фазах обработки (чтение, дешифрация, загрузка операндов, исполнение и т.д.). Конвейеры заканчиваются двумя АЛУ: АЛУ, работающим на удвоенной частоте процессора для коротких арифметических и логических команд, и АЛУ для выполнения медленных команд; — введено управление питанием ядра, которое включает в себя блок температурного контроля, способный управлять отдельно питанием каждого ядра. Фирма Intel поставляет упрощенные варианты процессоров Pentium 4 под названием Celeron, который в два раза дешевле базового варианта процессора. Однако следует отметить, что последние модели процессора Celeron ни в чем не уступают «старшему брату» и даже в некоторых случаях превосходят его. Фирма AMD {Advanced Micro Devices) выпускает процессоры, совместимые по системе команд с Intel Pentium 4 — Athlon (K7). Этот процессор выполнен по суперскалярной архитектуре с тремя конвейерами команд, работающими параллельно и способными обрабатывать до девяти инструкций за один цикл работы процессора. Тестирование процессора К7 и его сравнение с Pentium 4 показывает, что К7 не уступает ему и даже превосходит его в некоторых случаях. Стоимость процессора Athlon на 20—30 % дешевле процессора Intel. Процессор К7 требует для своей работы собственной шины, несовместимой с шиной процессора Pentium 4. Поэтому замена одного типа процессора другим требует и замены системной платы, на которой расположен набор микросхем основных функциональных устройств ПК. 92
2.7.2. Оперативное запоминающее устройство Другим важным функциональным узлом компьютера является запоминающее устройство, или память. Память, в которой хранятся исполняемые программы и данные, называется оперативным запоминающим устройством (ОЗУ), или RAM (Random Access Memory) — памятью со свободным доступом. ОЗУ позволяет записывать и считывать информацию из ячейки, обращаясь к ней по ее номеру или адресу. Ячейка памяти имеет стандартное число двоичных разрядов. В настоящее время стандартный размер ячейки ОЗУ равняется одному байту. Информация в ОЗУ сохраняется все время, пока на схемы памяти подается питание, т.е. она является энергозависимой. Существует два вида ОЗУ, отличающиеся техническими характеристиками: динамическое ОЗУ, или DRAM (Dynamic RAM), и статическое ОЗУ, или SRAM (Static RAM). Разряд динамического ОЗУ построен на одном транзисторе и конденсаторе, наличие или отсутствие заряда на котором определяет значение, записанное в данном бите. При записи или чтении информации из такой ячейки требуется время для накопления (стекания) заряда на конденсаторе. Поэтому быстродействие динамического ОЗУ на порядок ниже, чем у статического ОЗУ, разряд которого представляет собой триггер на четырех или шести транзисторах. Однако из-за большего числа элементов на один разряд в одну СБИС статического ОЗУ помещается гораздо меньше элементов, чем у динамического ОЗУ. Например, современные СБИС динамических ОЗУ способны хранить 256—1024 Мбайт информации, а схемы статических ОЗУ только 256—512 Кбайт. Кроме этого статические ОЗУ более энергоемки и значительно дороже. Обычно, в качестве оперативной или видеопамяти используется динамическое ОЗУ. Статическое ОЗУ используется в качестве небольшой буферной сверхбыстродействующей памяти. В кэш-память из динамической памяти заносятся команды и данные, которые процессор будет выполнять в данный момент. Скорость работы ОЗУ ниже, чем быстродействие процессора, поэтому применяются различные методы для повышения ее производительности. Одним из способов увеличения быстродействия динамического ОЗУ является размещение в одном корпусе микросхемы СБИС нескольких модулей памяти с чередованием адресов. Байт 93
с нулевым адресом находится в первом модуле, байт с первым адресом во втором модуле, байт со вторым адресом в первом модуле и т.д. Поскольку обращение к памяти состоит из нескольких этапов: установка адреса, выбор ячейки, чтение, восстановление, то эти этапы можно совместить во времени для разных модулей. Другим способом увеличения быстродействия является чтение из памяти содержимого ячейки с заданным адресом и нескольких ячеек, расположенных рядом. Они сохраняются в специальных регистрах — защелках. Если следующий адрес указывает на одну из уже считанных ячеек, то ее содержимое читается из защелки. Несмотря на разработку новых типов схем динамических ОЗУ, снижающую время обращения к ним, это время все еще остается значительным и сдерживает дальнейшее увеличение производительности процессора. Для уменьшения влияния времени обращения процессора к ОЗУ и увеличения производительности компьютера дополнительно устанавливается сверхбыстродействующая буферная память, выполненная на микросхемах статической памяти. Эта память называется кэш-памятью (от англ. cache — запас). Время обращения к данным в кэш-памяти на порядок ниже, чем у ОЗУ, и сравнимо со скоростью работы самого процессора. Запись в кэш-память осуществляется параллельно с запросом процессора к ОЗУ. Данные, выбираемые процессором, одновременно копируются и в кэш-память. Если процессор повторно обратится к тем же данным, то они будут считаны уже из кэш-памяти. Такая же операция происходит и при записи процессором данных в память. Они записываются в кэш-память, а затем в интервалы, когда шина свободна, переписываются в ОЗУ. Современные процессоры имеют встроенную кэш-память, которая находится внутри процессора, кроме этого есть кэш-память и на системной плате. Чтобы их различать, кэш-память делится на уровни. На кристалле самого процессора находится кэш-память первого уровня, она имеет объем порядка 16—128 Кбайт и самую высокую скорость обмена данными. В корпусе процессора, но на отдельном кристалле находится кэшпамять второго уровня, которая имеет объем порядка 256 Кбайт — 4 Мбайта. И, наконец, кэш-память третьего уровня расположена на системной плате, ее объем может составлять 2—24 Мбайта. Управление записью и считыванием данных в кэш-память выполняется автоматически. Когда кэш-память полностью заполняет- 94
ся, то для записи последующих данных устройство управления кэшпамяти по специальному алгоритму автоматически удаляет те данные, которые реже всего использовались процессором на текущий момент. Использование процессором кэш-памяти увеличивает производительность процессора, особенно в тех случаях, когда происходит по-следовательное преобразование относительно небольшого числа данных, которые постоянно во время преобразования хранятся в кэш-памяти. В одном адресном пространстве с ОЗУ находится специальная память, предназначенная для постоянного хранения таких программ, как тестирование и начальная загрузка компьютера, управление внешними устройствами. Она является энергонезависимой, т.е. сохраняет записанную информацию при отсутствии напряжения питания. Такая память называется постоянным запоминающим устройством (ПЗУ) или ROM (Read Only Memory). Постоянные запоминающие устройства можно разделить по способу записи в них информации на следующие категории: — ПЗУ, программируемые однократно. Программируются при изготовлении и не позволяют изменять записанную в них информацию. — Перепрограммируемые ПЗУ (ППЗУ). Позволяют перепрограммировать их многократно. Стирание хранящейся в ППЗУ информации осуществляется или засветкой полупроводникового кристалла ультрафиолетовым излучением, или электрическим сигналом повышенной мощности, для этого в корпусе микросхемы предусматривается специальное окно, закрытое кварцевым стеклом. 2.7.3. Внутренние шины передачи информации Общая шина, наряду с центральным процессором и запоминающим устройством, во многом определяет производительность работы компьютера, так как обеспечивает обмен информацией между функциональными узлами. Общая шина делится на три отдельные шины по типу передаваемой информации: шина адреса, шина данных, шина управления. Каждая шина характеризуется шириной — числом параллельных проводников для передачи информации. Другим важным параметром шины является тактовая частота шины — это час- 95
тота, на которой работает контроллер шины при формировании циклов передачи информации. Шина адреса предназначена для передачи адреса ячейки памяти или порта ввода-вывода. Ширина шины адреса определяет максимальное количество ячеек, которое она может напрямую адресовать. Если ширина шины адреса равна я, то количество адресуемой памяти равно 2Л. Шина данных предназначена для передачи команд и данных, и ее ширина во многом определяет информационную пропускную способность общей шины. В современных компьютерах ширина шины данных составляет 32—64. Шина управления включает в себя все линии, которые обеспечивают работу общей шины. Ее ширина зависит от типа шины и определяется алгоритмом ее работы или, как говорят, протоколом работы шины. Протокол работы шины состоит из нескольких циклов и выполняется контроллером шины, расположенным внутри процессора (рис. 2.16), или отдельным контроллером шины (рис. 2.12). Приведем примерный протокол работы системной шины. Первый такт работы шины инициируется процессором, когда ему требуется произвести обмен информации с каким-либо устройством. Процессор выставляет на шину адреса адрес порта внешнего устройства или ячейки памяти и устанавливает управляющие сигналы, показывающие, какой тип обмена и с каким устройством или памятью он собирается произвести. На втором такте работы процессор ожидает от устройства сигнала о его готовности к приему или передаче информации. Второй такт может повторяться бесконечное число раз, пока не будет получен сигнал о готовности устройства. На третьем такте процессор выставляет на шину данных передаваемую информацию при записи или открывает шину данных для приема информации. На четвертом такте происходит обмен информацией, и работа протокола передачи заканчивается. Несмотря на то, что производители компьютеров постоянно предлагают новые варианты протоколов работы общих шин, которые обеспечивают более высокую производительность операций обмена информацией, ее пропускная способность оказывается недостаточной для обеспечения данными таких высокопроизводительных функциональных узлов, как центральный процессор, и некоторых внешних устройств, таких, например, как видеоподсистема с высо- 96
ким качеством отображения. Поэтому разработчики предлагают включать в состав компьютера дополнительные шины, связывающих напрямую центральный процессор и отдельные наиболее быстродействующие устройства. Такие шины получили название локальных шин. На рис. 2.12 локальные шины используются для подключения к процессору запоминающего устройства и видеоконтроллера. Ниже приведены обозначения и основные характеристики общих и локальных шин, применяемых в персональных компьютерах фирмы IBM. Общая шина PCI (Peripheral Component Interconnect) применяется в настольных компьютерах, в настоящее время используются модификации PCI 2.1—3.0, PCI 64/66, PCI-X. Тактовая частота контроллера этой шины 33,33 МГц или 66,66 МГц. Ширина шины 32 или 64 бита, шина мультиплексированная (адрес и данные передаются по одним и тем же линиям). Пиковая пропускная способность шины 533 Мбайт/С. Общая шина PCMCIA (Personal Computer Memory Card International Association) применяется в переносных компьютерах класса ноутбук и имеет параметры, сравнимые с параметрами шины PCI. Локальная шина для подключения видеоконтроллера AGP (Accelerated Graphics Port) позволяет организовать непосредственную связь видеоконтроллера и оперативного запоминающего устройства. Она ориентирована на массовую передачу видеоданных. Имеет конвейерную организацию выполнения операций чтения/записи, что позволяет избежать задержек при обращении к модулям памяти. За один такт работы может передать два, четыре или восемь блоков данных, в зависимости от установленного режима работы. При установке режима параллельной передачи восьми блоков обеспечивает пиковую скорость передачи 2112 Мбайт/С. В настоящее время для увеличения производительности видеосистемы разработана новая более быстрая и прогрессивная шина PCI Express. 2.7.4. Внешние запоминающие устройства В отличие от оперативного запоминающего устройства, внешние запоминающие устройства (ВЗУ) обладают большим объемом сохраняемой информации и являются энергонезависимыми. Наибольшее распространение в настоящее время получили дисковые ВЗУ, которые, в зависимости от типа носителя, можно разделить на магнитные, оптические и смешанные. 4. Информагика 97
Накопители но магнитных дисках Магнитные диски в качестве запоминающей среды используют магнитные материалы со специальными свойствами, позволяющими фиксировать два состояния. Информация на магнитные диски записывается и считывается магнитной головкой, которая перемещается радиально с фиксированным шагом, а сам диск при этом вращается вокруг своей оси. Головка считывает или записывает информацию, расположенную на концентрической окружности, которая называется дорожкой или треком. Количество дорожек на диске определяется шагом перемещения головки я зависит от технических характеристик привода диска и качества самого диска. За один оборот диска может быть считана информация с одной дорожки. Общее время доступа к информации на диске складывается из времени перемещения головки на нужную дорожку и времени одного оборота диска. Каждая дорожка дополнительно разбивается на ряд участков — секторов. Сектор содержит минимальный блок информации, который может быть записан или считан с диска. Чтение и запись на диск осуществляется блоками, поэтому дисководы называют блочными устройствами. Физическая структура диска определяется количеством дорожек и числом секторов на каждой дорожке. Она задается при форматировании диска, которое выполняется специальными программами и должно быть проведено перед первым использованием диска для записи информации. Кроме физической структуры диска, говорят еще о логической структуре диска. Логическая структура определяется файловой системой, которая реализована на диске и зависит от операционной системы компьютера, на котором используется данный диск. Логическая структура подразумевает выделение некоторого количества секторов для выполнения служебных функций размещения файлов и каталогов на диске. Дисководы магнитных дисков делятся на дисководы для сменных носителей (дискет) и дисководы жестких дисков (винчестеры), которые устанавливаются в системном блоке компьютера. Сменные магнитные диски изготавливаются на основе гибкого синтетического материала, на который с обеих сторон нанесен слой магнитного материала. Такие гибкие диски имеют объем хранимой информации 1,44—2,88 Мбайт. Все сменные носители на дисках, в том числе и 98
рассмотренные далее оптические диски, характеризуются своим диаметром, или форм-фактором. Наибольшее распространение получили гибкие магнитные диски с форм-фактором 3,5 дюйма. Но существуют диски с форм-фактором 5,25 дюйма и 1,8 дюйма. Кроме гибких дисков широкое распространение получили сменные магнитные носители типа ZIP. Использование более совершенной системы позиционирования головок системы привода позволило увеличить плотность записи, и довести его для диска с форм-фактором 3,5 дюйма до 250 Мбайт. К сожалению, диски ZIP несовместимы с обычными гибкими дисками и для их использования приходится устанавливать специальный привод ZIP. Основа жесткого диска изготавливается из сплавов алюминия или керамики, на который наносится магнитный слой. Жесткость диска позволяет увеличить плотность записи, по сравнению с гибким диском. Несколько жестких дисков надеваются на одну общую ось и представляют собой пакет дисков. Такие пакеты позволяют резко увеличить объем информации, хранящейся на одном дисководе жесткого диска. В настоящее время используются дисководы с объемом 120—750 Гбайт, и эти значения постоянно увеличиваются. Накопители на оптических дисках Оптический компакт-диск {Compact Disk {CD)), который был предложен в 1982 г. фирмами Philips и Sony первоначально для записи звуковой информации, произвел переворот и в компьютерной технике, так как идеально подходил для записи цифровой информации больших объемов на сменном носителе. Объем информации, записанной на компакт-диске, составляет 600—700 Мбайт. К достоинствам компакт-диска можно отнести и его относительную дешевизну в массовом производстве, высокую надежность и долговечность, нечувствительность к загрязнению и воздействию магнитных полей. Запись на компакт-диск при промышленном производстве производится в несколько этапов. Сначала с использованием мощного инфракрасного лазера в стеклянном контрольном диске выжигаются отверстия диаметром 0,8 микрон. По контрольному диску изготавливается шаблон с выступами в тех местах, где лазер прожег отверстия. В шаблон вводится жидкая смола (поликарбонат), и получают диск с таким же набором впадин, что и отверстий в контрольном диске. Со стороны впадин на диск напыляется тонкий слой 99
алюминия, который затем покрывается лаком, защищающим его от царапин. При воспроизведении лазерный диод небольшой мощности освещает диск со стороны, противоположной нанесенному слою алюминия, который является отражателем светового луча лазера, а впадины превращаются в выступы. Впадины на диске имеют глубину, равную четверти длины волны лазера, из-за чего фотодиод, принимающий отраженный свет лазера, получает света от выступа меньше, чем от площадки. Впадины и площадки записываются на диск по спирали. Запись начинается от центра диска и занимает приблизительно 32 мм диска. Спираль проходит 22 188 оборотов вокруг диска, ее общая длина составляет 5600 М. На всем протяжении спирали скорость записи остается постоянной, поэтому специальное устройство при воспроизведении следит за постоянством линейной скорости, изменяя значение угловой скорости вращения диска. Так, на внутренней стороне скорость равна 530 оборотов в минуту, а на внешней стороне скорость падает до 200 оборотов в минуту, при этом линейная скорость остается постоянной, равной 1,2 М/С. В середине 90-х гг. появились устройства, устанавливаемые непосредственно на компьютере и позволяющие производить однократную запись информации на компакт-диск. Для таких устройств выпускают специальные компакт-диски, которые получили название CD-Recodable (CD-R). Отражающим слоем у них служит тонкий слой позолоты. Между слоем позолоты и слоем поликарбамидной смолы вводится слой красителя. На диске без записи этот слой красителя бесцветен, но под воздействием лазерного луча краситель темнеет, образуя пятна, которые при воспроизведении воспринимаются как выступы. Позднее появились компакт-диски с возможностью перезаписи — CD-ReWritable (CD-RW). На этих дисках слой красителя может находиться в двух состояниях: кристаллическом и аморфном. Эти два состояния имеют разную отражательную способность. Лазер устройства имеет три уровня мощности. При записи мощность лазерного диода повышается и расплавляет слой красителя, переводя его в аморфное состояние с низкой отражательной способностью, что соответствует выступу (запись информации). При средней мощности краситель плавится и переходит в кристаллическое состояние с вы- 100
сокой отражательной способностью (стирание информации). Низкая мощность лазера используется для считывания информации. Дальнейшее развитие технологий производства компакт-дисков привело к созданию дисков с высокой плотностью записи — цифровой универсальный диск Digital Versatile Disk (DVD). Впадины на них имеют меньший диаметр (0,4 микрона), а спираль размещается с плотностью 0,74 микрона между дорожками (вместо 1,6 микрон у CD). Это позволило увеличить объем информации на диске до 4,7 Гбайт. Дальнейшее увеличение объема информации обеспечивается применением двусторонних DVD. Флэш-память К недостаткам дисковой памяти можно отнести наличие механических движущихся компонентов, имеющих малую надежность, и большую потребляемую мощность при записи и считывании. Появление большого числа цифровых устройств, таких как МРЗ-плееры, цифровые фото- и видеокамеры, карманные компьютеры, потребовало разработки миниатюрных устройств внешней памяти, которые обладали бы малой энергоемкостью, небольшими размерами, значительной емкостью и обеспечивали бы совместимость с персональными компьютерами. Первые промышленные образцы такой памяти появились в 1994 г. Новый тип памяти получил название флэш-память (Flash- memory). Флэш-память представляет собой микросхему перепрограммируемого постоянного запоминающего устройства (ППЗУ) с неограниченным числом циклов перезаписи. В ППЗУ флэш-памяти использован новый принцип записи и считывания, отличный от того, который используется в известных схемах ППЗУ. Кристалл схемы флэш-памяти состоит из трех слоев. Средний слой, имеющий толщину порядка 1,5 нм, изготовлен из ферроэлектрического материала. Две крайние пластины представляют собой матрицу проводников для подачи напряжения на средний слой. При подаче напряжения, на пересечении проводников, возникает напряжение, достаточное для изменения направления магнитного момента атомов его кристаллической решетки, расположенной под местом пересечения проводников. Направление магнитного поля сохраняется и после снятия внешнего электрического поля. Изменение направления маг- 101
нитного поля ферроэлектрика изменяет сопротивления этого участка слоя. При считывании, на один крайний слой подается напряжение, а на втором слое замеряется напряжение, прошедшее через фер- роэлектрик, которое будет иметь разное значение для участков с разным направлением магнитного момента. Такой тип флэш-памяти получил название FRAM (ферроэлектрическая память с произвольным доступом). Конструктивно флэш-память выполняется в виде отдельного блока, содержащего микросхему флэш-памяти и контроллер, для подключения к одному из стандартных входов компьютера. Размеры этого блока 40 х 16x7 мм. Флэш-память, используемая в других цифровых устройствах, имеет иные размеры и конструктивное оформление. В настоящее время объем флэш-памяти достигает нескольких Гбайт, скорость записи и считывания составляют десятки Мбайт/с. 2.7.5. Внешние устройства Видеотерминалы Видеотерминалы предназначены для оперативного отображения текстовой и графической информации в целях визуального восприятия ее пользователем. Видеотерминал состоит из видеомонитора {дисплея) и видеоконтроллера. Для персональных компьютеров используются мониторы следующих типов: • на основе электроннолучевой трубки (ЭЛТ); • на основе жидкокристаллических индикаторов (ЖКИ, LCD — Liquid Crystal Display); • плазменные мониторы (PDP — Plasma Display Panels); • электролюминесцентные мониторы (FED — Field Emission Display); • самоизлучающие мониторы (LEP — Light Emission Plastics). Основными характеристиками мониторов являются следующие. Размер экрана монитора, который задается обычно величиной его диагонали в дюймах. Домашние персональные компьютеры оснащаются мониторами с размерами 15 или 17 дюймов, а для профессиональной работы, требующей отображения мелких деталей, используются мониторы с размерами 21 и 22 дюйма. 102
Еще одна важная характеристика монитора — разрешающая способность, которая определяется числом пикселей (световых точек) по горизонтали и вертикали. Стандартные значения разрешающей способности современных мониторов следующие: 800x600, 1024x768, 1800x1440, 2048x1536 и др. Значение разрешающей способности определяет качество изображения на экране. Рабочая частота кадровой развертки определяет скорость смены кадров изображения, она влияет на утомляемость глаз при продолжительной работе на компьютере. Чем выше частота кадровой развертки, тем меньше утомляемость глаз. Частота смены кадров во многом зависит от разрешающей способности экрана: чем выше разрешающая способность, тем меньше частота смены кадров, например, при разрешении 800x600 максимальная частота смены кадров может составить 120 Гц, а при разрешении 1600x1200 — 67 Гц. На разрешающую способность монитора и качество изображения влияет объем видеопамяти. Современные видеоконтроллеры для хранения цвета каждого пикселя расходуют до 4 байт памяти, для чего необходимо иметь объем видеопамяти от 32 до 128 Мбайт. Больший объем видеопамяти позволяет устанавливать более высокий режим разрешения и большее число цветов для каждого пикселя. Мониторы на основе ЭЛТ используют электроннолучевые трубки, применяемые в обычных телевизионных приемниках, и устройства, формирующего на экране точки (пиксели). Луч, двигающийся горизонтально, периодически засвечивает люминофор экрана, который под действием потока электронов начинает светиться, образуя точку. Для цветных мониторов засветка каждой точки осуществляется тремя лучами, вызывающими свечение люминофора соответствующего цвета — красного, зеленого и синего. Цвет точки создается смешением этих трех основных цветов и зависит от интенсивности каждого электронного луча. Цветной монитор может отображать до 16 млн оттенков в каждой точке. Мониторы на жидкокристаллических индикаторах представляют собой плоские панели. Эти мониторы используют специальную прозрачную жидкость, которая при определенных напряженностях электростатического поля кристаллизуется, при этом изменяется ее прозрачность и коэффициент преломления световых лучей. Эти эффекты используются для формирования изображения. Конструктивно такой монитор выполнен в виде двух электропроводящих стеклянных пла- 103
стан, между которыми помещен слой кристаллизующейся жидкости. Для создания электростатического поля стеклянная пластина покрыта матрицей прозрачных проводников, а пиксель формируется на пересечении вертикального и горизонтального проводника. Иногда на пересечении проводников ставят активный управляющий элемент — транзистор. Такие экраны, которые получили название TFT-экра- нов (Thin Film Transistor — тонкопленочный транзистор), имеют лучшую яркость и предоставляют возможность смотреть на экран даже с отклонением до 45° от вертикали. Этот показатель отличает TFT- экраны от экранов с пассивной матрицей, которые обеспечивали качество изображения только при фронтальном наблюдении. В плазменных мониторах изображение формируется светом, выделяемым при газовом разряде в каждом пикселе экрана. Конструктивно плазменная панель состоит из трех стеклянных пластин, на две из которых нанесены тонкие прозрачные проводники: на одну вертикально, на другую — горизонтально. Между ними находится третья пластина, в которой в местах пересечения проводников двух первых пластин имеются сквозные отверстия. Эти отверстия при сборке заполняются инертным газом: неоном или аргоном, они и образуют пиксели. Плазма газового разряда, возникающая при подаче высокочастотного напряжения на вертикальный и горизонтальный проводники, излучает свет в ультрафиолетовом диапазоне, который вызывает свечение люминофора. Каждый пиксель представляет собой миниатюрную лампу дневного света. Высокая яркость и контрастность, отсутствие дрожания изображения, а также большой угол отклонения от нормали, при котором изображение сохраняет высокое качество, являются большими преимуществами таких мониторов. К недостаткам можно отнести недостаточную пока разрешающую способность и достаточно быстрое (пять лет при офисном использовании) ухудшение качества люминофора. Пока такие мониторы используются только для конференций и презентаций. Электролюминесцентные мониторы состоят из двух пластин, с ортогонально нанесенными на них прозрачными проводниками. На одну из пластин нанесен слой люминофора, который начинает светиться при подаче напряжения на проводники в точке их пересечения, образуя пиксель. Самоизлучающие мониторы используют матрицу пикселей, построенную на основе полупроводникового материала, излучающего свет 104
при подаче на него напряжения (светодиод). На сегодняшний день имеются монохромные самоизлучающие дисплеи с желтым свечением, но они уступают по сроку службы LCD мониторам. Удалось создать органический проводник, имеющий широкий спектр излучения. На основе этого материала планируется создать полноразмерный цветной самоизлучающий монитор. Достоинства таких мониторов заключаются в том, что они обеспечивают 180-градусный обзор, работают при низком напряжении питания и имеют малый вес. Устройство ручного ввода информации Клавиатура. Клавиатурой называется устройство для ручного ввода информации в компьютер. Современные типы клавиатур различаются, в основном, принципом формирования сигнала при нажатии клавиши. Наиболее распространенные клавиатуры имеют под каждой клавишей купол, выполненный из специальной резины, который прогибается при нажатии клавиши и замыкает контакты проводящим слоем, расположенным на куполе. У некоторых клавиатур под каждой клавишей находится магнит, который при нажатии перемещается и проходит через катушку, наводя в ней ток самоиндукции. Среди современных типов клавиатур можно отметить беспроводную клавиатуру, в которой передача информации в компьютер происходит с помощью датчика инфракрасного излучения, аналогично пультам управления различной бытовой техники. Такая клавиатура позволяет работать в любом удобном для пользователя месте помещения, не привязываясь к расположению системного блока. Можно также отметить гибкую резиновую клавиатуру, которая работает бесшумно, защищена от механических и химических разрушающих воздействий, очень тонкая и может быть свернута в виде цилиндра. Клавиатурный процессор, который обрабатывает сигналы от клавиатуры, определяет номер клавиши, которая была нажата, так называемый скан-код, а сервисные программы операционной системы уже определяют, какой именно символ или команда были введены. Такой подход позволяет сопоставлять каждой клавише больше одного символа. Так, например, алфавитные клавиши клавиатуры ассоциируются с четырьмя различными символами: строчными и прописными символами латинского и национального алфавита. Точно так же происходит и с управляющими клавишами. При нажатии клавиши 105
клавиатурный процессор посылает в специальный буфер клавиатуры, расположенный в оперативной памяти, скан-код клавиши, состоящий из двух байт: байта собственно скан-кода и байта, определяющего какие дополнительные управляющие клавиши при этом удерживались нажатыми. К управляющим клавишам относятся клавиши Ctrl, Alt, Shift, которые еще и различаются по месту расположения: левые и правые, а также их комбинации. Сервисная программа читает из буфера клавиатуры эти два байта и передает их в программу, которая решает, какой именно символ или управляющий сигнал необходимо отобразить. Такой подход к обработке нажатий клавиш значительно расширяет возможности клавиатуры при задании управляющих комбинаций клавиш или при смене национального алфавита. Специальная программа в операционной системе Windows, например, позволяет изменить целиком раскладку клавиш или национальный алфавит, или значения отдельных клавиш. Клавиатурный процессор предоставляет пользователю еще одну интересную возможность: ввода символа, который не отображен на клавиатуре. Для этого на малой цифровой клавиатуре (она расположена слева) набирается десятичный код требуемого символа при одновременном удерживании клавиши Alt. Таким образом можно ввести символ псевдографики или управляющий символ, отсутствующий на клавиатуре. Манипулятор типа «мышь». В качестве дополнительных устройств для ручного ввода информации наиболее широко используются устройства графического ввода типа «мышь» и устройства для ввода информации в игровые программы — джойстики. Манипулятор «мышь» представляет, особенно для начинающих пользователей, необходимое средство для работы с компьютером. Современные графические операционные системы предоставляют пользователю графические объекты, размещенные на экране дисплея, и обращение к ним производится с помощью движущегося по экрану специального значка — курсора, обычно имеющего вид стрелки, который позволяет активизировать объект, не задумываясь о командах, которые при этом выполняются. Профессиональные пользователи активизируют работу объектов командами с клавиатуры, так как это ускоряет работу и не требует перемещения рук от клавиатуры. Но и профессионалы пользуются мышью, например, работая в графических редакторах или создавая приложения в визуальных сре- 106
дах программирования. Мышь используется и в некоторых игровых программах. Мышь представляет собой электронно-механическое устройство, внешний вид которой и принцип действия весьма разнообразны. Например, в портативных компьютерах мышь вмонтирована в его корпус и представляет собой площадку с сенсорами, которые отслеживают движения пальца по площадке и силу его давления и перемещают курсор по экрану или, при более сильном нажатии, выполняют команду. Такие устройства получили названия трекпоинты или трекпады. Но наиболее популярные типы мыши, применяемые в настольных компьютерах, имеют вид небольшой коробочки, сверху которой находятся две кнопки управления командами мыши и колесико скроллинга, применяемого для прокрутки информации в некоторых приложениях. На нижней части находится механическое или электронное устройство, отслеживающее перемещение мыши по поверхности. Механическое устройство состоит из резинового шарика, вращающегося, при перемещении мыши, и двух роликов, расположенных под прямым углом друг к другу. Ролики, в свою очередь, вращают колесики с прорезями. Свет от светодиода через прорезь попадает на фотодиод, который отсчитывает число прорезей и направление их прохождения, преобразуя их в вертикальную и горизонтальную составляющие движения. Эти сигналы поступают в компьютер, и сервисная программа, управляющая курсором мыши, перемещает курсор на экране в требуемом направлении. Эта же программа отслеживает нажатие левой и правой кнопки и число их нажатий за определенный промежуток времени. Программа способна отследить любое количество нажатий от одного до тридцати двух тысяч, однако на практике используется только одиночный или двойной щелчок кнопки. Электронные устройства перемещения используют принцип обработки отраженных световых импульсов от поверхности, по которой перемещается мышь. Такие устройства значительно надежнее механических. Выпускаются мыши, передающие информацию в компьютер по инфракрасному каналу. У таких мышей отсутствует «хвостик», связывающий ее с компьютером, из-за которого она и получила свое имя. Джойстик. Манипулятор типа джойстик является основным устройством для управления многочисленными компьютерными игра- 107
ми. Хотя большинство игровых программ допускают управление от клавиатуры, джойстики обеспечивают больший контроль над игрой и значительно полнее передают реальную игровую ситуацию, связанную с работой авиационных, автомобильных и иных имитаторов движения. Для истинных фанатов игр выпускают джойстики, похожие на реальные органы управления объектом: штурвалы, педали, рули и даже целые кабины. Простейший джойстик представляет собой основание с укрепленной на ней подвижной рукояткой, на которой размещены четыре кнопки и двухпозиционный курок. Отклонение рукоятки может осуществляться во все стороны и имитирует штурвал самолета или рычаг управления танком. Функции всех кнопок и положения рукоятки программируются и для разных игр могут иметь разные действия. Некоторые дорогие модели имеют механизм обратной связи игры с рукояткой джойстика, при этом рукоятка оказывает некоторое сопротивление перемещению, имитируя сопротивление среды, в котором перемещается объект. Для подключения джойстика к компьютеру используется стандартный вход, размещаемый обычно на разъеме звуковой карты, или другой стандартный вход компьютера. Устройства печати Существует несколько типов устройств, обеспечивающих получение твердой копии электронного документа на бумаге или другом материале. Наибольшее распространение получили два типа таких устройств: принтеры и плоттеры. Печатающие устройства (принтеры) — это устройства вывода данных из компьютера, формирующие поточечное изображение копии документов на бумаге или ином аналогичном материале, например, прозрачной пленке, применяемой для размножения документов типографским способом. Принтеры весьма разнообразны по принципу действия и качеству воспроизведения изображения, по размеру бумаги, на которой они могут его воспроизводить, а также возможности печати цветных или только черно-белых изображений и скорости печати. Основной характеристикой принтера, определяющей качество получаемого бумажного документа, является разрешающая способность, измеряющаяся числом элементарных точек (dots), которые помещаются на одном дюйме — dots per inch (dpi). Чем выше разре- 108
шающая способность, тем точнее воспроизводятся детали изображения. Современные принтеры обеспечивают разрешение от 200 до 2880 dpi. Еще одной важной характеристикой является производительность принтера, которая измеряется количеством страниц, изготовляемых принтером в минуту — page per minute (ppm). Обычно производительность указывается для страниц формата А4. Матричные принтеры. Изображение в матричных принтерах формируется из точек, которые получаются путем удара тонкой иглы по красящей ленте, прижимаемой в момент удара к бумаге. Иглы, число которых составляет от 9 до 24, объединены в головке и размещены в ней вертикально в один ряд. Каждая игла управляется отдельным магнитом, а головка движется горизонтально вдоль листа. Таким образом, за один проход головки получается полоса, высота которой в точках равна числу игл в головке. Скорость матричных принтеров не высока и составляет около 2 ppm. Разрешающая способность составляет 200—360 dpi. Достоинством матрдчных принтеров является низкая стоимость расходных материалов (красящей ленты) и возможность печати одновременно нескольких копий документа. К недостаткам относится низкая скорость печати и шум при печати. Струйные принтеры. В нашей стране это в настоящее время наиболее распространенный тип принтера. Печатающая головка струйного принтера вместо иголок содержит тонкие трубочки — сопла, через которые на бумагу выбрасываются мельчайшие дозированные капли красителя. Число сопел в головке составляет от 12 до 64. Струйные принтеры выполняют и цветную печать. При цветной печати цветная точка получается смешением в заданных пропорциях красителей трех основных цветов: голубого, пурпурного и желтого, выстреливаемого из трех сопел. Качество цветной печати получается очень высокое и практически неотличимо от типографского. К достоинствам струйных принтеров можно отнести: высокое разрешение, которое зависит от числа сопел в головке и составляет от 300 до 1200 dpi; высокая скорость печати (до 10 ppm); бесшумность работы. Основными недостатками является высокая стоимость расходных материалов и возможность засыхания красителя в сопле, что заставляет преждевременно заменять весь печатающий блок. Иногда, при нанесении большого объема красителя, бумага коробится. 109
Лазерные принтеры. Лазерные принтеры обеспечивают наиболее качественную печать с наивысшим разрешением и скоростью. Изображение в них формируется в несколько этапов. На первом этапе происходит засветка узким прерывистым световым лучом от лазерного диода барабана, на который нанесен тонкий слой материала, электролизующегося под действием света. На втором этапе барабан посыпается мелкодисперсионным красящим порошком, который налипает на барабан в точках засветки, а лишний порошок удаляется. Третий этап состоит в прокатывании барабана с налипшим на него порошком по бумаге, в результате чего краситель переходит на бумагу. На последнем этапе происходит термическая обработка бумаги. Она нагревается до 200°С, в результате порошок расплавляется и, проникая в структуру бумаги, закрепляется на ней. Лазерные принтеры могут обеспечить печать цветного изображения. Оно получается нанесением на барабан порошков разных цветов. К достоинствам лазерных принтеров можно отнести высокое качество печати, высокую скорость печати (до 40 ррт), а также низкую себестоимость копии и бесшумность в работе. Плоттеры. Плоттеры, или графопостроители, используются, в основном, для вывода графической информации — чертежи, схемы, диаграммы и т.п. Основное достоинство плоттеров заключается в том, что они предназначены для получения изображения на бумаге большого формата, например, AL Плоттеры делятся на два больших класса: векторные и растровые. В векторных плоттерах пишущий узел перемещается относительно бумаги сразу по вертикали и горизонтали, вычерчивая на бумаге непрерывные кривые в любом направлении. В растровых плоттерах пишущий узел перемещается относительно бумаги только в одном направлении, и изображение формируется строка за строкой из последовательности точек. Векторные плоттеры используют для рисования узел, который называется пером. В качестве пера используются перья с чернилами, фибровые и пластиковые стержни (фломастеры), карандашные грифели и мелки или шариковые узлы однократного и многоразового действия. Перьевые плоттеры обеспечивают высокое качество как однотонных, так и цветных изображений, но имеют невысокую скорость работы. Постепенно перьевые и шариковые узлы плоттеров вытесняются струйными узлами, которые аналогичны узлам струй- 110
ных принтеров. Для получения очень высокого качества печати электростатические плоттеры используют специальную бумагу, на которой создается потенциальный электростатический рельеф изображения. На бумагу наносится слой красителя, осаждающийся только на рельеф. Растровые плоттеры могут иметь струйный или лазерный пишущий узел. Их основное отличие от принтеров с подобным принципом работы состоит в ширине обрабатываемого изображения. Разнообразие существующих типов плоттеров и их высокая стоимость требует тщательного анализа при выборе плоттера. Необходимо учесть такие параметры, как качество изображения, возможности использования цветовой палитры, производительность, эксплуатационные расходы, выражающиеся в себестоимости одной копии полученного изображения. Устройство поддержки безбумажных технологий До появления электронных носителей информации основным средством сохранения документов являлась бумага. Перевод бумажных документов в электронные копии позволит сохранять их практически вечно. Кроме того, развитие глобальной сети позволяет обмениваться информацией только в электронном виде. Поэтому устройства, преобразующие бумажные документы в электронные копии и снабженные системами автоматического распознавания текста, являются необходимыми элементами создания систем безбумажной технологии. Наиболее распространенными устройствами для решения задачи перевода бумажных документов в электронные копии являются сканеры. Сканеры весьма разнообразны, и их можно классифицировать по целому ряду признаков. Прежде всего сканеры бывают чёрно-белые и цветные. Черно-белые сканеры могут считывать штриховые и полутоновые изображения. Полутоновые изображения могут иметь до 256 градаций серого цвета. В цветных сканерах сканируемое изображение освещается через вращающийся светофильтр, воспринимающий последовательно три основных цвета, или тремя последовательно зажигаемыми лампами красного, зеленого и голубого цветов. Следующая важная характеристика сканеров — разрешающая спо- 111
собность, измеряющаяся количеством различаемых точек на дюйм изображения, и составляет от 75 до 1600 dpi. Высокое разрешение необходимо для комфортного визуального восприятия. Для нормальной работы программ распознавания образов и, в частности, распознавания текстов, которыми снабжаются сканеры, вполне достаточно разрешающей способности в 300—600 dpi. Для публикации картинок На web-сайтах Интернета достаточно разрешения 80 dpi. Разрешение необходимо выбирать индивидуально для каждого конкретного использования сканируемого изображения. Увеличение разрешения резко увеличивает размер файла, в котором сохраняется изображение, это может вызвать затруднения при его пересылке и хранении. При больших объемах сканирования очень важное значение приобретает скорость сканирования документа. Оно может измеряться в миллиметрах в секунду, но на практике чаще используется количество секунд, затрачиваемое на сканирование одной страницы. Необходимо отметить, что скорость сканирования цветных изображений значительно ниже, чем штриховых черно-белых. Снижается скорость сканирования и при увеличении разрешающей способности сканера. Конструктивно сканеры делятся на четыре типа: рунные, планшетные, роликовые и проекционные. Ручные сканеры перемещаются по изображению вручную. Они выполнены в виде блока с рукояткой, который «прокатывают» по изображению. За один проход сканируется лишь часть изображения, так как ширина сканирования не превышает 105 мм. Все изображение сканируется за несколько проходов. Специальное программное обеспечение, поставляемое вместе со сканерами, позволяет совмещать части отсканированного изображения. Ручные сканеры имеют малые габариты и низкую стоимость и позволяют сканировать изображения любого размера, но могут возникать искажения при совмещении частей изображения. Планшетные сканеры являются наиболее распространенным типом сканера. В них сканирующая головка (линейка светодиодов) движется относительно неподвижного оригинала, который помещается на прозрачное стеклянное основание. Достоинство таких сканеров заключается в том, что с их помощью можно сканировать и листовые и сброшюрованные документы (книги). Скорость сканирования таких сканеров составляет 2—10 с на страницу формата А4. 112
К недостаткам планшетных сканеров можно отнести необходимость ручного позиционирования каждой страницы оригинала. Роликовые сканеры используются для пакетной обработки листовых документов. В них подача очередного листа для сканирования происходит автоматически. Сканирующая головка в таких сканерах неподвижна, а лист оригинала перемещается относительно нее. К недостаткам роликовых сканеров можно отнести проблему выравнивания листов и сложность работы с листами нестандартного размера. Проекционные сканеры отличаются от других типов тем, что оригинал устанавливается в рамку, и сканирование проводится на просвет, как правило, с масштабированием. Устройство оброботки звуковой информации Звуковая карта — это периферийное устройство, которое еще несколько лет назад считалось экзотическим, а теперь стало почти стандартным и включено в состав основного набора микросхем системных плат. Звуковая карта обеспечивает качество записи и воспроизведения звуковой информации не хуже звукового компакт-диска. Имеет 16-битный стереофонический цифро-аналоговый и аналого- цифровой преобразователи для записи и воспроизведения звуковой информации с цифрового или аналогового носителей и микрофона. Поддерживает функции создания звуковых эффектов для игровых программ. Имеет стандартные выходы для подключения акустической системы компьютера и внешних усилителей звуковых частот. Звуковая карта работает в трех основных режимах: создание, запись и воспроизведение звуковых сигналов. В режиме создания звука плата действует как музыкальный инструмент, синтезирующий сложный звуковой сигнал. Для синтеза используются два метода. Первый метод получил название FM-синтеза. FM-синтез осуществляется с помощью специальных генераторов, которые могут изменять частоту и амплитуду тона. Эти генераторы могут моделировать звучание определенного музыкального инструмента. На звуковой плате устанавливаются от 4 до 18 генераторов, которые, соответственно, могут имитировать одновременное звучание 2—9 инструментов. Звук, синтезированный FM-методом, имеет некоторый «металлический» оттенок и не похож на звучание настоящего музыкального инструмента. 113
Второй метод, получивший название WT-синтез, обеспечивает более высокое качество звучания. В основе этого синтеза лежат записанные ранее и хранящиеся в виде файлов образцы звучания музыкальных инструментов (MIDI-файлы). WT-синтезаторы манипулируют записанными образцами, создавая сложные музыкальные образы. Достоинство этого метода не только в высоком качестве синтезированного звука, но и в том, что количество и типы музыкальных инструментов можно расширить, установив на компьютер дополнительные MIDI-файлы. В режиме записи звуковая карта принимает звук от внешнего источника и производит его оцифровку, т.е. преобразует его из аналоговой {непрерывной) формы в цифровую {дискретную) и сохраняет числовые данные в виде файлов на диски. Качество оцифрованного звука во многом зависит от разрядности преобразования и частоты дискретизации. При воспроизведении звуковая карта может принимать оцифрованный или непрерывный сигнал. Для этого карта имеет специальные разъемы для подключения источников непрерывного сигнала, вход для подключения, выход CD-диска и усилитель, позволяющий выводить сигнал на внешние акустические системы. Качество оцифровываемого и воспроизводимого сигнала зависит от таких параметров звуковой карты, как частота дискретизации, которая должна составлять не менее 44 кГц, разрядность оцифрованного сигнала (12—16 бит) и возможность стереофонической записи и воспроизведения. Устройства для соединения компьютеров в сеть Модем. Одной из популярных областей применения персонального компьютера является работа в глобальной сети Internet. К ней компьютер подключается по обычной телефонной или специальной линии с помощью устройства, которое называется модем {МОдулятор + ДЕМодулятор). Цифровые данные, поступающие в модем из компьютера, преобразуются в нем путем модуляции в специальный непрерывный сигнал, который и направляется в линию передачи. Модем- приемник осуществляет обратное преобразование сигнала (демодуляцию) и пересылает восстановленные цифровые данные в свой компьютер. Скорость передачи данных современными модема- 114
ми составляет 33 600 или 56 000 бит/с и зависит от поддерживаемого модемом протокола передачи. Модем конструктивно может быть выполнен как отдельное устройство, подключаемое к компьютеру через один из его стандартных последовательных входов или как внутреннее устройство, размещаемое внутри системного блока компьютера. Развивающиеся цифровые технологии передачи данных, требующие значительно больших скоростей передачи и качества связи, требуют использования цифровых модемов. Цифровые модемы не являются действительно модуляторами-демодуляторами сигналов, так как и на входе, и на выходе имеют импульсный сигнал. Они выпускаются разных модификаций для конкретных цифровых сетей и скорость передатчика составляет от 300 Кбит/с до 2—5 Мбит/с. Выпускаются также сотовые модемы для работы в системе сотовой связи и радиомодемы, которые осуществляют прием и передачу в пределах прямой видимости пары модемов и работают на ультракоротких волнах. Современная телекоммуникационная технология ADSL (Asymmetric digital subscriber lines — «Асимметричная цифровая абонентская линия»), позволяющая передавать данные с высокой скоростью по обычным телефонным линиям, имеет различие скоростей обмена данными в направлениях к абоненту и обратно. Асимметричный тип данной технологии делает ее идеальной для современных приложений, где объем передаваемых данных к абоненту в подавляющем большинстве случаев намного превышает объем данных, идущих от абонента в сторону сети. С помощью технологии ADSL можно вести передачу данных на скорости до 8 Мбит/с в направлении к абоненту и до 1 Мбит/с в обратном направлении. Ее использование не требует прокладки дополнительного кабеля, так как для доступа в сеть используется имеющаяся телефонная линия, причем телефон свободен во время соединения с сетью. Сетевая карта. Если компьютеры объединяются в сеть, для которой прокладывается специальный кабель, то используются специальные платы расширения, вставляемые в слот расширения системной платы. Такие платы называются сетевыми адаптерами или сетевыми картами. Скорость передачи данных по сети через сетевые карты в зависимости от типа применяемой технологии составляет 10 Мбит/С, 100 Мбит/С, 1 Гбит/С и 10 Гбит/С. Сетевая карта имеет свой уникальный адрес, который однозначно определяет адрес локального компьютера в сети. Она преобразу- 115
ет данные, поступающие к ней от компьютера, в специальные пакеты — кадры, пересылает их адресату, т.е. другой сетевой карте, и отвечает за надежную доставку указанному адресату по сети. Так как функции, которые выполняет сетевая карта, достаточно сложны, в ее состав включен специализированный процессор, обеспечивающий высокоскоростную аппаратную поддержку выполнения этих функций. При выборе сетевой карты основным параметром является тип сети, в состав которой будет включен локальный компьютер. Известные стандартные типы локальных сетей, такие как FDDI (Fiber Distributed Data Interface —распределенный волоконный интерфейс данных), Ethernet (эзернет, от лат. aether — эфир) и др., несовместимы между собой, и каждая сетевая карта поддерживает только определенный вид локальной сети. 2.8. Перспективы развития технических средств обработки информации При разработке и создании компьютеров и сопутствующей техники существенный и устойчивый приоритет в последние годы имеют сверхмощные суперкомпьютеры и миниатюрные и сверхминиатюрные компьютеры. Ведутся поисковые работы по созданию компьютеров шестого поколения, базирующихся на распределенной «нейронной» архитектуре, — нейрокомпьютеров. Ближайшие прогнозы по созданию новых функциональных устройств обещают создание микропроцессоров с быстродействием 100 млн операций в секунду; встроенные сетевые и видеоинтерфейсы, плоские крупноформатные дисплеи с разрешающей способностью 1200x1000 пикселей и более; портативные, размером со спичечный коробок, магнитные диски емкостью более 100 Гбайт. В сетевых технологиях предполагается повсеместное внедрение мультиканальных широкополосных радио-, волоконно-оптических и оптических каналов обмена информации в сети компьютеров, которые обеспечат практически неограниченную пропускную способность. Предполагается широкое внедрение средств мультимедиа и, в первую очередь аудио- и видеосредств ввода и вывода информации и возможности общения с компьютером на естественном языке. 116
3. Системное программное обеспечение Между отдельными программами математического или программного обеспечения (ПО) компьютерной системы, как и между ее узлами и блоками, существует тесная взаимосвязь. Такая взаимосвязь обеспечивается распределением ПО между несколькими взаимодействующими уровнями. Каждый вышележащий уровень, опираясь на программное обеспечение нижележащих уровней, повышает функциональность всей системы. Взаимосвязь между уровнями и программами системного ПО можно представить с помощью схемы (рис. 3.1). Эта схема составлена по аналогии со структурной схемой программного обеспечения всей компьютерной системы, рассмотренной в главе 1. СИСТЕМНОЕ ПО Операционные системы Файловые системы Базовое ПО Драйверы устройств Служебные программы Утилиты Антивирусные средства Рис. 3.1. Уровни и программы системного программного обеспечения Базовое ПО в архитектуре компьютера занимает особое положение. С одной стороны, его можно рассматривать как составную часть аппаратных средств, с другой стороны, оно является одним из программных модулей операционной системы. Основу системного ПО составляют программы, входящие в операционные системы (ОС) компьютеров. Задача таких программ — управление работой всех устройств компьютерной системы и организация взаимодействия отдельных процессов, протекающих в 117
компьютере во время выполнения программ. Сюда относятся и программы, обеспечивающие отображение информации на дисплее в удобном для пользователя виде, диалоговые программы для общения на ограниченном естественном языке, а также системы трансляции, переводящие на машинный язык программы, написанные на языках программирования. Другой комплекс программ — служебные. Это различные сервисные программы, используемые при работе или техническом обслуживании компьютера, — редакторы, отладчики, диагностические программы, архиваторы, программы для борьбы с вирусами и другие вспомогательные программы. Данные программы облегчают пользователю взаимодействие с компьютером. К ним примыкают программы, обеспечивающие работу компьютеров в сети. Они реализуют сетевые протоколы обмена информацией между машинами, работу с распределенными базами данных, телеобработку информации. Вся совокупность программ, образующих ту программную среду, в которой работает компьютер и называется системным программным обеспечением. И чем богаче системное ПО, тем продуктивнее становится работа на компьютере. Однако в программную среду, наряду с полезными, могут входить и программы, нарушающие ее работу. Это различные программы для несанкционированного доступа к данным и программам, компьютерные вирусы и другие программные средства, с помощью которых «взламывается» защита программной среды. Рассмотрим более подробно программы, входящие в системное программное обеспечение компьютера. 3.1. Базовое программное обеспечение Базовое ПО, или BIOS, представляет программа, которая отвечает за управление всеми компонентами, установленными на материнской плате. Фактически BIOS является неотъемлемой составляющей системной платы и поэтому может быть отнесена к особой категории компьютерных компонентов, занимающих промежуточное положение между аппаратурой и программным обеспечением. Аббревиатура BIOS расшифровывается как Basic Input/Output System — базовая система ввода/вывода. Раньше в системе IBM PC 118
основным назначением BIOS была поддержка функций ввода-вывода за счет предоставления ОС интерфейса для взаимодействия с аппаратурой. В последнее время ее назначение и функции значительно расширились. Второй важной функцией BIOS является процедура тестирования (POST — Power On Self Test) всего установленного на материнской плате оборудования (за исключением дополнительных плат расширения), проводимая после каждого включения компьютера. В процедуру тестирования входят: • проверка работоспособности системы управления электропитанием; • инициализация системных ресурсов и регистров микросхем; • тестирование оперативной памяти; • подключение клавиатуры; • тестирование портов; • инициализация контроллеров, определение и подключение жестких дисков. В процессе инициализации и тестирования оборудования BIOS сравнивает данные системной конфигурации с информацией, хранящейся в CMOS — специальной энергозависимой памяти, расположенной на системной плате. Хранение данных в CMOS поддерживается специальной батарейкой, а информация обновляется всякий раз при изменении каких-либо настроек BIOS. Именно эта память хранит последние сведения о системных компонентах, текущую дату и время, а также пароль на вход в BIOS или загрузку операционной системы (если он установлен). При выходе из строя, повреждении или удалении батарейки все данные в CMOS-памяти обнуляются. Третьей важной функцией, которую BIOS выполняет со времен IBM PC, является загрузка ОС. Современные BIOS позволяют загружать операционную систему не только с гибкого или жесткого диска, но и с приводов CD-ROM, ZIP, LS-120, SCSI-контроллеров. Определив тип устройства загрузки, BIOS приступает к поиску программы — загрузчика ОС на носителе или переадресует запрос на загрузку на BIOS другого устройства. Когда ответ получен, программа загрузки помещается в оперативную память, откуда и происходит загрузка системной конфигурации и драйверов устройств операционной системы. 119
С появлением процессоров Pentium BIOS стала выполнять еще одну функцию — управление потребляемой мощностью, а с появлением материнских плат форм-фактора (стандартизированный размер) ATX (Advanced Technology extended — расширенная продвинутая технология) — и функцию включения и выключения источника питания в соответствии со спецификацией ACPI (Advanced Configuration and Power Interface — продвинутый интерфейс конфигурирования и управления потребляемой мощностью). Существует также спецификация АРМ (Advanced Power Management — продвинутое управление потребляемой мощностью). Отличие их состоит в том, что ACPI выполняется в основном средствами ОС, а АРМ — средствами BIOS. Фирм, занимающихся разработкой программного обеспечения для BIOS, очень мало. Из наиболее известных можно выделить три: Award Software (Award BIOS), American Megatrends, Inc. (AMI BIOS) и Microid Research (MR BIOS). Но на подавляющем большинстве компьютеров сегодня применяются различные версии BIOS компании Award Software. Пользовательский интерфейс разных версий и разных производителей BIOS может сильно отличаться, но системные вызовы строго стандартизированы. Физически BIOS находится в энергонезависимой перепрограммируемой флэш-памяти, которая вставляется в специальную колодку на материнской плате (на этой микросхеме есть яркая голографичес- кая наклейка с логотипом фирмы — разработчика ПО для BIOS). 3.2. Onepaциoнныe системы 3.2.1. Назначение олераиионной системы Место операционной системы в структуре аппаратно-программных средств (АПС) компьютера показано на рис. 3.2. Нижний уровень структуры составляют интегральные микросхемы, источники питания, дисководы и другие физические устройства. 120
Прикладные программы Интерпретаторы команд Компиляторы Редакторы Операционная система Система команд Функциональные средства Аппаратные средства Рис. 3.2. Структура аппаратно-программных средств компьютера Выше расположен уровень, на котором физические устройства рассматриваются с точки зрения функционально-логических связей. На этом уровне находятся внутренние регистры центрального процессора (ЦП) и арифметыческо-логическое устройство (АЛУ). Операции над данными выполняются в соответствии с тактовой частотой ЦП. В некоторых машинах эти операции осуществляются под управлением специальных средств, называемых микропрограммами, В других — с помощью аппаратуры. Некоторые операции выполняются за один такт работы ЦП, другие требуют нескольких тактов. Все операции составляют систему команд машины, а все данные имеют абсолютные значения адресоб, по которым они хранятся в памяти. Система команд компьютера образует машинный язык. Машинный язык содержит от 50 до 300 команд, по которым осуществляются преобразование, модификация и перемещения данных между устройствами. Управление устройствами на этом уровне осуществляется с помощью загрузки определенных данных в специальные регистры устройств. Например, при программировании ввода/вывода диску можно дать команду чтения, записав в его регистры адрес места на диске, адрес в основной памяти, число байтов для чтения и направление действия (чтение или запись). В действительности диску следует передавать большее количество параметров, а структура операции, возвращаемой диском, достаточно сложна. При этом очень важную роль играют временные соотношения. 121
Операционная система предназначена для того, чтобы скрыть от пользователя все эти сложности. Этот уровень АПС (рис. 3.2) является программным обеспечением, управляющим всеми электронными компонентами компьютера, распределяющим его ресурсы, организующим вычислительный процесс и предоставляющим пользователю удобный интерфейс, избавляющий его от необходимости непосредственного общения с аппаратурой. Действие чтения файла в этом случае становится намного более простым, чем когда нужно заботиться о перемещении головок диска, ждать, пока они установятся на нужное место, и т. д. Над ОС в структуре аппаратно-программных средств компьютера расположены остальные системные программы. Здесь находятся интерпретатор команд, системы окон, компиляторы и редакторы кода. Компиляторы — это ПО, переводящее программу с языка программирования высокого уровня на машинный язык. После этого программа записывается в ОЗУ и затем выполняется. Интерпретаторы — это ПО, переводящее операторы программы на машинный язык по очереди и немедленно выполняющее их. Очень важно понимать, что такие программы не являются частью ОС. Под операционной системой обычно понимается то программное обеспечение, которое запускается в режиме ядра и защищается от вмешательства пользователя с помощью аппаратных средств. А компиляторы и редакторы запускаются в пользователь-ском режиме. Если пользователю не нравится какой-либо компилятор, он может выбрать другой или написать свой собственный, но он не может написать свой собственный обработчик прерываний, являющийся частью операционной системы и защищенный аппаратно от попыток его модифицировать. Во многих ОС есть программы, которые работают в пользовательском режиме. Они помогают операционной системе выполнять специализированные функции. Например, программы, позволяющие пользователям изменять свои пароли. Эти программы не являются частью ОС и запускаются не в режиме ядра, но выполняемые ими функции влияют на работу системы. Такие программы также защищаются от воздействия пользователя. И, наконец, над системными программами (рис. 3.2) расположены прикладные программы. Обычно они покупаются или пишутся пользователем для решения собственных задач — обработки текста, 122
работы с графикой, технических расчетов или создания системы управления базой данных. Операционные системы выполняют две основные функции — расширение возможностей машины и управление ее ресурсами. Как уже упоминалось, архитектура (система команд, организация памяти, ввод/вывод данных и структура шин) компьютера на уровне машинного языка неудобна для работы с программами, особенно при вводе/выводе данных. Так, процедура ввода/вывода данных с гибкого диска выполняется через микросхемы контроллера. Контроллер имеет 16 команд. Каждая задается передачей от 1 до 9 байт в регистр устройства. Это команды чтения и записи данных, перемещения головки диска, форматирования дорожек, инициализации, распознавания, установки в исходное положение и калибровки контроллера и приводов. Основные команды read и write (чтение и запись). Каждая из них требует 13 параметров, которые определяют адрес блока на диске, количество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Программист при работе с гибким диском должен также постоянно знать, включен двигатель или нет. Если двигатель выключен, его следует включить прежде, чем данные будут прочитаны или записаны. Двигатель не может оставаться включенным слишком долго, так как гибкий диск изнашивается. Поэтому программист вынужден выбирать между длинными задержками во время загрузки и изнашивающимися гибкими дисками. Отсюда ясно, что обыкновенный пользователь не захочет сталкиваться с такими трудностями во время работы с дискетой или жестким диском, процедуры управления которым еще сложнее. Ему нужны простые высокоуровневые операции. В случае работы с дисками типичной операцией является выбор файла из списка файлов, содержащихся на диске. Каждый файл может быть открыт для чтения или записи, прочитан или записан, а потом закрыт. А детали этих операций должны быть скрыты от пользователя. Программа, скрывающая истину об аппаратном обеспечении и представляющая простой список файлов, которые можно читать и записывать, называется операционной системой. Операционная система не только устраняет необходимость работы непосредственно с дисками и предоставляет простой, ориентированный на работу с файлами интерфейс, но и скрывает множество неприятной работы 123
с прерываниями, счетчиками времени, организацией памяти и другими низкоуровневыми элементами. В каждом случае процедура, предлагаемая ОС, намного проще и удобнее в обращении, чем те действия, которые требует выполнить основное оборудование. С точки зрения пользователя ОС выполняет функцию виртуальной машины, с которой проще и легче работать, чем непосредственно с аппаратным обеспечением, составляющим реальный компьютер. А для программ ОС предоставляет ряд возможностей, которые они могут использовать с помощью специальных команд, называемых системными вызовами. Концепция, рассматривающая ОС прежде всего как удобный интерфейс пользователя, — это взгляд сверху вниз. Альтернативный взгляд снизу вверх дает представление об ОС как о механизме управления всеми частями компьютера. Современные компьютеры состоят из процессоров, памяти, дисков, сетевого оборудования, принтеров и огромного количества других устройств. В соответствии со вторым подходом работа ОС заключается в обеспечении организованного и контролируемого распределения процессоров, памяти и устройств ввода/вывода между различными программами, состязающимися за право их использовать. 3.2.2. Виды операционных систем История развития ОС насчитывает уже много лет. Операционные системы появились и развивались в процессе совершенствования аппаратного обеспечения компьютеров, поэтому эти события исторически тесно связаны. Развитие компьютеров привело к появлению огромного количества различных ОС, из которых далеко не все широко известны. На самом верхнем уровне находятся ОС для мэйнфреймов. Эти огромные машины еще можно встретить в больших организациях. Мэйнфреймы отличаются от персональных компьютеров по своим возможностям ввода/вывода. Довольно часто встречаются мэйнфреймы с тысячью дисков и терабайтами данных. Мэйнфреймы выступают в виде мощных web-серверов и серверов крупных предприятий и корпораций. Операционные системы для мэйнфреймов в основном ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество опе- 124
раций ввода-вывода. Обычно они выполняют три вида операций: пакетную обработку, обработку транзакций (групповые операции) и разделение времени. При пакетной обработке выполняются стандартные задания пользователей, работающих в интерактивном режиме. Системы обработки транзакций управляют очень большим количеством запросов, например бронирование авиабилетов. Каждый отдельный запрос невелик, но система должна отвечать на сотни и тысячи запросов в секунду. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей одновременно выполнять свои задания на одной машине, например, работать с большой базой данных. Все эти функции тесно связаны между собой, и операционная система мэйнфрейма выполняет их все. Примером операционной системы для мэйнфрейма является OS/390. Уровнем ниже находятся серверные ОС. Серверы представляют собой или многопроцессорные компьютеры, или даже мэйнфреймы. Эти ОС одновременно обслуживают множество пользователей и позволяют им делить между собой программно-аппаратные ресурсы. Серверы также предоставляют возможность работы с печатающими устройствами, файлами или Internet. У Internet-провайдеров обычно работают несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входящие запросы. UNIX и Windows 2000 являются типичными серверными ОС. Теперь для этой цели стала использоваться и операционная система Linux. Следующую категорию составляют ОС для персональных компьютеров. Их работа заключается в предоставлении удобного интерфейса для одного пользователя. Такие системы широко используются в повседневной работе. Основными ОС в этой категории являются операционные системы платформы Windows, Linux и операционная система компьютера Macintosh. Еще один вид ОС — это системы реального времени. Главным параметром таких систем является время. Например, в системах управления производством компьютеры, работающие в режиме реального времени, собирают данные о промышленном процессе и используют их для управления оборудованием. Такие процессы должны удовлетворять жестким временным требованиям. Если, например, по конвейеру передвигается автомобиль, то каждое действие должно 125
быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано или слишком поздно, то нанесет непоправимый вред изделию. Системы VxWorks и QNX являются операционными системами реального времени. Встроенные операционные системы используются в карманных компьютерах и бытовой технике. Карманный компьютер — это маленький компьютер, помещающийся в кармане и выполняющий небольшой набор функций, например, телефонной книжки и блокнота. Встроенные системы, управляющие работой устройств бытовой техники, не считаются компьютерами, но обладают теми же характеристиками, что и системы реального времени, и при этом имеют особые размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows CE (Consumer Electronics — бытовая техника). Самые маленькие операционные системы работают на смарт- картах, представляющих собой устройство размером с кредитную карту и содержащих центральный процессор. На такие операционные системы накладываются очень жесткие ограничения по мощности процессора и памяти. Некоторые из них могут управлять только одной операцией, например электронным платежом, но другие ОС выполняют более сложные функции. 3.2.3. Бозовые понятия операционных систем Для операционных систем существует набор базовых понятий, таких как процессы, память и файлы, которые являются самыми важными для понимания общей идеи построения и функционирования ОС. Ключевое понятие ОС — процесс. Процессом называют программу в момент ее выполнения. С каждым процессом связывается его адресное пространство — список адресов в памяти от некоторого минимума до некоторого максимума. По этим адресам процесс может занести информацию и прочесть ее. Адресное пространство содержит саму программу, данные к ней и ее стек. Со всяким процессом связывается некий набор регистров, включая счетчик команд, указатель стека и другие аппаратные ресурсы, а также вся информация, необходимая для запуска программы. Чтобы лучше разобраться в понятии процесса, проведем аналогию с системой, работающей в 126
режиме разделения времени. Предположим, ОС решает остановить работу одного процесса и запустить другой, потому что первый израсходовал отведенную для него часть рабочего времени ЦП. Позже остановленный процесс должен быть запущен снова из того же состояния, в каком его остановили. Следовательно, всю информацию о процессе нужно где-либо сохранить. Так, процесс может иметь несколько одновременно открытых для чтения файлов. Связанный с каждым файлом указатель дает текущую позицию, т.е. номер байта или записи, которые будут прочитаны после повторного запуска процесса. При временном прекращении действия процесса все указатели нужно сохранить так, чтобы команда чтения, выполненная после возобновления процесса, прочла правильные данные. Во многих ОС вся информация о каждом процессе хранится в таблице операционной системы. Эта таблица называется таблицей процессов и представляет собой связанный список структур, по одной на каждый существующий в данный момент процесс. В каждом компьютере есть оперативная память, используемая для хранения исполняемых программ. В простых ОС в конкретный момент времени в памяти может находиться только одна программа. Более сложные системы позволяют одновременно хранить в памяти несколько программ. Для того чтобы они не мешали друг другу, необходим защитный механизм. Этот механизм управляется операционной системой. Другой важный, связанный с памятью вопрос — управление адресным пространством процессов. Обычно под каждый процесс отводится некоторое множество адресов, которые он может использовать. В простейшем случае, когда максимальная величина адресного пространства для процесса меньше оперативной памяти, процесс заполняет свое адресное пространство, и памяти хватает на то, чтобы содержать его целиком. Однако, что произойдет, если адресное пространство процесса окажется больше, чем ОЗУ компьютера, а процесс захочет использовать его целиком? В этом случае используется метод, называемый виртуальной памятью, при котором ОС хранит часть адресов в оперативной памяти, а часть на диске и меняет их местами при необходимости. Управление памятью — важная функция операционной системы. Файловая система — еще одно базовое понятие, поддерживаемое виртуально всеми ОС. Как было установлено, основной функцией 127
операционной системы является маскирование особенностей работы дисков и других устройств и предоставление пользователю понятной и удобной абстрактной модели независимых от устройств файлов. Системные вызовы необходимы для создания, удаления, чтения или записи файлов. Перед тем как прочитать файл, его нужно разместить на диске и открыть, а после прочтения его нужно закрыть. Все эти функции осуществляют системные вызовы. При создании места для хранения файлов ОС использует понятие каталога как способ объединения файлов в группы. Например, студент может иметь по одному каталогу для каждого изучаемого им курса, каталог для электронной почты и каталог для своей домашней web-страницы. Для создания и удаления каталога также необходимы системные вызовы. Они же обеспечивают перемещение существующего файла в каталог и удаление файла из каталога. Содержимое каталога могут составлять файлы или другие каталоги. Эта модель создает структуру — файловую систему. Иерархии процессов и файлов организованы в виде деревьев (рис. 3.3). Иерархия процессов обычно не очень глубока, в ней редко бывает больше трех уровней, тогда как файловая структура достаточно часто имеет четыре, пять и даже больше уровней в глубину. Рис. 3.3. Дерево каталогов 128
Иерархия процессов обычно живет, как правило, несколько минут, иерархия каталогов может существовать годами. Каждый файл в иерархии каталогов можно определить, задав его имя пути, называемое также полным именем файла. Путь начинается из вершины структуры каталогов, называемой корневым каталогом. Такое абсолютное имя пути состоит из списка каталогов, которые нужно пройти от корневого каталога к файлу, с разделением отдельных компонентов. Отдельные компоненты в ОС UNIX разделяются косой чертой /, а в MS-DOS и Windows — обратной косой чертой \. 3.2.4. Процессы и потоки Основным понятием, связанным с операционными системами, является процесс — абстрактное понятие, описывающее работу программы. Все остальное базируется на этом понятии, поэтому очень важно, чтобы студенты получили полное представление о концепции процесса. Процессы Все современные компьютеры могут выполнять одновременно несколько операций. Так, одновременно с запущенной пользователем программой может выполняться чтение с диска и вывод текста на экран монитора или на принтер. В многозадачной системе процессор переключается между программами, предоставляя каждой от десятков до сотен миллисекунд. При этом в каждый конкретный момент времени процессор занят только одной программой, но за секунду он успевает поработать с несколькими программами, создавая у пользователей иллюзию параллельной работы со всеми программами. Иногда в этом случае говорят о псевдопараллелизме, в отличие от настоящего параллелизма в многопроцессорных системах, содержащих несколько процессоров, разделяющих общую память между собой. Производители операционных систем разработали концептуальную модель последовательных процессов, упрощающую наблюдение за работой параллельно идущих процессов. Рассмотрим содержание и применение этой модели. 5. Информатика 129
В модели процесса все функционирующее на компьютере ПО организовано в виде набора последовательных процессов, или просто процессов. Процессом является выполняемая программа вместе с текущими значениями счетчика команд, регистров и переменных. С позиций этой абстрактной модели у каждого процесса есть собственный центральный виртуальный процессор. На самом деле центральный процессор переключается с процесса на процесс, но для лучшего понимания системы проще рассматривать набор процессов, идущих параллельно, чем представлять процессор, переключающийся от программы к программе. Это переключение и называется многозадачностью или мультипрограммированием. Операционной системе нужен способ создания и прерывания процессов по мере необходимости. Обычно при загрузке ОС создаются несколько процессов. Некоторые из них обеспечивают взаимодействие с пользователем и выполняют заданную работу. Остальные процессы являются фоновыми. Они не связаны с конкретными пользователями, но выполняют особые функции. Например, один фоновый процесс может обеспечивать вывод на печать, другой может обрабатывать запросы к web-страницам. Процессы могут создаваться не только в момент загрузки системы. Так, текущий процесс может создать один или несколько новых процессов, при этом текущий процесс выполняет системный запрос на создание нового процесса. Создание новых процессов особенно полезно в тех случаях, когда выполняемую задачу проще всего сформировать как набор связанных, но независимо взаимодействующих процессов. Если необходимо организовать выборку большого количества данных из сети для дальнейшей обработки, удобно создать один процесс для выборки данных и размещения их в буфере, другой — для считывания и обработки данных из буфера. Такая схема даже ускорит обработку данных, если каждый процесс запустить на отдельном процессоре в случае многопроцессорной системы. Как правило, процессы завершаются по мере выполнения своей работы. Так, после окончания компиляции программы компилятор выполняет системный запрос, чтобы сообщить ОС об окончании работы. В текстовых редакторах, браузерах и других программах такого типа есть кнопка или пункт меню, с помощью которых можно завершить процесс. Процесс является независимым объектом со своим счетчиком 130
команд и внутренним состоянием, однако существует необходимость взаимодействия с другими процессами. Например, выходные данные одного процесса могут служить входными данными для другого процесса. Модель процессов упрощает представление о внутреннем поведении системы. Некоторые процессы запускают программы, выполняющие команды, введенные с клавиатуры пользователем. Другие процессы являются частью системы и обрабатывают такие задачи, как выполнение запросов файловой службы, управление запуском диска или магнитного накопителя. Рассмотренный подход описывается моделью, представленной на рис. 3.4. Нижний уровень ОС — это планировщик — небольшая программа. На верхних уровнях расположены процессы. Обработка прерываний и процедуры, связанные с остановкой и запуском процессов, выполняются планировщиком. Вся остальная часть ОС структурирована в виде набора процессов. Процессы 0 1 • • • п-2 Планировщик п-1 Рис. 3.4. Нижний уровень ОС, отвечающий за прерывание и планирование Реализация модели процессов базируется на таблице процессов с одним элементом для каждого процесса. Элемент таблицы содержит информацию о состоянии процесса, счетчике команд, распределении памяти, состоянии открытых файлов, об указателе стека, использовании и распределении ресурсов, а также всю остальную информацию, которую необходимо сохранять при переключении в состояние готовности или блокировки для последующего запуска процесса, как если бы он не останавливался. Потоки В обычных ОС процесс определяется соответствующим адресным пространством и одиночным управляющим потоком. Но часто встречаются ситуации, когда в одном адресном пространстве предпочти- 131
тельно иметь несколько квазипараллельных управляющих процессов. Модель процесса базируется на двух независимых концепциях: группировании ресурсов и выполнении программы. Когда их разделяют, появляется понятие потока. С одной стороны, процесс можно рассматривать как способ объединения родственных ресурсов в одну группу У процесса есть адресное пространство, содержащее программу, данные и другие ресурсы. Ресурсами являются открытые файлы, дочерние процессы, аварийные необработанные сообщения, обработчики сигналов, учетная информация и многое другое. Гораздо проще управлять ресурсами, объединив их в форме процесса. С другой стороны, процесс можно рассматривать как поток исполняемых команд. У потока есть счетчик команд, отслеживающий порядок выполнения действий. У него есть регистры, в которых хранятся текущие переменные. У него есть стек, содержащий протокол выполнения процесса, где на каждую вызванную процедуру отведена отдельная структура. Хотя поток протекает внутри процесса, следует различать концепции потока и процесса. Процессы используются для группирования ресурсов, а потоки являются объектами, поочередно исполняющимися на ЦП. Концепция потоков добавляет к модели процесса возможность одновременного выполнения в одной и той же среде процесса нескольких достаточно независимых программ. Несколько потоков, работающих параллельно в одном процессе, аналогичны нескольким процессам, идущим параллельно на одном компьютере. В первом случае потоки разделяют адресное пространство, открытые файлы и другие ресурсы. Во втором — процессы совместно пользуются физической памятью, дисками, принтерами и другими ресурсами. Потоки обладают некоторыми свойствами процессов, поэтому их иногда называют упрощенными процессами. Термин многопотонность также используется для описания использования нескольких потоков в одном процессе. При запуске многопоточного процесса в системе с одним процессором потоки работают поочередно. Процессор быстро переключается между потоками, создавая впечатление параллельной работы потоков, даже не на очень быстром процессоре. Например, в случае трех потоков в одном процессе все потоки будут работать параллельно. Каждому потоку будет соответствовать виртуальный процессор с 132
быстродействием, равным одной трети быстродействия реального процессора. Почему же потоки так необходимы? Основной причиной является выполнение большинством приложений большого количества действий, некоторые из них могут время от времени блокироваться. Схему программы можно существенно упростить, если разбить приложение на несколько последовательных потоков, запущенных в квазипараллельном режиме. При использовании потоков имеется также возможность совместного применения параллельными объектами одного адресного пространства и всех содержащихся в нем данных. Для некоторых приложений эта возможность является существенной. В таких случаях схема параллельных процессов с разными адресными пространствами не подходит. В пользу потоков работает еще один аргумент — легкость их создания и уничтожения, так как с потоком не связаны никакие ресурсы. В большинстве систем на создание потока уходит примерно в 100 раз меньше времени, чем на создание процесса. Это свойство особенно полезно при необходимости динамического и быстрого изменения числа потоков. Третьим аргументом является производительность. Концепция потоков не дает увеличения производительности, если они ограничены возможностями процессора. Но когда имеется одновременная потребность в выполнении большого объема вычислений и операций ввода-вывода, наличие потоков позволяет совмещать эти процедуры во времени, увеличивая, тем самым, общую скорость работы приложения. Концепция потоков полезна также в системах с несколькими процессорами, где возможен настоящий параллелизм. Необходимость потоков проще продемонстрировать на конкретном примере. Рассмотрим текстовый процессор, который выводит на экран монитора текст в том виде, в котором он будет напечатан. Допустим, что пользователь пишет книгу. С точки зрения автора проще хранить книгу в одном файле, чтобы легче было искать отдельные фрагменты, редактировать и т.п. Представим, что пользователь удалил предложение на первой странице, а затем исправил предложение на 350-й странице документа, в котором 400 страниц. Он дает команду программе перейти на 133
страницу с номером 350. Текстовому процессору придется переформатировать весь документ вплоть до 350-й страницы, поскольку он не знает, где начинается эта страница. Это может занять довольно много времени и вряд ли обрадует пользователя. В данном случае помогут потоки. Пусть текстовый процессор написан в виде двухпоточной программы. Один поток взаимодействует с пользователем, а второй переформатирует документ в фоновом режиме. Как только предложение на первой странице было удалено, интерактивный поток дает команду фоновому потоку переформатировать весь документ. В то время как первый поток продолжает выполнять команды с клавиатуры или мыши, второй поток быстро переформатирует документ. Может случиться, что форматирование будет закончено раньше, чем пользователь захочет перейти к 350-й странице, и тогда команда будет выполнена мгновенно. Можно добавить третий поток. Большинство текстовых процессоров автоматически сохраняет редактируемый текст один раз в несколько минут (время устанавливается пользователем), чтобы в случае аварийного завершения программы, отказа системы или перебоев с питанием пользователь не лишился результатов своей работы. Этим может заниматься третий поток, не отвлекая два оставшихся. 3.2.5. Управление памятью Память представляет собой важный ресурс, требующий тщательного управления, поскольку программы увеличиваются в размерах быстрее, чем память. Память в компьютере имеет иерархическую структуру. Небольшая ее часть представляет собой очень быструю энергозависимую (теряющую информацию при выключении питания) кэш-память. Компьютеры обладают также десятками мегабайт энергозависимой оперативной памяти ОЗУ (RAM, Random Access Memory — память с произвольным доступом) и десятками или сотнями гигабайт медленного энергонезависимого пространства на жестком диске. Одной из задач ОС является координация использования всех этих составляющих памяти. Часть операционной системы, отвечающая за управление памятью, называется модулем управления памятью или менеджером памяти. Менеджер следит за тем, какая часть памяти используется в данный 134
момент, выделяет память процессам и по их завершении освобождает ресурсы, управляет обменом данных между ОЗУ и диском. Системы управления памятью делят на два класса. К первому классу относятся системы, перемещающие процессы между оперативной памятью и диском во время их выполнения, т.е. осуществляющие подкачку процессов целиком (swapping) или постранично (paging). Обычный и постраничный варианты подкачки являются искусственными процессами, вызванными отсутствием достаточного количества оперативной памяти для одновременного хранения всех программ. Ко второму — те, которые этого не делают. Второй класс систем проще. Поскольку ПО растет еще быстрее, чем память, то, вероятно, потребность в эффективном управлении памятью будет существовать всегда. В 80-е гг. использовали системы разделения времени для работы десятков пользователей на машинах VAX с объемом памяти 4 Мбайт. Сейчас рекомендуется для индивидуальной работы в системе Windows 2000 устанавливать на компьютер не менее 64 Мбайт оперативной памяти. Дальнейшее развитие в сторону мультимедийных систем накладывает еще большие требования на размер оперативной памяти. Самая простая схема управления памятью — однозадачная система без подкачки на диск — заключается в том, что в каждый момент времени работает только одна программа, и память разделяется между программами и операционной системой. Когда система организована таким образом, в каждый конкретный момент времени может работать только один процесс. Как только пользователь набирает команду, ОС копирует запрашиваемую программу с диска в память и выполняет ее, а после окончания процесса выводит на экран символ приглашения и ждет новой команды. Получив команду, она загружает новую программу в память, записывая ее поверх предыдущей. Так работают компьютеры с операционной системой MS-DOS. Большинство современных систем позволяет одновременный запуск нескольких процессов. Наличие нескольких процессов, работающих в один и тот же момент времени, означает, что когда один процесс приостановлен в ожидании завершения операции ввода-вывода, другой может использовать центральный процессор. Таким образом, многозадачность увеличивает загрузку процессора. На сетевых серверах всегда одновременно работают несколько процессов (для разных клиентов), но и большинство клиентских машин в наши дни 135
также имеют эту возможность. Самый простой способ достижения многозадачности состоит в разбиении памяти на я, возможно, не равных, разделов. Когда задание поступает в память, оно располагается во входной очереди к наименьшему разделу, достаточно большому для того, чтобы вместить это задание. Так как размер разделов неизменен, то все неиспользуемое работающим процессом пространство в разделе пропадает. Недостаток этого способа заключается в том, что к большому разделу очереди почти не бывает, а к маленьким разделам выстраивается довольно много задач. Небольшие задания должны ждать своей очереди, чтобы попасть в память, несмотря на то, что свободна основная часть памяти. Усовершенствованный способ заключается в организации одной общей очереди для всех разделов. Как только раздел освобождается, задачу, находящуюся ближе к началу очереди и подходящую для выполнения в этом разделе, можно загрузить в него и начать ее обработку. С другой стороны, нежелательно тратить большие разделы на маленькие задачи, поэтому существует другая стратегия. Она заключается в том, что каждый раз после освобождения раздела происходит поиск в очереди наибольшего для этого раздела задания, и именно оно выбирается для обработки. Однако этот алгоритм отстраняет от обработки небольшие задачи, хотя необходимо предоставить для мелких задач лучшее обслуживание. Выходом из положения служит создание хотя бы одного маленького раздела, который позволит выполнять мелкие задания без долгого ожидания освобождения больших разделов. Другой подход предусматривает следующий алгоритм: задачу, которая имеет право быть выбранной для обработки, можно пропустить не более к раз. Когда задача пропускается, к счетчику добавляется единица. Если значение счетчика стало равным к, игнорировать задачу больше нельзя. При использовании многозадачности повышается эффективность загрузки ЦП. Если средний процесс выполняет вычисления только 20 % от времени, которое он находится в памяти, то при обработке пяти процессов ЦП должен быть загружен полностью. Реальная же ситуация предполагает, что все пять процессов никогда не ожидают завершения операции ввода-вывода одновременно. Организация памяти в виде фиксированных разделов проста и эффективна для работы с пакетными системами. До тех пор, пока в памяти может храниться достаточное количество задач для обеспе- 136
чения постоянной занятости ЦП, причин для усложнения алгоритма нет. Однако совсем другая ситуация складывается с системами разделения времени или компьютерами, ориентированными на работу с графикой. Оперативной памяти иногда оказывается недостаточно для того, чтобы разместить все активные процессы, и тогда избыток процессов приходится хранить на диске, а для обработки переносить их в память. Существуют два основных способа управления памятью, зависящие частично от доступного аппаратного обеспечения. Самая простая стратегия, называемая свопингом (swapping) или подкачкой, состоит в том, что каждый процесс полностью переносится в память, работает некоторое время и затем целиком возвращается на диск. Другая стратегия, носящая название виртуальной памяти, позволяет программам работать даже тогда, когда они только частично находятся в оперативной памяти. Работа системы свопинга заключается в следующем. Пусть имеются 4 процесса — А, В, С, D. На начальной стадии в памяти находится только процесс А. Затем с течением времени создаются или загружаются с диска последовательно процессы В и С. В следующий момент процесс А выгружается на диск. Затем появляется процесс D, а процесс В завершается. Наконец, процесс А снова возвращается в память. Распределение памяти изменяется по мере того, как процессы поступают в память и покидают ее. Так как теперь процесс А имеет другое размещение в памяти, его адреса должны быть перенастроены или программно во время загрузки в память, или ап- паратно во время выполнения программы. Основная разница между фиксированными и изменяющимися разделами состоит в том, что во втором случае количество, размещение и размер разделов изменяются динамически по мере поступления и завершения процессов. Здесь нет ограничений, связанных с количеством разделов и их объемом. Это улучшает использование памяти, но значительно усложняет операции размещения процессов, освобождения памяти и отслеживание происходящих изменений. Основная идея виртуальной памяти заключается в том, что объединенный размер программы, данных и стека может превысить количество доступной физической памяти. ОС хранит части программы, использующиеся в настоящий момент в оперативной памяти, 137
остальные — на диске. Например, программа размером 16 Мбайт сможет работать на машине с 4 Мбайт памяти, если тщательно продумать, какие 4 Мбайт должны храниться в памяти в каждый момент времени. При этом части программы, находящиеся на диске и в памяти, будут меняться местами по мере необходимости. Виртуальная память может также работать в многозадачной системе при одновременно находящихся в памяти частях многих программ. Когда программа ждет перемещения в память очередной своей части, она находится в состоянии ввода-вывода и не может работать, поэтому ЦП может быть отдан другому процессу. 3.2.6. Ввод-вывод Одной из важнейших функций ОС является управление устройствами ввода-вывода компьютера. Операционная система дает этим устройствам команды, перехватывает прерывания и обрабатывает ошибки. Она должна обеспечить простой и удобный интерфейс между устройствами и остальной частью системы. Интерфейс должен быть одинаковым для всех устройств с целью достижения независимости от применяемой аппаратуры. Программное обеспечение ввода-вывода составляет существенную часть операционной системы. Устройства ввода-вывода можно разделить на две категории: блочные устройства и символьные устройства. Блочные устройства хранят информацию в виде блоков фиксированного размера, причем у каждого блока имеется свой адрес. Размеры блоков колеблются от 521 до 32 768 байт. Важное свойство блочного устройства состоит в том, что каждый его блок может быть прочитан независимо от остальных блоков. Наиболее распространенными блочными устройствами являются диски. Другой тип устройств ввода-вывода — символьные устройства. Символьное устройство принимает или предоставляет поток неструктурированных символов. Оно не является адресуемым и не выполняет операцию поиска. Принтеры, сетевые адаптеры, мыши и большинство других устройств, не похожих на диски, можно считать символьными устройствами. Такая классификация является условной. Некоторые устройства не попадают ни в одну из категорий. Например, часы не являются 138
блок-адресуемыми. Они не формируют и не принимают символьных потоков. Вся их работа заключается в инициировании прерываний в строго определенные моменты времени. И все же модель блочных и символьных устройств является настолько общей, что может служить основой для достижения независимости программного обеспечения ОС от устройств ввода-вывода. Например, файловая система имеет дело с абстрактными блочными устройствами, а зависимую от устройств часть оставляет программному обеспечению низкого уровня. Устройства ввода-вывода обычно состоят из механической и электронной частей. Механический компонент находится в самом устройстве. Электронный компонент устройства называется контроллером или адаптером. В современных компьютерах контроллеры встраиваются в материнскую плату или располагаются на самом устройстве ввода-вывода. Многие контроллеры способны управлять несколькими идентичными устройствами. Если интерфейс между контроллером и устройством является официальным стандартом ANSI, IEEE или ISO либо фактическим стандартом, то различные производители могут выпускать отдельно устройства и контроллеры, удовлетворяющие данному интерфейсу. Так производятся жесткие диски, соответствующие интерфейсу IDE (Integrated Drive Electronics — встроенный интерфейс накопителей) или SCSI (Small Computer System Interface — системный интерфейс малых компьютеров). Часто интерфейс между устройством и контроллером является интерфейсом низкого уровня. С диска в контроллер поступает последовательный поток битов, начинающийся с заголовка сектора (преамбулы), за которым следует 4096 бит в секторе, и контрольная сумма, называемая кодом исправления ошибок ЕСС (Error Correcting Code). Заголовок сектора записывается на диск во время форматирования. Он содержит номера цилиндра и сектора, размер сектора, коды синхронизации и другую служебную информацию. Работа контроллера заключается в конвертировании последовательного потока битов в блок байтов и коррекцию ошибок. Обычно байтовый блок накапливается в буфере контроллера. Затем проверяется контрольная сумма блока, и если она совпадает с указанной в заголовке сектора, то блок считается принятым без ошибок. После этого блок копируется в оперативную память. Контроллер монитора (видеоадаптер) работает на таком же низ- 139
ком уровне. Он считывает из памяти байты, содержащие символы, которые следует отобразить, и формирует сигналы, используемые для модуляции луча электронной трубки, заставляющие ее выводить изображение на экран. Видеоадаптер формирует сигналы, управляющие горизонтальным и вертикальным возвратом луча. Операционная система только инициализирует контроллер, задавая небольшое количество параметров, таких, как количество пикселов в строке и число строк на экране, а всю работу по управлению передвижениями луча по экрану выполняет контроллер. Ключевая концепция разработки ПО ввода-вывода формулируется как независимость от устройств. Эта концепция означает возможность написания программ, способных получать доступ к любому устройству ввода-вывода без предварительного указания конкретного устройства. Например, программа, читающая данные из входного файла, должна одинаково успешно работать с файлом на дискете, жестком диске или компакт-диске. При этом не должны требоваться какие-либо изменения в программе. В качестве выходного устройства также может быть указан экран, файл на любом диске или принтер. Все проблемы, связанные с отличиями этих устройств, снимает операционная система. Тесно связан с концепцией независимости от устройств принцип единообразного именования. Имя файла или устройства должно быть просто текстовой строкой или целым числом. Оно никак не должно зависеть от физического устройства. Другим важным аспектом ПО ввода-вывода является обработка ошибок. Ошибки должны обрабатываться как можно ближе к аппаратуре. Если контроллер обнаружил ошибку чтения, он должен по возможности исправить эту ошибку сам. Если он не может это сделать, то ошибку должен обработать драйвер устройства. Многие ошибки бывают временными, например ошибки чтения, вызванные пылинками на читающих головках. Такие ошибки исчезают при повторном чтении блока. Только если нижний уровень не может сам справиться с проблемой, о ней следует информировать верхний уровень. Во многих случаях восстановление может осуществляться на нижнем уровне, так, что верхние уровни даже не будут знать о наличии ошибок. Одним из ключевых вопросов является способ переноса дан- 140
ных — синхронный (блокирующий) или асинхронный (управляемый прерываниями). Большинство операций ввода-вывода на физическом уровне являются асинхронными — ЦП запускает перенос данных и переключается на другой процесс, пока не придет прерывание. Еще одним аспектом ПО ввода-вывода является буферизация. Часто данные, поступающие с устройства, не могут быть сохранены там, куда они направлены. Например, когда пакет приходит по сети, ОС не знает, куда его поместить, пока не будет проанализировано его содержимое. Буферизация предполагает копирование данных в больших количествах, что часто является основным фактором снижения производительности операций ввода-вывода. И последним понятием, которое связано с вводом-выводом, является понятие выделенных устройств и устройств коллективного использования. С некоторыми устройствами, такими как диски, может одновременно работать большое количество пользователей. При этом не должно возникать проблем при одновременном открытии на одном и том же диске нескольких файлов. Другие устройства, такие как накопители на магнитной ленте, предоставляются в монопольное пользование. Пока не завершит свою работу один пользователь накопитель не может быть предоставлен другому пользователю. ОС должна уметь управлять как устройствами общего доступа, так и выделенными устройствами. Существуют три различных способа осуществления операций ввода-вывода. Простейший вид ввода-вывода состоит в том, что всю работу выполняет центральный процессор. Этот метод называется программным вводом-выводом. ЦП вводит или выводит каждый байт или слово, находясь в цикле ожидания готовности устройства ввода-вывода. Второй способ представляет собой управляемый прерываниями ввод-вывод, при котором ЦП начинает передачу ввода-вывода для символа или слова, после чего переключается на другой процесс, пока прерывание от устройства не сообщит ему об окончании операции ввода-вывода. Третий способ заключается в использовании прямого доступа к памяти (DMA — Direct Memory Access), при котором отдельная микросхема управляет переносом целого блока данных и инициирует прерывание только после окончания операции переноса блока. 141
3.2.7. Драйверы устройств У контроллера каждого устройства есть набор регистров, используемых для того, чтобы давать управляемому устройству команды и считывать состояние устройства. Число таких регистров и выдаваемые команды зависят от конкретного устройства. Например, программа управления мышью должна получать от мыши информацию о том, насколько далеко она продвинулась по горизонтали и вертикали, а также о нажатых кнопках мыши. Программа управления диском должна знать о секторах, дорожках, цилиндрах, головках, их перемещении и времени установки, двигателях и тому подобных вещах, необходимых для правильной работы диска. Очевидно, что эти программы управления будут сильно различаться. Такая программа управления каждым устройством ввода-вывода, подключенным к компьютеру, называется драйвером устройства. Она обычно пишется производителем и распространяется вместе с устройством. Поскольку для каждой ОС требуются специальные драйверы, производители устройств обычно поставляют драйверы для нескольких наиболее популярных операционных систем. Каждый драйвер устройства поддерживает один тип устройства или, максимум, класс близких устройств. Например, драйвер дисков может поддерживать различные диски, отличающиеся размерами и скоростями. Однако мышь и джойстик отличаются настолько сильно, что обычно требуют использования различных драйверов. Чтобы получить доступ к аппаратной части устройства, т.е. к регистрам контроллера, драйвер устройства должен быть частью ядра операционной системы. Но возможно создать и драйвер, работающий в пространстве пользователя. Это позволило бы изолировать ядро от драйверов, а драйверы друг от друга. При этом была бы устранена основная причина крушения операционных систем: драйверы, содержащие ошибки, сталкивающиеся с ядром тем или иным образом. Но поскольку современные операционные системы предполагают работу драйверов в ядре, рассмотрим именно такую модель. Так как в ОС будут устанавливаться драйверы, выпускаемые другими производителями, необходима архитектура, допускающая подобную установку. Это означает, что должна быть выработана строго определенная модель функций драйвера и его взаимодействия с остальной операционной системой. Драйверы устройств обычно рас- 142
Программа пользователя Остальная часть операционной системы Драйвер принтера Контроллер принтера Принтер Драйвер видеокарты Контроллер видеоадаптера Видеоадаптер Драйвер CD-ROM Контроллер CD-ROM CD-ROM Пространство пользователя Пространство ядра Аппаратура Устройства Рис. 3.5. Логическое расположение драйверов устройств полагаются под остальной частью ОС (рис. 3.5). Операционная система обычно классифицирует драйверы по нескольким категориям в соответствии с типами обслуживаемых ими устройств. К наиболее общим категориям относятся блочные устройства, например, диски, содержащие блоки данных, к которым возможна независимая адресация, и символьные устройства, такие как клавиатуры и принтеры, формирующие или принимающие поток символов. В большинстве операционных систем определены два стандартных интерфейса, один из которых должны поддерживать все блочные драйверы, а второй — все символьные драйверы. Эти интерфейсы включают наборы процедур, которые могут вызываться остальной операционной системой для обращения к драйверу. К этим процедурам относятся, например, процедуры чтения блока или записи символьной строки. Некоторые ОС представляют собой двоичную программу, содержащую в себе все необходимые драйверы. Такая схема в течение многих лет была нормой для ОС UNIX, так как они предназнача- 143
лись для работы в компьютерных центрах, где устройства ввода-вывода менялись редко. При добавлении нового устройства системный администратор просто перекомпилировал ядро с новым драйвером, получая новый двоичный модуль. С появлением персональных компьютеров с их огромным разнообразием устройств ввода-вывода такая модель перестала работать. Далеко не все пользователи могли самостоятельно перекомпилировать и собрать ядро даже при наличии исходных текстов или объектных модулей. Поэтому операционные системы, начиная с MS-DOS, перешли к модели динамической подгрузки драйверов. Различные системы выполняют эту процедуру по-разному. Драйвер устройства выполняет несколько функций: 1) обработку абстрактных запросов чтения и записи независимого от устройств и расположенного над ними программного обеспечения; 2) инициализацию устройства; 3) управление энергопотреблением устройства и регистрацией событий; 4) проверку входных параметров. Если они не удовлетворяют определенным критериям, драйвер возвращает ошибку. В противном случае драйвер преобразует абстрактные термины в конкретные. Например, дисковый драйвер может преобразовывать линейный номер блока в номера головки, дорожки и секторы; 5) проверку использования устройства в данный момент. Если устройство занято, запрос может быть поставлен в очередь. Если устройство свободно, проверяется его состояние. Возможно, требуется включить устройство или запустить двигатель, прежде чем начнется перенос данных. Как только устройство готово, может начинаться собственно управление устройством. Управление устройством подразумевает выдачу ему серии команд. Именно в драйвере и определяется последовательность команд в зависимости от того, что должно быть сделано. Определившись с командами, драйвер начинает записывать их в регистры контроллера устройства. Некоторые контроллеры способны принимать связные списки команд, находящихся в памяти. Они сами считывают и выполняют их без дальнейшей помощи операционной системы. После того как драйвер передал все команды контроллеру, ситуация может развиваться по двум сценариям. Во многих случаях драй- 144
вер устройства должен ждать, пока контроллер не выполнит для него определенную работу, поэтому он блокируется до тех пор, пока прерывание от устройства его не разблокирует. В других случаях операция завершается без задержек и драйверу не нужно блокироваться. Например, для скроллинга экрана в символьном режиме нужно записать лишь несколько байтов в регистры контроллера. Вся операция занимает несколько наносекунд. По завершении выполнения операции драйвер должен проверить, завершилась ли операция без ошибок. Если все в порядке, драйверу, возможно, придется передать данные (например, прочитанный блок) независимому от устройств программному обеспечению. Затем драйвер возвращает некоторую информацию вызывающей программе о завершении операции. Если в очереди находились другие запросы, один из них теперь может быть выбран и запущен, в противном случае драйвер блокируется в ожидании следующего запроса. Драйверам не разрешается обращаться к системным вызовам, но им часто бывает необходимо взаимодействовать с остальным ядром. Для этого драйверам можно вызывать некоторые системные процедуры, например, для выделения им аппаратно фиксированных страниц памяти в качестве буферов, а также для возвращения этих страниц обратно ядру. Кроме того, драйверы пользуются вызовами, управляющими диспетчером памяти, таймерами, контроллером DMA, контроллером прерываний и т. п. Как сделать так, чтобы все устройства ввода-вывода и драйверы выглядели примерно одинаково? Если диски, принтеры, клавиатуры и т. д. требуют различных интерфейсов, то при появлении нового устройства будет требоваться переделка операционной системы, что очень неудобно. Этот вопрос связан с интерфейсом между драйверами устройств и операционной системой. Функции драйверов, доступные системе, отличаются от драйвера к драйверу. Это означает, что функции ядра, необходимые для драйвера, тоже различаются, поэтому взаимодействие с каждым новым драйвером требует больших усилий программистов. Существует принципиально другой подход, при котором у всех драйверов один и тот же интерфейс. При этом значительно легче установить новый драйвер, при условии, что он соответствует стандартному интерфейсу. Программисты, занимающиеся разработкой 145
драйверов, знают, какие функции они должны реализовать и к каким функциям ядра они могут обращаться. На практике же не все устройства являются абсолютно идентичными, но обычно имеется небольшое число типов устройств, достаточно похожих друг на друга. Например, даже у блочных и символьных устройств есть много общих функций. 3.2.8. Файловые системы Всем компьютерным приложениям нужно хранить и получать информацию. Наиболее удобной для доступа к долговременным устройствам хранения информации оказалась система, при которой пользователь назначает для той или иной совокупности данных некоторое имя. Определенный участок диска, занятый информацией, имеющей собственное имя, называется файлом. Часть ОС, работающая с файлами и обеспечивающая хранение данных на дисках и доступ к ним, называется файловой системой (ФС). С точки зрения пользователя наиболее важным аспектом файловой системы является ее внешнее представление, т.е. именование и защита файлов, операции с файлами и т.д. Компьютеру безразлично, какое имя имеет любая программа или документ, так как он получает от ОС инструкцию подобно такой: «прочитай столько-то байт с такого-то места на диске». При этом пользователь не обязан знать, в каком физическом порядке и где именно находятся его данные. Ему достаточно потребовать от ОС прочитать документ или загрузить необходимую программу. Одной из важнейших характеристик ОС, помимо управления памятью, ресурсами компьютера и задачами, является поддержка файловой системы — основного хранилища системной и пользовательской информации. Файлы относятся к абстрактному механизму. Они предоставляют способ сохранить информацию на диске и считывать ее снова по мере необходимости. Пользователю не нужны такие подробности, как способ и место хранения информации, детали работы дисков. Важной характеристикой любого механизма абстракции являются принципы именования управляемых объектов, поэтому вкратце рассмотрим правила именования файлов. 146
Точные правила именования файлов варьируются от системы к системе, но все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые строки. Так, книга, страница, карандаш являются допустимыми именами файлов. Часто в именах файлов также разрешается использование цифр и специальных символов, поэтому могут применяться и такие имена файлов, как 2 (лучше _2), срочный! и Рис.2-14. Многие файловые системы поддерживают имена файлов длиной до 255 символов. В некоторых ФС различаются прописные и строчные символы, в других, таких как MS-DOS, нет. Операционные системы Windows 95 и Windows 98 используют файловую систему MS-DOS и наследуют многие ее свойства, включая именование файлов. Операционные системы Windows NT и Windows 2000 также поддерживают файловую систему MS-DOS и наследуют ее свойства. Однако у них имеется своя файловая система NTFS, обладающая отличными свойствами. Во многих ОС имя файла может состоять из двух частей, разделенных точкой, например progr.exe. Часть имени файла после точки называется расширением файла и обычно означает тип файла. Так, в MS-DOS имя файла может содержать от 1 до 8 символов плюс через точку расширение от 0 до 3 символов. В некоторых ОС, например в UNIX, расширения файлов являются просто соглашениями, и ОС не заставляет пользователя их строго придерживаться. Так, файл file.txt может быть текстовым файлом, но это скорее памятка пользователю, а не руководство к действию для операционной системы. Система Windows, напротив, знает о расширениях файлов и назначает каждому расширению определенное значение. Пользователи или процессы могут регистрировать расширения в ОС, указывая программу, создающую данное расширение. При двойном щелчке мышью на имени файла запускается программа, назначенная этому расширению, с именем файла в качестве параметра. Например, двойной щелчок мышью на имени file.doc запускает MS Word, который открывает файл file.doc. Обычно пользователям бывает необходимо логически группировать свои файлы, поэтому требуется некий гибкий способ, позволяющий объединять файлы в группы. Следовательно, нужна некая общая иерархия, т.е. дерево каталогов (см. рис. 3.3). При таком подходе каждый пользователь может сам создать себе столько каталогов и 147
подкаталогов, сколько ему нужно, группируя свои файлы естественным образом. В корневом каталоге могут быть также созданы каталоги и подкаталоги, принадлежащие различным пользователям. Возможность создавать произвольное количество подкаталогов является мощным структурирующим инструментом, позволяющим пользователям организовать свою работу По этой причине почти все современные файловые системы организованы подобным образом. При организации ФС в виде дерева каталогов требуется некоторый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолютное имя пути, состоящее из имен всех каталогов от корневого до того, в котором содержится файл, и имени самого файла. Например, путь \user\abc\myfile.doc означает, что корневой каталог содержит каталог user, который, в свою очередь, содержит подкаталог abc, где находится файл myfile.doc. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. Если первым символом имени пути является разделитель, это означает, что путь абсолютный. Применяется и относительное имя пути. Оно используется вместе с понятием текущего каталога. Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является \user\abc, тогда к файлу с абсолютным путем \user\abc\myfile.doc можно обратиться просто как к myfile.doc. Итак, любая файловая система предназначена для хранения информации о физическом размещении частей файла. В ФС существует минимальная единица информации — кластер, размер которого является нижним пределом размера записываемой на носитель информации в рамках ФС. Не следует путать понятие кластера с понятием сектора, который является минимальной единицей информации со стороны аппаратного обеспечения. От ФС требуется четкое выполнение следующих действий: • определение физического расположения частей файла; • определение наличия свободного места и выделение его для вновь создаваемых файлов. Скорость выполнения этих операций напрямую зависит от самой ФС. Разные файловые системы используют различные механиз- 148
мы для реализации указанных задач и имеют свои преимущества и недостатки. ФС типа FAT (File Allocation Table) представляют собой образ носителя в миниатюре, где детализация ведется до кластерного уровня. Поэтому операция поиска физических координат файла при его большой фрагментации будет затруднительна. ФС FAT16 занимает объем 128 Кб. И это позволяет легко кэшировать ее информацию. Для FAT32 эта величина для больших дисков составит ~ 1 Мб, что еще более затрудняет поиск физических координат фрагменти- рованного файла. Еще хуже обстоит дело с поиском свободного места для больших файлов. Приходится просматривать практически всю таблицу. Быстродействие падает. NTFS (New Technology File System) использует более компактную форму записи, что ускоряет поиск файла. Операции с выделением места проходят быстрее. Ключевое преимущество NTFS — возможность ограничения доступа к файлам и папкам. Важный параметр — размер кластера. Больший размер кластера гарантирует более высокую производительность за счет уменьшения самой ФС. Для NTFS увеличение кластера — болезненная процедура из-за невозможности выполнить дефрагментацию, поскольку большинство таких программ не работает с кластерами, отличными от штатных 4 Кб. Файловые системы Microsoft Windows Рассмотрим основные файловые системы, поддерживаемые Windows — FAT16, FAT32, NTFS, а также системы CDFS и UDF. Каждая файловая система имеет свои достоинства и недостатки. Файловая система FAT 16 начала свое существование еще во времена, предшествующие MS-DOS. Она поддерживается всеми ОС Microsoft для обеспечения совместимости. Ее название File Allocation Table (таблица расположения файлов) отлично отражает физическую организацию файловой системы, к основным характеристикам которой можно отнести то, что максимальный размер поддерживаемого тома HDD или его раздела не превышает 4095 Мбайт. Во времена MS-DOS 4-гигабайтные HDD казались несбыточной мечтой (роскошью были диски 20—40 Мбайт), поэтому такой запас был вполне оправдан. Том, отформатированный для использования FAT16, разделяется на кластеры. Размер кластера по умолчанию зависит от размера 149
тома и может колебаться от 512 б до 64 Кб. Размер кластера может отличаться от значения по умолчанию, но должен иметь одно из значений, предписанных для этой ФС. Не рекомендуется использовать файловую систему FAT 16 на томах больше 511 Мб, так как для небольших файлов дисковое пространство будет использоваться крайне неэффективно: файл размером 1 байт будет занимать 16, 32 или 64 Кб. Независимо от размера кластера файловая система FAT 16 не поддерживается для томов больше 4 Гбайт. На рис. 3.6 показано, как организован том при использовании файловой системы FAT 16. Рис. 3.6. Организация тома в файловой системе FAT16 Единственным отличием корневого каталога от других каталогов является то, что он располагается в определенном месте и имеет фиксированное число вхождений. Так, если число фиксированных вхождений для корневого каталога равно 512 и создано 100 подкаталогов, то в корневом каталоге можно создать не более 412 файлов. Начиная с Windows 95 OSR2, появилась поддержка 32-битной FAT Для систем на базе Windows NT эта файловая система впервые стала поддерживаться в Windows 2000. Если FAT 16 может поддерживать тома объемом до 4 Гб, то FAT32 способна обслуживать тома объемом до 2 Тб. Размер кластера в ЕАТ32 может изменяться от 1 (512 б) до 64 секторов (32 Кб). Для хранения значений кластеров FAT32 требуется 4 б (32 бит, а не 16, как в FAT16). Это означает, в частности, что некоторые файловые утилиты, рассчитанные на FAT16, не могут работать с FAT32. Основным отличием FAT32 от FAT16 является то, что изменился размер логического диска. FAT32 поддерживает тома до 127 Гб. При этом, если при использовании FAT16 с 2-гигабайтными дисками требовался кластер размером в 32 Кб, то в FAT32 кластер размером р 4 Кб подходит для дисков объемом от 512 Мб до 8 Гб. 150
Это приводит к более эффективному использованию дискового пространства — чем меньше кластер, тем меньше места требуется для хранения файла и, как следствие, диск реже становится фрагменти- рованным. При применении FAT32 максимальный размер файла может достигать 4 Гб минус 2 байта. Если при использовании FAT16 максимальное число вхождений в корневой каталог ограничивалось 512, то FAT32 позволяет увеличить это число до 65535. При создании файла с длинным именем Windows создает соответствующее имя в формате 8.3 и одно или более вхождений в каталог для хранения длинного имени (по 13 символов из длинного имени файла на каждое вхождение). Каждое последующее вхождение хранит соответствующую часть имени файла в формате Unicode. Такие вхождения имеют атрибуты идентификатор тома, только чтение, системный и скрытый — набор, который игнорируется MS-DOS. В состав Windows 2000 входит поддержка новой версии файловой системы NTFS, которая, в частности, обеспечивает средства защиты информации, контроль над доступом и ряд других возможностей. Как и при использовании FAT, основной информационной единицей в NTFS является кластер. При формировании файловой системы NTFS программа форматирования создает файл Master File Table (MTF) и другие области для хранения метаданных. Метаданные используются NTFS для реализации файловой структуры. Первые 16 записей в MTF зарезервированы самой NTFS. Местоположение файлов метаданных записано в загрузочном секторе диска. Если первая запись в MTF повреждена, NTFS считывает вторую запись для нахождения копии первой. Полная копия загрузочного сектора располагается в конце тома. В MTF хранятся метаданные, такие как копия первых четырех записей (гарантирует доступ к MTF в случае, если первый сектор поврежден). MTF содержит информацию о томе — метку и номер версии. В MTF находится таблица имен атрибутов и описания, корневой каталог и др. Остальные строки MTF содержат записи для каждого файла и каталога, расположенных на данном томе. Обычно один файл использует одну запись в MTF, но если у файла большой набор атрибутов или он становится слишком фраг- ментированным, то для хранения информации о нем могут потребоваться дополнительные записи. В этом случае первая запись о фай- 151
ле, называемая базовой записью, хранит местоположение других записей. Данные о файлах и каталогах небольшого размера (до 1500 байт) полностью содержатся в первой записи. В Windows 2000 обеспечивается поддержка файловой системы CDFS, отвечающей стандарту ISO 9660, описывающему расположение информации на CD-ROM. Поддерживаются длинные имена файлов в соответствии с ISO 9660. Поддержка файловой системы UDF является одним из новшеств Windows 2000. Universal Disk Format — это файловая система, отвечающая стандарту ISO 13346 и используемая для обмена данными с накопителями CD-ROM и DVD. Сравнение срайлоВын систем ITIicro/oft UUindouu/ Под управлением MS \Yin2000 возможно использование файловых систем FAT16, FAT32, NTFS или их комбинаций. Цифры в названии файловых систем — FAT 16 и FAT32 — указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом. Так, в ЕАТ16 применяется 16-битная адресация и, соответственно, возможно использование до 216 адресов. В Windows 2000 первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому в FAT32 число адресов достигает 228. Среди преимуществ FAT16 можно отметить следующие: • файловая система поддерживается ОС MS-DOS, Windows 95, Windows 98, Windows NT, Windows 2000, а также некоторыми ОС UNIX; • существует большое число программ, позволяющих исправлять ошибки в этой файловой системе и восстанавливать данные; • при возникновении проблем с загрузкой с HDD система может быть загружена с системной дискеты; • файловая система достаточно эффективна для томов объемом менее 256 Мб. К недостаткам FAT 16 можно отнести: • не поддерживается резервная копия загрузочного сектора; • в FAT 16 не поддерживается встроенная защита файлов и их сжатие. 152
Среди преимуществ FAT32 важно отметить следующие: • выделение дискового пространства выполняется более эффективно, особенно для дисков большого объема; • корневой каталог в FAT32 представляет собой обычную цепочку кластеров и может находиться в любом месте диска, благодаря этому FAT32 не накладывает никаких ограничений на число элементов в корневом каталоге; • за счет использования кластеров меньшего размера занятое дисковое пространство на 10—15 % меньше, чем под FAT 16. • FAT32 является более надежной файловой системой, в частности, она поддерживает возможность перемещения корневого каталога и использование резервной копии FAT. Основные недостатки FAT32: • размер тома под Win2000 ограничен 32 Гб; • тома недоступны из других ОС — только из Win95 OSR2 и Win98; • не поддерживается резервная копия загрузочного сектора; • не поддерживается встроенная защита файлов и их сжатие. При работе в Windows 2000 рекомендуется отформатировать все разделы HDD под NTFS, за исключением тех конфигураций, когда используется несколько ОС (кроме Windows 2000 и Windows NT). Применение NTFS вместо FAT позволяет использовать функции, доступные в NTFS. К ним, в частности, относятся: • возможность восстановления. Эта возможность встроена в файловую систему. NTFS и гарантирует сохранность данных за счет того, что используются протокол и некоторые алгоритмы восстановления информации; • сжатие информации. Для томов NTFS Windows 2000 поддерживает сжатие отдельных файлов. Такие сжатые файлы могут использоваться Windows-приложениями без предварительной распаковки, которая происходит автоматически при чтении из файла. При закрытии и сохранении файл снова упаковывается; • защита файлов и каталогов. Только на томах NTFS возможно задание атрибутов доступа к файлам и папкам; • файловая система поддерживает резервную копию загрузочного сектора — она располагается в конце тома; • NTFS поддерживает систему шифрования Encrypted File System (EFS), обеспечивающую защиту от неавторизованного доступа к содержимому файлов. 153
К недостаткам NTFS относятся: • NTFS-тома недоступны в MS-DOS, Win95 и Win98; • для томов небольшого объема, содержащих много файлов небольшого размера, возможно снижение производительности по сравнению с FAT. 3.2.9. Рассмотрение конкретных операционных систем В предыдущих разделах были рассмотрены общие принципы операционных систем. В этом разделе мы познакомимся с системами UNIX, Linux и Windows, чтобы увидеть, как эти принципы работают на практике. Начнем рассмотрение примеров с операционной системы UNIX, так как она используется на различных типах компьютеров чаще, чем любая другая ОС. Система UNIX доминирует на рабочих станциях старших моделей и серверах, но она также используется и в ноутбуках и суперкомпьютерах. Система UNIX иллюстрирует множество важных принципов построения ОС, многие из которых были позаимствованы другими операционными системами. Общий обзор системы особенно важен для пользователей, знакомых только с системой Windows, скрывающей от них практически все детали системы. Хотя графические интерфейсы очень удобны, но они не обладают достаточной гибкостью и не дают представление о том, как работает система. Существует множество клонов и версий системы UNIX, но фундаментальные принципы и системные вызовы практически для всех этих систем во многом совпадают. Сходными являются также общие стратегии реализации, алгоритмы и структуры данных. UNIX u Linux История UNIX начиналась в 60-е гг. прошлого столетия, когда сотрудник лаборатории Bell Labs крупнейшей телекоммуникационной компании в мире AT&T Кен Томпсон написал на ассемблере операционную систему, которая в шутку была названа UNICS (UNiplexed Information and Computing Service — примитивная информационная и вычислительная служба). Впоследствии написание этого слова стало короче, превратившись в UNIX. Однако переписывать 154
всю систему на ассемблере заново для каждой новой машины дело трудное, поэтому Томпсон решил переписать UNIX на языке высокого уровня, который он сам специально разработал и назвал языком В. Но язык В оказался слабым, в первую очередь, из-за отсутствия в нем структур данных. Тогда коллега Томпсона Ритчи разработал следующий язык, явившийся преемником языка В, который, естественно, получил название С. Вместе Томпсон и Ритчи переписали UNIX на С. Язык С оказался как раз тем языком, который и был нужен в то время, и он сохраняет лидирующие позиции в области системного программирования до сих пор. За работу по созданию ОС UNIX Ритчи и Томпсону ассоциацией по вычислительной технике АСМ была присуждена престижная премия Тьюринга. Многие университеты старались получить копию системы UNIX. Операционная система UNIX поставлялась с полным комплектом исходных текстов, поэтому владельцы системы могли совершенствовать ее. Новые идеи и усовершенствования системы распространялись быстро. Version 7 (по номеру издания руководства программиста) стала первой переносимой на другие платформы версией операционной системы UNIX. На Version 7 выросло целое поколение студентов, которые содействовали распространению UNIX. К середине 80-х гг. ОС UNIX широко применялась на мини-компьютерах и рабочих станциях различных производителей. Многие компании даже приобрели лицензии на исходные тексты, чтобы производить свои версии системы UNIX. Одной из таких компаний была небольшая начинающая фирма Microsoft, в течение нескольких лет продававшая Version 7 под именем XENIX, пока ее интересы не повернулись в другую сторону. Для того, чтобы система UNIX могла быть гарантированно запущена на любой машине, к концу 80-х при содействии Совета по стандартам Standard Boards при Институте инженеров по электротехнике и электронике ШЕЕ была предпринята попытка объединить варианты системы. В этой работе приняли участие сотни людей из промышленных, академических и правительственных организаций. Коллективное название проекта — POSIX. Первые три буквы этого сокращения означали Portable Operating System — переносимая операционная система. Буквы IX были добавлены, чтобы имя проекта выглядело юниксообразно. Комитет POSIX выработал стандарт, известный как 1003.1. Этот стандарт определяет набор библиотечных 155
процедур, которые должна предоставлять каждая соответствующая данному стандарту система UNIX, таким образом, гарантируя, что эта программа будет работать на любой версии системы, поддерживающей данный стандарт. В 1991 г. финский студент Линус Торвальдс написал еще один клон системы UNIX, который назвал Linux. Это должна была быть полноценная операционная система, со многими функциями, отсутствующими в системе MINIX. Она заимствовала некоторые идеи системы MINIX, начиная со структуры дерева исходных текстов и кончая структурой файловой системы. Однако, в отличие от микроядерной системы MINIX, Linux была монолитной системой, т.е. вся ОС помещалась в ядре. Размер исходного текста приблизительно совпадал с версией MINIX. Функционально первая версия Linux также практически почти не отличалась от MINIX. Операционная система Linux быстро росла в размерах и впоследствии развилась в полноценный клон UNIX с виртуальной памятью, более сложной файловой системой и многими другими добавленными функциями. Она была перенесена на другие платформы и теперь работает на широком спектре машин, как и UNIX. Следующим выпуском системы Linux была версия 1.0, появившаяся в 1994 г. Она включала новую файловую систему, отображение файлов на адресное пространство памяти и совместимое с UNIX сетевое программное обеспечение. Данная версия также включала многие новые драйверы устройств. К этому времени ОС Linux стала достаточно совместимой с UNIX, поэтому в нее было перенесено большое количество программного обеспечения UNIX, что значительно увеличило полезность этой системы. Кроме того, операционная система Linux привлекла большое количество людей, которые начали работу над ее совершенствованием и расширением. Следующая версия — 2.0, вышла в 1996 г. Она включала в себя поддержку 64-разрядной архитектуры, симметричной многозадачности, новых сетевых протоколов и прочих многочисленных функций. Система также содержала внушительную коллекцию различных драйверов устройств. Необычной особенностью Linux является ее бизнес-модель: это свободно распространяющееся программное обеспечение. Ее можно скачать с различных Internet-сайтов, например www.kernel.org. Сис- 156
тема Linux поставляется вместе с лицензией, разработанной Ричардом Столманом, основателем Фонда бесплатно распространяемых программ. Обзор опероиионной системы UNIX Операционная система UNIX представляет собой интерактивную систему, используемую для одновременной поддержки нескольких процессов и нескольких пользователей. В ОС UNIX есть достаточное количество средств, позволяющих программистам и совместно работать, и управлять использованием общей информации. ОС UNIX предназначена для опытных программистов. Это мощная и гибкая система. Она характеризуется небольшим количеством базовых элементов, которые можно комбинировать бесконечным числом способов, чтобы приспособить их для конкретного приложения. Одно из основных правил системы UNIX заключается в том, что каждая программа должна выполнять всего одну функцию, но делать это хорошо. В системе устранена бесполезная избыточность. Например, зачем писать сору, когда достаточно ср? Операционную систему UNIX можно рассматривать в виде пирамиды (рис. 3.7). У основания пирамиды располагается аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств. На аппаратном обеспечении работает система UNIX. Ее функция заключается в управлении аппаратным обеспечением и предоставлении всем программам системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы и управлять ими. Программы обращаются к системным вызовам, помещая аргументы в регистры ЦП и выполняя команды прерывания для переключения из пользовательского режима в режим ядра и передачи управления операционной системе UNIX. Помимо ОС и библиотеки системных вызовов, все версии UNIX содержат большое количество стандартных программ, некоторые из них описываются стандартом POSIX 1003.2, тогда как другие могут различаться в разных версиях системы. К этим программам относятся командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами. Именно эти программы и запускаются пользователем с терминала. Таким образом, существует 3 интерфейса в ОС UNIX: интерфейс 157
Интерфейс пользователя Интерфейс библиотечных функций Интерфейс системных вызовов Пользователи Стандартные обслуживающие программы (оболочка, компиляторы и т.д.) Стандартная библиотека (open, close, read, fork и т.д.) Режим пользователя Операционная система UNIX (управление процессами, памятью, файловая система, ввод-вывод и т.д.) Режим ядра Аппаратное обеспечение (ЦП, память, диски, терминал и 1.д.) Рис. 3.7. Уровни операционной системы UNIX системных вызовов, интерфейс библиотечных функций и интерфейс, образованный набором стандартных обслуживающих программ. Последний интерфейс большинство пользователей считает системой UNIX. В действительности он не имеет практически никакого отношения к самой системе и легко может быть заменен. В некоторых версиях системы, например, этот ориентированный на ввод с клавиатуры интерфейс пользователя был заменен графическим интерфейсом, ориентированным на использование мыши, для чего не потребовалось никаких изменений в самой системе. Именно эта гибкость сделала систему UNIX столь популярной и позволила ей пережить многочисленные изменения технологии, лежащей в ее основе. У многих версий системы UNIX имеется графический интерфейс пользователя, сходный с популярными интерфейсами, применяемыми на компьютерах Macintosh и в системе Windows. Пользовательский интерфейс UNIX состоит не только из оболочки, но также из большого числа стандартных обслуживающих программ, называемых утилитами. Стандарт POSDC 1003.2 определяет синтаксис и семантику около 100 из этих программ. Идея стандартизации этих программ заключается в том, чтобы можно было писать оболочки, которые работали бы на всех системах UNIX. Помимо этих стандартных утилит, существует еще масса прикладных программ, таких как web-браузеры, программы просмотра изображений и т. д. 158
Процессы UNIX очень похожи на последовательные классические процессы, которые были рассмотрены выше. Каждый процесс запускает одну программу и изначально получает один поток управления. У процесса есть один счетчик команд, указывающий на следующую исполняемую команду процессора. Большинство версий UNIX позволяют процессу после того, как он запущен, создавать дополнительные потоки. UNIX представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно. У каждого пользователя может быть одновременно несколько активных процессов, так что в большой системе могут одновременно работать сотни и даже тысячи процессов. На большинстве однопользовательских рабочих станций работают десятки фоновых процессов. Они запускаются автоматически при загрузке системы. Файловая система в UNIX — иерархическая, с файлами и каталогами. Все диски монтируются в единое дерево каталогов, начинающееся в одном корне. Отдельные файлы могут быть связаны с любым каталогом дерева. Операционная система Windows Операционные системы корпорации Microsoft можно разделить на три семейства: MS-DOS, Consumer Windows (Windows 95/98/Мё) и Windows NT. История Windows, как и история развития Microsoft, начиналась в 1981 г., когда корпорация IBM создала персональный компьютер IBM PC, оснащенный 16-разрядной однопользовательской операционной системой реального режима с командной строкой MS- DOS 1.0. Эта операционная система поставлялась фирмой Microsoft, известной в те годы как разработчик интерпретатора BASIC. Через два года была выпущена более мощная операционная система MS- DOS 2.0. Она содержала программу обработки командной строки с большим количеством функций, позаимствованных у ОС UNIX. В 1986 г. новый компьютер IBM PC/AT (Advanced Technology — передовая технология) на базе процессора Intel 286 вместе с операционной системой MS-DOS 3.0 фирмы Microsoft. В ОС MS-DOS появилось много новых функций, но она оставалась системой с командной строкой. Затем Microsoft решила добавить к операционной системе MS- DOS графический интерфейс пользователя (оболочку), которую она 159
назвала Windows. Операционные системы Windows 1.0 и Windows 2.0, выпущенные соответственно в 1985 и 1987 гг., были неудачными. Наконец, версия 3.0, выпущенная в 1990 г. для компьютера с процессором Intel 386, и особенно последовавшие за ней версии 3.1 и 3.11 добились большого коммерческого успеха. Ни одна из этих версий не являлась настоящей операционной системой. Это был скорее графический интерфейс поверх MS-DOS, которая продолжала управлять машиной и файловой системой. Все программы работали в одном и том же адресном пространстве, ошибка одной из них могла привести к зависанию всей системы. Выход в 1995 г. Windows 95 не привел к вытеснению системы MS- DOS, хотя почти все ее функции были перенесены в Windows. Как Windows 95, так и новая версия MS-DOS 7.0 содержали большинство особенностей монолитной операционной системы, включая виртуальную память и управление процессами. ОС Windows 95 не была полностью 32-разрядной программой. Она содержала большие куски 16-разрядного ассемблерного кода и продолжала использовать файловую систему MS-DOS, практически со всеми ее ограничениями. Значительное изменение файловой системы заключалось только в добавлении длинных имен файлов к именам формата 8.3, разрешенным в MS-DOS. В Windows 98, вышедшем в 1998 г., MS-DOS все еще присутствовала (версия 7.1) и состояла из 16-разрядного кода. Хотя еще больше функций было переведено из MS-DOS в Windows, а поддержка больших дисковых разделов стала стандартом, по своему строению операционная система Windows 98 не сильно отличалась от Windows 95. Отличие заключалось в интерфейсе пользователя, интегрировавшем в себе Internet и рабочий стол пользователя. В 2000 г. Microsoft выпустила слегка измененную версию Windows 98, названную Windows Me (Windows Millennium Edition — Windows, выпуск тысячелетия). В этой версии были исправлены некоторые ошибки и добавлены новые функции, но под внешней оболочкой скрыта все та же Windows 98. Новые функции включали в себя улучшенную организацию при совместном использовании изображений, музыки и фильмов, основательнее поддерживали работу с домашней сетью и многопользовательские игры. Они также содержали больше функций, относящихся к Internet. Одна новая функция состояла в возможности восстановить прежние настройки компьюте-ра после неверной ус- 160
тановки каких-либо параметров. Например, если пользователь перенастраивал разрешение экрана с 640 х 480 на 1024 х 768, и после этого система переставала работать, то теперь он мог вернуться к последней работающей конфигурации. К концу 80-х гг. корпорация Microsoft осознала, что построение современной 32-разрядной операционной системы поверх 16-разрядной системы MS-DOS является решением, лишенным перспективы. Поэтому была начата работа над созданием совершенно новой 32-разрядной ОС, совместимой с Windows. Эта новая система, названная Windows NT (NT означает New Technology — новая технология), предназначалась для деловых приложений, решающих ответственные задачи, а также для домашнего использования. В это время мэйнфреймы все еще работали на крупный бизнес, поэтому предположение, что компании будут использовать персональные компьютеры для чего-либо важного, выглядело довольно утопично. Но, как показала история, это был правильный выбор. Такие свойства, как безопасность и высокая надежность, отсутствовавшие в прежних версиях Windows, были поставлены в этом проекте во главу угла. Проект оказался успешным. В 1993 г. была выпущена первая версия, названная Windows NT 3.1. Номер версии был выбран так, чтобы он соответствовал номеру версии популярной тогда 16-разрядной Windows 3.1. Microsoft ожидала, что операционная система NT быстро вытеснит Windows 3.1, так как по формальным показателям NT значительно превосходила ее. Первое значительное усовершенствование системы NT было сделано в 1996 г. в версии NT 4.0. Эта система обладала мощностью, безопасностью и надежностью современной операционной системы. Она использовала тот же самый пользовательский интерфейс, что и очень популярная тогда Windows 95. Эта совместимость облегчала пользователям переход с Windows 95 на NT С самого начала операционная система NT разрабатывалась в расчете на переносимость системы на другие платформы, поэтому она была практически полностью написана на С с очень небольшими включениями на ассемблере для обработки прерываний. Следом за NT 4.0 предполагалось выпустить версию NT 5.0. Но в 1999 г. Microsoft изменила ее название на Windows 2000. Это было сделано для того, чтобы найти нейтральное имя как для пользователей Windows 98, так и для пользователей NT При этом Microsoft pac- 6. Информатика 161
считывала иметь единую ОС, построенную на основе надежной 32-разрядной технологии, но использующую интерфейс системы Windows 98. Windows 2000 — это современная операционная система, работающая на настольных ПК старших моделей и серверах. Она унаследовала множество свойств системы NT 4.0 и является полностью 32-разрядной (планируется переход на 64-разрядную) многозадачной системой с индивидуально защищенными процессами. Каждый процесс имеет свое собственное 32-разрядное виртуальное адресное пространство. ОС работает в режиме ядра, тогда как процессы пользователя работают в пользовательском режиме, что обеспечивает полноценную защиту (в отличие от Windows 98). У процессов может быть один или несколько потоков, видимых для операционной системы и управляемых ею. Она удовлетворяет требованиям безопасности уровня С2 МО США для всех файлов, каталогов и процессов, а также других объектов, которые могут использоваться совместно. Наконец, она обладает полной поддержкой симметричных многопроцессорных систем с числом процессоров от 2 до 32. Возможности операционной системы Windows 2000 позволяют использовать ее как основную операционную систему для современных настольных компьютеров и ноутбуков на предприятиях любого типа. При создании этой системы корпорация Microsoft сохранила все полезные свойства Windows 98: технологию plug-and-play, простой и понятный пользовательский интерфейс, широкие возможности управления, и даже улучшила их. Кроме того, их дополнили система безопасности, средства управления и обеспечения надежности, характерные для системы Windows NT. Развертывание системы Windows 2000 как на одном компьютере, так и в рамках Всемирной сети позволяет повысить эффективность использования компьютерных технологий при одновременном снижении общей стоимости владения. В Windows 2000 встроена сертификация драйверов, что гарантирует использование требуемых драйверов и уменьшает риск сбоя оборудования из-за аппаратных конфликтов, а также специальная программа, Microsoft Installer, которая помогает правильно устанавливать, настраивать, сопровождать, обновлять и удалять программы, снижая риск ошибок пользователя и возможность снижения производительности. Еще одно значительное усовершенствование заключается в интернационализации ОС. Операционная система Windows 2000 состоит 162
из единого двоичного кода, работающего во всех странах мира. Для каждой установки системы и даже для каждого пользователя можно выбрать язык, который будет использоваться в системе. Это стало возможным потому, что все пункты меню, строки диалоговых окон, сообщения об ошибках и другие текстовые строки были удалены из ОС и помещены в специальные каталоги, по одному для каждого языка. Windows 2000 использует кодировку Unicode для поддержки языков, не использующих латинский алфавит, таких как русский, греческий, иврит, японский. Windows 2000 поставляется в виде нескольких уровней продукта: Professional, Server, Advanced Server и Datacenter Server. Однако различия между этими версиями незначительны. Во всех версиях используется один и тот же исполняемый двоичный код. При установке системы тип продукта записывается в системном реестре (внутренняя база данных), и во время загрузки ОС проверяет содержимое реестра, определяя версию программного продукта. Все операции с файлами и папками, как и в ОС Windows 98, выполняются с помощью системы окон. Система окон разворачивается от папки Мой компьютер. Диски, представленные в окне этой папки, можно открыть двойным щелчком мыши, а потом разыскать на них любые нужные папки и файлы. Копирование и перемещение файлов и папок из одной папки в другую можно выполнять путем перетаскивания их значков из окна одной папки в окно другой. Для удаления объектов можно использовать перетаскивание на значок Корзины, а можно пользоваться контекстным меню, которое открывается при щелчке правой кнопкой мыши на объекте. Для создания в папке ярлыка документа или программы можно использовать специальное перетаскивание или команду Создать\Ярлык из контекстного меню. Работа с файловой системой в окнах папок не вполне удобна, и для этой цели в ОС предусмотрено более мощное средство — программа Проводник (рис. 3.8). Проводник — служебная программа, относящаяся к категории файловых менеджеров. Она предназначена для навигации по файловой системе компьютера и ее обслуживания. Проводник интегрирован в ОС Windows, и поэтому он работает даже тогда, когда его окно закрыто. Так, если по щелчку правой кнопки мыши вызывается контекстное меню, или объекты перетаскиваются из одного окна в другое, то это результат работы Проводника. 163
Рис. 3.8. Окно программы Проводник Операционная система Windows 2000 обладает широкими возможностями настройки. Цель настройки состоит в создании условий для эффективной работы путем автоматизации операций и создания комфортной рабочей среды. Основные настраиваемые объекты — средства управления и оформления. Средствами настройки являются Панель управления (Пуск\Настройка\Панель управления), представленная на рис. 3.9, контекстные меню объектов Windows и элементы управления диалоговых окон операционной системы и ее приложений. Хотя Windows 2000 является самой большой ОС в мире, она все продолжает расти, ошибки устраняются, а новые функции добавляются. В октябре 2001 г. была представлена Microsoft Windows XP (от слова eXPerience) — новейшая на этот момент версия операционной системы Windows, обладающая широкими возможностями в области коммуникаций и обработки любых видов цифровой информации. По заявлению Билла Гейтса, Windows XP — лучшая из всех ОС, когда- либо созданных корпорацией Microsoft. 164
Рис. 3.9. Панель управления — основное средство настройки Windows В семействе продуктов Windows XP применяется технология Product Activation, представляющая собой новое средство защиты ПО от незаконного копирования, ограничивающее возможное число установок продукта на отдельных компьютерах. Если продукт защищен с помощью этой технологии, то купивший его пользователь должен после установки выполнить дополнительную процедуру активации продукта. В Windows XP появились новые средства обеспечения безопасности, в частности встроенный в ОС брандмауэр подключения к Internet (Internet Connection Firewall). Кроме того, в состав ОС входит Internet Explorer 6, содержащий дополнительные средства защиты персональных данных, передаваемых при посещении Web-узлов. В состав семейства операционных систем Windows XP входят: • Windows XP Home Edition — операционная система, предназначенная в основном для домашних пользователей; • Windows XP Professional — операционная система, предназначенная в основном для установки на рабочих станциях корпоративных пользователей; 165
• Windows XP 64-Bit Edition — 64-разрядная ОС, предназначенная для применения на компьютерах с большим объемом оперативной памяти и процессором семейства Intel Itanium, используемых для задач, требующих больших объемов вычислений и обработки больших объемов данных; • Windows.NET Server — серверная операционная система, является дальнейшим развитием операционных систем Windows 2000. Основными особенностями семейства ОС Windows.NET Server является наличие в их составе платформы Windows.NET Framework, а также поддержка Web-сервисов XML. Windows XP Home Edition предназначена для замены ОС Windows 95, Windows 98 и Windows Me. От них ее отличают черты, характерные для Windows NT и Windows 2000, — архитектура с защищенным ядром и полное разделение процессов, что благоприятно сказывается на надежности этой ОС и позволяет одновременно выполнять приложения, использующие разные версии одних и тех же библиотек без каких-либо конфликтов между ними. Среди полезных приложений, появившихся в Windows XP Home Edition, следует выделить диспетчер задач — Task Manager — в стиле Windows NT/2000, позволяющий снять зависшее приложение или процесс, получить информацию о загрузке процессора и памяти. При работе с файловой системой можно использовать службу индексирования файлов в данном разделе, что позволяет ускорить процесс поиска файлов. Кроме того, поиск можно осуществлять не только на своих жестких дисках, но и в Internet. Эксплуатацию и сопровождение операционной системы упрощают средства динамического обновления самой ОС и драйверов устройств через Internet. На случай неудачного обновления предусмотрена возможность возврата к прежнему состоянию ОС, поэтому теперь можно не заботиться о создании резервных копий реестра. Более интеллектуальной стала справочная система. Теперь она не только сама предлагает помощь при возникновении проблем, но и умеет находить информацию в различных источниках, например на сайте производителя оборудования и в Microsoft Knowledge Base. Windows XP Professional предназначена для части системного ПО, занятого сейчас ОС Windows NT Workstation и Windows 2000 Professional. Она также основана на архитектуре с защищенным ядром и полном разделении процессов. По сравнению с Windows XP 166
Home Edition эта ОС обладает рядом дополнительных возможностей. Windows XP Professional содержит дополнительные средства, которые упрощают ее эксплуатацию на рабочих станциях корпоративных сетей, включающих компьютеры с серверными ОС Microsoft. К ним относятся средства централизованного администрирования, возможность установки групповых политик, дополнительные средства установки и поддержки программного обеспечения, включая поддержку удаленной установки ПО. Операционная система может использовать одновременно два процессора, распределяя задачи между ними, что повышает ее масштабируемость. Помимо средств защиты данных, имеющихся в Windows XP Home Edition, в Windows XP Professional предусмотрена возможность шифрования файлов в разделах с файловой системой NTFS. Кроме того, эта операционная система позволяет ограничить доступ пользователей к некоторым файлам, приложениям и другим ресурсам. Windows XP 64-Bit Edition — 64-разрядная ОС, предназначенная для применения на компьютерах с большим объемом оперативной памяти и процессором семейства Intel Itanium, которые используются для задач, требующих больших объемов вычислений. Эта ОС представляет собой высокопроизводительную платформу для создания нового поколения приложений, основанных на Win64 API. В отличие от 32-разрядных ОС, поддерживающих до 4 Гбайт виртуальной памяти, она позволяет более эффективно обрабатывать большие объемы данных, поддерживая до 16 Гбайт реальной оперативной памяти и до 8 Тбайт виртуальной оперативной памяти. Система оптимизирована для применения с процессором Intel Itanium и использует такие его особенности, как набор инструкций, позволяющий выполнять до 20 операций. Windows XP 64-Bit Edition поддерживает до двух процессоров Intel Itanium. 3.3. Служебные программы Служебные программы (утилиты) — это программы, используемые при работе или техническом обслуживании компьютера для выполнения вспомогательных функций, таких как работа с файлами и каталогами, диагностирование аппаратуры, просмотр и конвертация 167
файлов, оптимизация дискового пространства, восстановление поврежденной информации, антивирусные средства (раздел 8.4.) и другие. Файловые менеджеры С момента появления программы Norton Commander файловые менеджеры стали необходимым приложением на любом компьютере. Многие из них внешне напоминают знаменитого предка, но в плане функциональности ушли далеко вперед. Все они предназначены для разнообразной работы с файлами: копирования, переноса, удаления, редактирования текстовых файлов, гибкого запуска программ. Самыми популярными файл-менеджерами сегодня в России являются Total Commander (бывший Windows Commander) и FAR Manager. По возможностям за ними следует Frigate, который пока еще недостаточно хорошо известен пользователям. Все программы работают под управлением: Windows 98/Me/NT/ 2000/ХР. FAR Manager 1.7. Norton-подобный файл-менеджер, который может работать как в полноэкранном, так и в оконном режимах, поддерживает длинные имена файлов, корректно работает с русскими буквами, а встроенный редактор позволяет переключаться между DOS- и Windows-кодировками, окрашивает имена файлов в соответствии с их расширениями, что очень удобно при работе. Среди возможностей программы — определение размеров каталогов, вызов списка активных задач, передача файлов через FTP-клиент, управление сетевыми и подключенными к ПК принтерами, подсветка синтаксиса в исходных текстах программ, поиск и замена символов одновременно во множестве файлов с применением регулярных выражений, средства переименования групп файлов с возможностью использования сложных составных масок, проверка орфографии при обработке текста в редакторе FAR и многое другое. Программа поддерживает большинство известных архивных форматов и позволяет архивировать и разархивировать, просматривать, редактировать и запускать на выполнение файлы из архивов. В системе предусмотрены развитая система управления горячими клавишами и очень 168
большой набор встроенных функций, которые существенно расширяют возможности FAR Manager, дополняя и модифицируя их. Total Commander 6.03. Если FAR Manager выбирают те пользователи, которые привыкли работать с Norton Commander, то люди, начинавшие с Windows, предпочитают Total Commander (рис. 3.10). Он продолжает добрую традицию двухпанельных файловых менеджеров, но в большей степени ориентирован на Windows-интерфейс. Так же, как и у многих Windows-программ, интерфейс Total Commander легко настраивается, причем отрегулировать можно буквально все: цвета, наборы панелей, цвета для групп файлов, иконки папок и документов. Интерфейс Total Commander позволяет просматривать содержимое носителей с использованием настраиваемых закладок. В итоге в рамках одной панели файл-менеджера можно открыть несколько директорий, каждая из которых будет представлена отдельной закладкой, а при переходе между закладками сохраняется состояние директории. Имеется поддержка архиваторов ZIP, ARJ, LZH, Рис. ЗЛО. Панели файл-менеджера Total Commander 169
GZ, TAR, RAR и АСЕ и встроенный FTP-клиент. Наряду со стандартными возможностями, характерными для данного класса приложений, программа обладает целым рядом особенностей, которые способны существенно ускорить навигацию по дискам и папкам. К таким особенностям относятся: запоминание часто используемых каталогов, история последних посещенных каталогов, быстрый поиск, в том числе внутри файлов, многофункциональные возможности настройки горячих клавиш, удобная панель инструментов с поддержкой drag & drop, удобная работу с комментариями к файлам и папкам и др. Поддержка встроенных функций позволяет реализовать в Total Commander многие полезные возможности, такие как диспетчер задач, редактор реестра, временная панель, управление сервисами, работа с сетевыми папками, карманным компьютером, Linux- разделами и пр. Frigate 3.24. Выпущенный в 2001 г. этот файловый менеджер очень активно развивается. Сегодня его уже можно сравнить с программой Total Commander. Это очень многофункциональный продукт с привычным Windows-интерфейсом. Frigate поддерживает все основные операции работы с файлами и папками, а также умеет работать с 24 графическими форматами (просмотр, слайд-шоу, конвертация), имеет встроенный многофункциональный текстовый редактор, встроенные просмотрщики файлов HTML, DOC, RTF и др. Кроме того, он очень удобен при работе с FTP, имеет множество полезных утилит и поддерживает систему встроенных функций и работу с архивами, а в Windows 2000/XP даже умеет записывать файлы на CD-RW. Уникальная система настроек позволяет полностью настроить внешний вид программы. Стандартная комплектация программы включает: файловый менеджер, поддержку архивов, работу с FTP, текстовый редактор, RTF-редактор, просмотрщик изображений, менеджер свободного места, менеджер автозапуска, встроенные часы и работу с МРЗ. Профессиональная комплектация дополнена модулями для синхронизации директорий, менеджером свободного пространства, менеджерами автозапуска и заметок, встроенными часами, поддержкой встроенных функций для Total Commander и многими другими модуляциями. По сути, Frigate Pro уже больше напоминает не файловый менеджер, а настоящий электронный офис, обеспечивающий работу с мультимедиа, мощные средства организации документов, дополнительные средства и утилиты. 170
Сжатие информации Вследствие неуклонно растущих объемов обрабатываемой информации особое значение приобретает сжатие данных. Избыточность информации предоставляет широкое поле деятельности в этой области. Так, измерение избыточности естественных языков (тех, на которых мы говорим) показывает, что практически 80 % передаваемой с помощью языка информации является избыточной, т.е. лишней. Показатели избыточности разных языков очень близки. Данная цифра примерно определяет теоретические пределы сжатия текстовых файлов. Наличие избыточности допускает переход на иную систему кодирования, которая бы уменьшила ее. Говоря о переходе на коды, которые позволяют уменьшить размер сообщения, вводят понятие коды сжатия. При этом различают понятия сжатие без потерь и сжатие с потерями. Очевидно, что когда мы имеем дело с информацией типа «номер телефона», то сжатие за счет потери части символов не ведет ни к чему хорошему. Однако можно представить целый ряд ситуаций, когда потеря части информации не приводит к потере полезности оставшейся. Сжатие с потерями применяется в основном для графики, звука и видео, т.е. там, где в силу огромных размеров файлов степень сжатия очень важна, и можно пожертвовать деталями, несущественными для восприятия этой информации человеком. Особые возможности для сжатия информации имеются при компрессии видео. В ряде случаев большая часть изображения передается из кадра в кадр без изменений, что позволяет строить алгоритмы сжатия на основе выборочного отслеживания только части «картинки». В частном случае изображение говорящего человека, не меняющего своего положения, может обновляться только в области лица или даже рта, т.е. в той части, где происходят наиболее быстрые изменения от кадра к кадру. Обычно сжатие графики с потерями, обеспечивая очень высокие степени компрессии, практически незаметно для человека. Однако методы сжатия с потерями обладают и рядом недостатков. Первый недостаток заключается в том, что компрессия с потерями применима не для всех случаев анализа графической информации. Например, если в результате сжатия изображения на лице изменится форма родинки (но лицо при этом останется полностью узнаваемо), то эта фотография окажется вполне приемлемой, чтобы послать ее по почте знакомым. Однако если пересылается фотосни- 171
мок легких на медэкспертизу для анализа формы затемнения, то в этом случае искажения недопустимы. Кроме того, в случае машинных методов анализа графической информации результаты кодирования с потерей (незаметные для глаз) могут быть «заметны» для машинного анализатора. Второй недостаток заключается в том, что повторная компрессия и декомпрессия с потерями приводят к эффекту накопления погрешностей. Кодирование без потерь может применяться для сжатия любой информации, поскольку обеспечивает абсолютно точное восстановление данных после кодирования и декодирования. Сжатие без потерь основано на простом принципе преобразования данных из одной группы символов в другую, более компактную. Наиболее известны два алгоритма сжатия без потерь: это кодирование Хаффме- на и LZW-кодирование (по начальным буквам имен создателей Lempel, Ziv, Welch), которые представляют основные подходы при сжатии информации. Принцип кодирования Хаффмена заключается в уменьшении количества битов, используемых для представления часто встречающихся символов, и, соответственно, в увеличении количества битов, используемых для редко встречающихся символов. Метод LZW кодирует строки символов, анализируя входной поток для построения расширенного алфавита, что позволяет использовать дополнительные символы для представления строк обычных символов. Используя, например, вместо 8-битовых ASCII-кодов 9-битовые, получают дополнительные 256 символов. Работа компрессора сводится к построению таблицы, состоящей из строк и соответствующих им кодов. Алгоритм сжатия сводится к следующему: программа прочитывает очередной символ и добавляет его к строке. Если строка уже находится в таблице, чтение продолжается, если нет, данная строка добавляется к таблице строк. Чем больше будет повторяющихся строк, тем сильнее будут сжаты данные. Возвращаясь к примеру с телефоном, можно, проведя упрощенную аналогию, сказать, что, сжимая запись 233 34 44 по LZW-методу, мы придем к введению новых строк — 333 и 444 и, выражая их дополнительными символами, сможем уменьшить длину записи. Все архиваторы используют в какой-либо модификации эти два метода кодирования информации. Самым популярным архиватором является WinZip. Объясняется это тем, что формат ZIP считается мировым стандартом архивирования и имеет самую длительную исто- 172
рию развития. Большинство архивов в Internet также имеют формат ZIP. За ним следуют многими любимый WinRAR и набирающий обороты WinAce. Все эти архиваторы работают под управлением Windows 98/Me/NT/ 2000/XP. WinZip 9.0. Возможностей его вполне достаточно для того, чтобы обеспечить надежное и эффективное архивирование данных. Программа работает в двух режимах: классическом и режиме мастера, рассчитанном на новичков. Она ориентирована преимущественно на ZIP-архивы, но при этом поддерживает и другие популярные архивные форматы. В числе возможностей WinZip — поддержка технологии перетаскивания (drag & drop) и полная интеграция с программами «Мой компьютер» и «Проводник»; создание самораспаковывающихся файлов; поддержка антивирусных программ; отправка архива по электронной почте и пр. А для защиты архива от несанкционированного доступа можно при его создании указать пароль. WinZip 9.0 поддерживает 128- и 256-битовое шифрование АЕС, которое обеспечивает намного большую безопасность, чем традиционно используемый в более ранних версиях архиватора метод шифрования Zip 2.0. Кроме того, WinZip 9.0 позволяет теперь обрабатывать файлы практически неограниченного размера. WinRAR 33 — признанный лидер среди программ-архиваторов по удобству и массовости применения, поддерживающий в настоящее время самый большой набор языков, включая русский. При этом формат RAR в большинстве случаев обеспечивает значительно лучшее сжатие, чем ZIP, особенно в режиме создания непрерывных архивов. Формат RAR оснащен несколькими очень важными функциями, отсутствующими у ZIP, к числу которых, например, можно отнести функцию добавления информации для восстановления, которая позволяет восстановить физически поврежденный файл, и функцию блокировки архивов для предотвращения случайной модификации особенно ценных данных. Формат RAR позволяет обрабатывать файлы практически неограниченного размера и не только предлагает оригинальные и эффективные алгоритмы для сжатия информации различных типов, но и автоматически применяет нужный алгоритм при сжатии файлов. В число его основных особенностей входят: полная поддержка архивов RAR и ZIP; управление архивами других форматов; наличие графической оболочки с поддержкой технологии перетаскивания drag & drop; поддержка метода solid-архивирования, 173
при котором может быть достигнута степень сжатия, на 10—50 % превышающая ту, что дают обычные методы; поддержка многотомных архивов (в формате RAR); создание самораспаковывающихся (SFX) обычных и многотомных архивов; возможность создания и использования томов для восстановления, позволяющих воссоздавать недостающие части многотомных архивов; отправка архива по электронной почте и пр. Для удобства возможно создание избранных папок и архивов. Программа поддерживает два варианта работы: классический и с помощью мастера. В последних версиях предлагаются новые возможности для защиты информации за счет применения 128-битного алгоритма шифрования данных и имен файлов в архиве с использованием алгоритма AES и сохранения данных о правах доступа. Очень удобна появившаяся в одной из последних версий архиватора возможность поиска файлов внутри архивов. Полезна новая команда «Просмотр архива на вирусы», обеспечивающая распаковку архива во временную папку и проверку ее содержимого установленным на компьютере антивирусом. А команда печати позволяет теперь распечатывать как обычные, так и архивированные файлы. WinAce 2.5. Может быть, в будущем этот набирающий популярность архиватор составит конкуренцию WinZip и WinRAR. Главное его достоинство — манипуляция разными форматами архивов. Архиватор обеспечивает сжатие и распаковку многих известных форматов. Он поддерживает технологию перетаскивания (drag & drop); solid-архивирование для формата АСЕ; сжатие рисунков и звука; отправку архивов по электронной почте. Он также предоставляет возможности для создания многотомных архивов в форматах АСЕ, ZIP и CAB, самораспаковывающихся архивов (SFX) АСЕ и ZIP и др. Есть возможность добавления информации для восстановления архива в случае его повреждения. В целом различных настроек и установок в WinAce больше, чем в любом другом архиваторе. Однако в освоении WinAce сложнее, чем WinRAR или WinZip. Программы резервирований данных Самое важное в любой компьютерной системе — это хранящаяся в ней информация. К сожалению, ни надежное оборудование, ни лицензионное ПО не гарантируют стопроцентной сохранности дан- 174
ных. Всегда существует вероятность потери информации. Поэтому нужно не только беречь информацию, но и уметь оперативно восстановить ее в случае необходимости, для чего требуется резервное копирование данных, подразумевающее периодическое создание копий нужной информации. На резервирование файлов вручную путем, например, копирования на CD-RW требуется много времени и терпения — лучше автоматизировать данный процесс с помощью специализированного ПО. В Windows 2000 имеются средства резервного копирования и восстановления данных — Backup And Recovery Tools (Средства архивации и восстановления). В ее состав входит Backup Wizard (Мастер архивации) — служебная программа, облегчающая архивирование и восстановление данных. Однако специализированные программы сторонних производителей во многих случаях предоставляют более удобную и быструю возможность выполнения этих процедур. Общепризнанными лидерами разработки соответствующего ПО являются компании Hewlett-Packard, Computer Associates, Seagate Software, но их продукты требуют сложного администрирования, рассчитаны на корпоративный бизнес и поэтому дороги. Для рядового пользователя лучше выбрать более простые и дешевые программы, например, Handy Backup или BackUp32, которые работают под управлением Windows 9x/NT/2000/ Ме/ХР. Handy Backup 4.1 представляет собой простую и удобную программу для автоматического создания копий документов и данных, которые могут быть сохранены на любом устройстве (как внешнем, так и внутреннем, в том числе и на CD-RW) или отправлены на FTP- сервер, а при необходимости восстановлены. При этом можно сохранять не только отдельные файлы и папки, но и письма из MS Outlook, системный реестр или ICQ-переписку. Программа умеет работать по расписанию, сжимать файлы в ZIP-архивы, поддерживает 128-битное шифрование и синхронизацию данных. BackUp 32 2.0. Основное назначение программы — резервирование данных с возможностью автоматического сжатия как с использованием встроенного, ZIP-совместимого модуля сжатия, так и за счет подключения внешних архиваторов. Поддерживаются циклы удаления устаревших архивов по возрасту архива и по количеству архивов в архивной директории. В числе возможностей программы — присвоение имени архиву в формате даты, посылка в сеть сооб- 175
щений о предстоящей архивации, синхронизация с другой архивной директорией в сети, поддержка нескольких конфигураций и групп конфигураций, выполнение конфигурации один раз в установленное количество дней. Кроме того, возможно подключение плагинов, выполнение команд ОС до и после архивации, поддержка командной строки, архивация на сменный носитель, установка пароля на архивы, создание ВАК-файлов, добавление комментариев и описаний, поддержка списков исключаемых файлов и файлов, не подлежащих сжатию, высокая скорость сжатия, удобный интерфейс и большое количество настроек. Программы записи компакт-дисков Среди продуктов этого класса есть свои фавориты. Это пакеты от Nero (Nero 6 или более ранние версии) и Roxio (Easy Media Creator 7, WinOnCD 6 или более ранние их модификации). Все они универсальны, позволяют записать любой диск на CD или DVD, содержат много дополнительных приложений для обработки разнообразной информации и могут снабдить записанный диск профессиональной наклейкой. Однако существует целый ряд более дешевых и компактных утилит, способных справиться с этой задачей ничуть не хуже своих более дорогих аналогов. Но следует иметь в виду, что многие из огромного количества программ данного направления ориентированы только на создание отдельных видов дисков — аудио-CD, видео-CD и т.п. Все программы работают под управлением Windows 95/ 98/NT 4/ Ме/2000/ХР. Nero по праву считается лучшим универсальным пакетом программ для записи CD- и DVD-дисков, обладает простым и удобным пользовательским интерфейсом, язык которого легко изменить, в том числе и на русский. Пакет работает быстро и стабильно и поддерживает технологию защиты от сбоев. В комплекте с приложением Nero Burning Rom, которое служит непосредственно для записи CD- и DVD-дисков, Nero 6 объединяет целый набор дополнительных программ. В их числе — многофункциональный помощник Nero StartSmart, использование которого позволит создавать новые диски или копии дисков даже неискушенным пользователям. Приложение Nero Vision Express 2 служит для создания видеодисков, записи видео на жесткий диск, кодирования видеоконтента и пр. Приложение 176
Nero Wave Editor 2 применяется для редактирования звука; Nero ImageDrive — эмулятор CD-привода; Nero BackltUp — программа для резервного копирования; Nero Cover — редактор обложек к дискам и ряд других. Nero Burning ROM поддерживает всю гамму пишущих приводов — как классические внутренние приводы CD-R/RW, DVD- R/RW, DVD+R/RW и DVD-RAM, так и внешние приводы IDE, SCSI с интерфейсами USB 2,0 и даже FireWire — и обладает возможностью перезаписи. В качестве источников информации могут выступать как файлы на жестком диске, так и другие компакт-диски. Roxio Easy Media Creator 7 (ранее известная как Easy CD & DVD Creator 6) — это универсальный пакет приложений, позволяющий работать с мультимедийным контентом любых видов: организовывать, редактировать и сохранять на CD или DVD цифровые фотографии, музыку и видео. В состав пакета, наряду с программой для записи CD- или DVD-дисков Easy CD & DVD Creator, входит целая серия других утилит, которые могут обмениваться мультимедиадан- ными между собой и использовать одни и те же файлы в совместной работе. Например, DVD Builder 2.0 позволяет создавать профессиональные DVD, VCD и SVCD с элементами управления (меню, кнопки, главы, фон и т.д.). Утилита AudioCentral необходима для создания музыкальных CD, a Sound Editor позволяет импортировать аналоговые данные с пластинок и видеокассет. Встроенный фоторедактор PhotoSuite 7 Platinum поможет редактировать фотографии с возможностью последующего создания фотоальбома или слайд-шоу а для видеомонтажа потребуется профессиональный редактор VideoWave 7 Pro. В целом, Easy Media Creator 7 позволяет копировать обычные файлы и папки, прослушивать, редактировать и записывать музыкальные коллекции, создавать слайд-шоу и фотоальбомы, интерактивные меню для DVD Video, печатать обложки и наклейки к компакт-дискам. Записанные диски можно защитить от несанкционированного чтения с помощью пароля со 128-битным шифрованием. Кроме того, работа в режиме Backup позволяет создавать резервные копии данных по расписанию, а при записи на CD или DVD больших файлов происходит их автоматическое сжатие. CopyToDVD 3.0.16, заменившая собой ранее известную программу CopyToCD этой же компании, отличается удобным дружественным интерфейсом и позволяет записывать CD-R(W)/DVD^hckh од- 177
ним щелчком мыши. Программа поддерживает CD-R(W)-, DVD- R(W)-, DVD+R(W)- и DVD-RAM-приводы и обладает возможностью перезаписи. Копировать на компакт-диски можно любую информацию: файлы, папки, изображения, музыку, а при записи на DVD — и видеоинформацию. Elbys CloneDVD 2.3 предназначена для создания полностью идентичных копий DVD-фильмов и их записи на DVD-носители. Программа может полностью переписать содержимое диска, что позволяет создавать копии в режиме «один к одному» со всеми меню, субтитрами и т.д. CloneDVD поддерживает работу с большинством существующих приводов и обладает хорошим быстродействием и качеством записи. SureThing CD Labeler 4.0 считается лучшим специализированным прикладным пакетом для подготовки этикеток и обложек для компакт-дисков и позволяет быстро создать профессиональный графический дизайн диска без специальной подготовки и опыта подобной работы. Поддерживает все популярные форматы обложек и этикеток CD, включает множество профессионально подготовленных шаблонов. База шаблонов SureThing CD Labeler содержит свыше тысячи различных фонов, профессиональных фотографий, текстур и градиентов. Кроме того, в библиотеке имеются более 2 тыс. клип-артов и высококачественных изображений специальных знаков, символов и логотипов, принятых в сфере производства CD- и DVD-дисков. Программы просмотра и конвертации Сегодня вся техническая документация поставляется в формате *.pdf. Для работы с этим форматом существует удобная бесплатная утилита Acrobat Reader от компании Adobe. Однако часто необходимо не только просмотреть документ, но и извлечь из него текст и/ или изображение. С этой целью проще всего воспользоваться соответствующей утилитой, например PDF2Word. Кроме того, в настоящее время практически каждый пользователь работает с медиаинформацией, для просмотра которой чаще всего необходим целый набор просмотрщиков: для картинок один, для видео - другой, для прослушивания музыки — третий. Однако все эти программы удобнее заменить на одну универсальную, например на MegaView, которая считается лидером в данном классе ПО, или в 178
качестве альтернативы выбрать какое-нибудь бесплатное приложение, например IrfanView. Все эти программы работают под управлением Windows 98/NT/Me/2000/XP. Adobe Reader 6.0 (известный как Acrobat Reader) — популярная программа для просмотра и печати PDF-документов, которая совершенно необходима, поскольку значительное количество файлов, скачиваемых из Internet, представлены сегодня в формате PDF. Версия 6.0 поддерживает проигрывание встроенных в документы файлов QuickTime, Macromedia Flash, Real и Windows Media, распечатку документов через беспроводные сети и ряд других усовершенствований. PDF2Word 1.3 — удобная и простая утилита, предназначенная для экспорта изображений и текста из PDF-файла в документ Word в формате *.rtf. Для конвертации PDF-файла достаточно его открыть, а результатом по окончании работы PDF2Word станет появление в той же папке копии экспортируемого файла, но уже в формате RTF. MegaView 7.05 позволяет просматривать не только картинки, видео и звук, но и другие файлы, поддерживая в общей сложности свыше 100 различных форматов. Наряду с просмотром файлов в MegaView реализованы многие функции редактирования. Для графики это вращение, масштабирование, добавление текста, применение спецэффектов, удаление эффекта «красных глаз», корректировка фотографий. Редактировать можно не только графику, но и ряд офисных форматов, например DOC и XLS. Кроме того, программа позволяет производить различные операции с файлами (переименовывать, копировать, удалять, архивировать файлы прямо на CD или DVD и др.) и создавать Web-альбомы на основе серии встроенных шаблонов. IrfanView 3.91 — компактная и в то же время мощная утилита для просмотра файлов свыше полусотни графических форматов, а также наиболее распространенных аудио- и видеоформатов. IrfanView обладает множеством достоинств. В программе имеются базовые средства редактирования графики (вращение, масштабирование, работа с палитрой и применение плагинов), можно конвертировать файлы из одного формата в другой, делать скриншоты с экрана и заставки для рабочего стола. В программе также предусмотрены режимы показа слайд-шоу и миниатюр, а также функция вытаскивания иконок 179
из *.ехе- и *.dll-файлов. Кроме того, возможности программы можно значительно расширить за счет серии подключаемых плагинов. Программы сравнения файлов Сравнивать различные модификации файлов пользователям приходится очень часто. Причем выясняется не то, какая версия файла является более свежей, а то, что именно изменилось в файлах в плане содержимого и есть ли файлы-дубликаты. Приходится сравнивать текстовые документы и документы Excel. Многим необходимо разобраться в хранящихся на диске изображениях, пытаясь найти нужную картинку. А есть еще HTML-страницы, PDF-файлы и пр. Самой универсальной в этой области, охватывающей большое количество типов файлов, является программа Compare Suite, выпущенная компанией AKS-LABS в конце 2003 г. Возможностей у нее много, но и стоимость высокая. Поэтому для сравнения XLS-файлов можно воспользоваться дешевой специализированной программой Excel Compare, а для сравнения изображений — программами ImageDupe или ImageDupeless, примерно равнозначными как по цене, так и по возможностям. Все программы работают под управлением Windows 98/NT/Me/2000/XP. Compare Suite 1.0 — удобный инструмент для сравнения файлов и папок с возможностью генерации различных отчетов, отражающих статистические изменения и фиксирующих различия в сравниваемых файлах и папках. С ее помощью можно сравнить как обычные текстовые файлы, так и документы в форматах MS Office, HTML- страницы, PDF-документы и двоичные файлы. Последняя версия программы 1.0.0.12 может сравнивать ZIP-архивы, показывая в отчете различие в количестве файлов в архиве, а также имена файлов с размерами и датой для каждого. Compare Suite работает очень быстро, например Excel-документы в полторы тысячи строк она может сравнить за считанные секунды. Поэтому программа представляет интерес для всех, кому часто приходится заниматься сравнением и анализом файлов и папок, в частности для программистов, системных администраторов, секретарей, юристов и т.п. Excel Compare 1.0 предназначена для сравнения файлов Microsoft Excel, поддерживает все версии Excel и очень удобна для анализа сделанных изменений. Результаты сравнения размещаются на новом 180
созданном листе Excel, который показывает измененные, добавленные и удаленные данные, сохраняя при этом формат оригинала. ImageDupeless 1.5.4.2 предназначена для поиска похожих изображений независимо от их размера, формата, разрешения и т.п. и поддерживает основные графические форматы. Возможна каталогизация размещенных на CD галерей и дальнейшая работа с ними. При этом сравнение вновь поступающих изображений с уже имеющимися в галерее занимает значительно меньше времени, чем полное повторное сканирование галереи. Предусмотрены внутренние средства сравнения, удаления, перемещения и обновления файлов и изменения привязки корневого каталога галереи. ImageDupe 1.2.2.0, предназначенная для поиска дубликатов графических файлов, способна находить одинаковые картинки независимо от их размера и названия. При этом она ищет не только одинаковые изображения, но и просто похожие. ImageDupe крайне проста в работе, поддерживает все основные графические форматы, хорошо настраивается и позволяет определить перед поиском степень подобия изображений. 181
4. Прикладное программное обеспечение Прикладное программное обеспечение (ППО) составляют программы конечного пользователя. Это самый обширный класс программного обеспечения. В настоящее время в большинстве сфер человеческой деятельности разработаны и применяются прикладные программные продукты. Везде, где требуется выполнить большие математические расчеты или производится обработка больших объемов разнообразных данных, или требуется быстрый анализ ситуации с принятием управляющего решения, — компьютеры под управлением прикладного программного обеспечения с успехом заменяют человека. 4.1. Классификация прикладного программного обеспечения ППО, классифицируя по назначению, можно разделить на прикладные программы общего назначения и прикладные программы специального назначения (рис. 4.1). Классификация весьма условна потому, что некоторые типы программ (например, программы, обрабатывающие тексты) имеют своих представителей и в классе общего назначения (редакторы и процессоры) и в классе профессиональных программ (издательские системы). 4.1.1. Прикладное программное обеспечение обшего назначения Прикладное программное обеспечение общего назначения используется для решения наиболее общих задач информационного характера в любой сфере человеческой деятельности. Оно объединяет в себе широко используемые программы большинством пользователей персональных компьютеров, например, текстовые редакторы, электронные таблицы, графические системы, игры, развлечения. 182
Прикладное программное обеспечение (ППО) ППО общего назначения Программы - обработчики текста Текстовые редакторы Текстовые процессоры Электронные таблицы СУБД Графические информационные системы Редакторы векторной графики Редакторы растровой графики Интегрированные системы (офис) Переводчики, игры, развлечения и др. ППО специального назначения Программы - обработчики текста Издательские системы Специализированные текстовые редакторы СУБД информационных систем Интегрированные пакеты специализированные (математические, офисные) Геоинформацион ные системы САПР, АРМ ЛСНИИ и др. Рис. 4.1. Классификация ППО 183
Программы, обрабатывающие тексты. К ним относятся текстовые редакторы, текстовые процессоры. Граница между ними весьма условна. Текстовые редакторы (NotePad — разработка Microsoft), как будет показано ниже, способны выполнять основные функции редактирования: набор, внесение исправлений, сохранение, работа с фрагментами. Текстовые процессоры (Word — разработка Microsoft), кроме того, имеют возможности разнообразного оформления, а некоторые позволяют создавать документы, предназначенные для просмотра не в бумажном виде, а на компьютере (электронные документы). На уровне специального ППО, программы, обрабатывающие тексты, представлены специализированными текстовыми редакторами (MultiEdit — разработка American Cybernetic, TgX) и издательскими системами, которые автоматизируют процесс верстки полиграфических изданий. Издательские системы отличаются расширенными средствами управления взаимодействия текста с параметрами страницы и графическими объектами, но имеют более слабые возможности по автоматизации ввода и редактирования текста. Их целесообразно применять к документам, которые предварительно обработаны в текстовых процессорах и графических редакторах. Электронные таблицы. Основное назначение электронных таблиц — обработка различных типов данных, представляющихся в табличной форме, например, планово-финансовые, бухгалтерские документы, небольшие инженерные расчеты (Excel — разработка Microsoft, Lotus 1-2-3 — разработка Lotus). Основное преимущество электронных таблиц, в сравнении с текстовыми процессорами (где тоже могут вестись таблицы, производиться небольшие вычисления и сортировка), в том, что содержание одних ячеек может меняться автоматически в соответствии с изменением содержания других. Иными словами, ячейки могут быть функционально зависимы. Кроме того, табличные процессоры имеют возможности ведения небольших баз данных и визуализации данных в виде различных таблиц, диаграмм и графиков, т.е. средства ведения таблиц, средства табличных расчетов подкрепляются возможностями создания наглядных отчетов. Они находят широкое применение в бухгалтерском учете, анализе финансовых и торговых рынков, средствах обработки результатов научных и экономических экспериментов, т.е. в автоматизации регулярно повторяемых вычислений больших объемов числовых и текстовых данных, представляющих табличные структуры. 184
Системы управления базами данных (СУБД). Программы этого класса (Access разработка Microsoft) позволяют работать с большими объемами структурированных данных — базами данных (как правило, это табличные структуры). В функции СУБД входит: описание данных, доступ к данным, поиск, отбор данных по определенным критериям. Большинство современных СУБД позволяют создавать небольшие программы обработки данных на встроенных языках, имеют оформительские возможности, позволяющие на основе собранных и обработанных данных создать отчет. Множество СУБД, также как и текстовые процессоры, имеют своих представителей и в ППО общего и в ППО специального назначения. На уровне ППО общего назначения — это настольные СУБД, на уровне специальном — это большие СУБД, составляющие основу информационных систем и позволяющие работать в компьютерных сетях. Графические системы. Это программы, предназначенные для работы с графическими изображениями. К ним относятся редакторы растровой и векторной графики, программы обработки трехмерной графики (ЗD-редакторы). Растровые редакторы для представления изображений используют растры (см. главу 1), т.е. совокупности точек, имеющих свой цвет и яркость. В них удобно обрабатывать фотографии и объекты, имеющие мягкие цветовые переходы. Основа векторного представления — линия (ее уравнение). Векторные редакторы удобны для работы с чертежами и рисованными картинками. Редакторы трехмерной графики используются для создания пространственных графических композиций, позволяют проследить взаимодействия трехмерных объектов между собой и трехмерных объектов с источником света. Интегрированные программные средства. Отдельные программы, являясь мощным средством решения круга прикладных задач, не могут в полной мере удовлетворить пользователя. Например, выборку данных, предоставленную СУБД, бывает удобно обработать с помощью электронных таблиц, результаты, оформленные в виде наглядных таблиц, поместить в отчет, представляющий собой текстовый документ, который был составлен в текстовом процессоре. Для совместной работы нескольких программ требуется и унификация форматов обрабатываемых файлов. Такие программные пакеты называются интегрированными программными средствами. Наиболее распространенный продукт этого класса — пакет MS Office (разра- 185
ботка Microsoft), который кроме текстового процессора MS Word, табличного процессора MS Excel и СУБД MS Access интегрирует в себе такие офисные программные средства, как система разработки презентаций MS Power Point, электронный организатор MS Outlook и др. Программные средства для решения прикладных математических (статистических) задач позволяют производить математические расчеты: решение уравнений и систем уравнений и т.д., некоторые пакеты позволяют производить аналитические (символьные) вычисления: дифференцирование, интегрирование и т.д. Переводчики. Игры. Развлечения. Это класс популярных программ, не требующий больших комментариев. Переводчики обычно работают резидентно, т.е. в любом тексте на иностранном языке можно выделить переводимый фрагмент и после нажатия определенной комбинации клавиш предъявляется окно с переводом или возможные варианты перевода слова. Игры очень распространены, их создано огромное количество. Среди них можно выделить следующие типовые сценарии: игры на опережение (на мастерство), азартные игры, логические игры, обучающие игры. Развлечения — прикладные программы, позволяющие осуществлять просмотр слайдов, прослушивание звуковых файлов, видеофайлов. 4.1.2. Прикладное программное обеспечение спеииального назначения Решает более узкие задачи, а также задачи профессионального характера в различных предметных областях. Информационные системы (ИС), предоставляющие широкие возможности в: • управлении предприятием — это склад, документооборот офиса; • бухгалтерском учете — это системы, имеющие функции текстовых, табличных редакторов и СУБД. Предназначены для автоматизации подготовки начальных бухгалтерских документов предприятия и их учета, регулярных отчетов по итогам производственной, хозяйственной и финансовой деятельности в фор- 186
ме, приемлемой для налоговых органов, внебюджетных фондов и органов статистического учета; • анализе экономической и финансовой деятельности; их используют в банковских и биржевых структурах. Они позволяют контролировать и прогнозировать ситуацию на финансовых, торговых рынках и рынках сырья, выполнять анализ текущих событий, готовить отчеты. Экспертные системы представляют собой дальнейшее развитие систем управления базами данных. Они предназначены для анализа данных, хранящихся в базах знаний. В отличие от СУБД, позволяющих производить операции манипуляции данными, экспертные системы производят логический анализ данных, имеют функции самообучения. Системы автоматизированного проектирования — предназначены для автоматизации процессов конструирования, применяются в машиностроении, строительстве, архитектуре. Они позволяют создавать чертежную документацию, адаптированную в конкретной предметной области, а также имеют справочники, средства проведения расчетов. Профессиональные программные продукты в настоящее время получили широчайшее развитие. Это бухгалтерские системы, автоматизированные системы управления, автоматизированные системы научных исследований и многие другие. 4.2. Текстовые редакторы, процессоры Со времен изобретения письменности текстовые документы используются для хранения и передачи данных. В современном понимании текстовым документом является и короткая записка, и толстая иллюстрированная книга. Важным элементом в текстовых документах является выделение смысловых фрагментов, таких как слово, предложение, абзац, колонтитул, колонцифра, колонки, стили оформления. Кратко опишем их. 187
Символ — это отдельный знак (литера) в тексте, ему в соответствие ставится код; для буквенных символов указывается национальная принадлежность. Словом назовем часть текста между двумя пробелами. Чтобы подчеркнуть важную мысль, высказываемую в тексте, слово или несколько слов могут выделяться шрифтом. Предложение — часть текста между двумя точками. Мелкие структурные элементы разбиваются на предложения. Чтобы передать оттенки настроения в предложениях, используют знаки препинания. Абзац — часть текста между двумя символами перевод строки (в редакторах это соответствует нажатию клавиши Enter). Если документ большой и предназначен для печати, то используются средства структурирования текста: главы, параграфы. Названия их могут выноситься в колонтитулы. Колонтитулы — это надписи, появляющиеся на каждой странице текстового документа вверху или внизу (например, на каждой левой странице книги в колонтитуле может быть название главы, на каждой правой — название параграфа). Номер страницы — это разновидность колонтитула, называемая колонцифрой. В печатных документах вышеописанные приемы оформления текста называются форматированием. Примечание — пояснение к отдельному слову или предложению, размещаемое в нижней части страницы. Сноска — комментарий, содержащий ссылку на другой литературный источник. Кадр — рамка, служащая для размещения текста, рисунка, таблицы; может обтекаться текстом. Стиль — набор способов оформления фрагментов документа. Раздел — отдельная часть документа, в пределах которой можно установить поля, колонтитулы. Научные тексты, как правило, сопровождаются таблицами, формулами, диаграммами. Современные информационные технологии предоставляют возможность создания текстового документа, ориентированного не на печатную страницу, а на просмотр документа с экрана монитора. Такие документы называются электронными, они могут включать в себя кроме текстовых данных, таблиц, диаграмм, фотографий еще и различные анимационные картинки, звуковые файлы, гиперссылки (т.е. ссылки на файл в собственном компьютере или в Интернете). 188
В связи с многообразием возможностей создания и оформления текстовых документов, пользователю предоставляется многообразие программных продуктов по работе с этими документами. Условно их можно разбить на текстовые редакторы и текстовые процессоры. Текстовые редакторы — это программы для создания и редактирования текстовых документов. Редактирование текста — это комплекс операций по внутренней (смысловой) и внешней (оформительской) работе над текстом. Каждый текст можно «кроить», т.е. вырезать из него куски, «склеивать» их, вставлять в рабочий материал части из других текстов, менять их местами и пр. Можно изменять расположение текста на странице, формат шрифта отдельных символов, слов и целых абзацев, вставлять в текст иллюстрации (рисунки, графики, схемы и пр.). Текстовые редакторы обеспечивают основные возможности по подготовке небольших и несложных документов. Сюда входят следующие простые операции: • ввод алфавитно-цифровой информации; • перемещение по набранному тексту; • вставка или удаление символов. А также более сложные операции по работе с блоками (фрагментами) текста: • выделение блока; • удаление блока; • копирование, перемещение, вставка блока; • дополнительные удобства (возможность поиска фрагмента, поиск с заменой, печать документа и т.д.). Большинство текстовых редакторов ориентировано на работу с чисто текстовыми файлами, среди которых могут быть тексты программ, написанные на различных языках, конфигурационные файлы, файлы настройки и др. Ярким представителем таких программных продуктов является MultiEdit (начиная с версий 5.0). Этот текстовый процессор имеет мощную систему контекстной замены, встроенный язык макрокоманд на уровне Visual Basic, средства поддержки внутренней среды, средства помощи при наборе ключевых слов. Текстовые процессоры — это программы, предоставляющие более широкий круг (в сравнении с редакторами) возможностей форматирования (шрифты, таблицы, формулы), создания документов, содержащих данные разных типов (вставка графических, звуковых дан- 189
ных), создания электронных документов. Типичным представителем этой группы является текстовый процессор Word. Существует еще одна отдельная группа текстовых процессоров — это настольные издательские системы. В чем-то они похожи на обычные текстовые процессоры, позволяют набирать и форматировать документ, но, как правило, используются для верстки. Издательские системы имеют широкий спектр читаемых форматов, т.е. возможность работать с файлами, созданными во многих других программах: текстовых, графических, чертежных. Текст легко можно вставить внутрь любого рисунка, и рисунок можно вставить в текст; кроме того, имеются средства для рисования простых фигур внутри самой программы. В цветных изданиях есть возможность поработать с цветовой гаммой, в полиграфии это называют разложением цвета на отдельные составляющие. Следует отметить, что растущие возможности текстовых процессоров постепенно приближают их к издательским системам, и такие процессоры, как Word, в состоянии обеспечить набор и распечатку не очень больших изданий. 4.2.1. Программа Блокнот (flotePad) Общие функции редактирования рассмотрим на примере редактора NotePad (блокнот), программы, встраиваемой в операционные системы серии Windows 9x (разработка Microsoft). Блокнот предназначен для создания небольших, объемом до 50 килобайт, неформатированных текстов. Создаваемые файлы имеют текстовый формат *.txt в кодовой таблице Windows 1251. Перечисленные скромные возможности определяют область применения программы как редактора для создания коротких записок, текстов управляющих и системных файлов. Программа запускается из меню ПУСК ► ПРОГРАММЫ ► СТАНДАРТНЫЕ ► БЛОКНОТ. Набор и редактирование текста. На рабочем поле редактора присутствует вертикальная мигающая черта — курсор. Курсор — это точка ввода текста, т.е. нажатие клавиши на алфавитно-цифровой клавиатуре приводит к появлению литеры слева от курсора. Заполненная строка переводится автоматически в соответствии с размерами страницы. 190
Курсор перемещается клавишами управления курсора или щелчком мыши в точку, где требуется внести исправление. Набор нового текста раздвигает и вставляет новый текст в ранее написанный. Удаление символа слева от курсора производится клавишей Backspace, справа — клавишей del. Если необходимо редактировать несколько слов или предложений, они сначала выделяются как блок, для чего по выделяемому блоку перемещают курсор с нажатой клавишей Shift или перемещают по тексту указатель мыши с нажатой левой кнопкой. При этом выделенный блок отображается белыми символами на черном фоне (говорят «в инверсных цветах»). Затем вызывается контекстное меню (щелчком правой кнопкой мыши) или меню ПРАВКА и выбирается необходимый пункт (рис. 4.2), например, удалить, копировать или вырезать выделенный блок. Рис. 4.2. Окно программы NotePad Копирование блока производится в буфер обмена. Далее, в любом месте, где будет установлен курсор, можно сделать вставку содержимого буфера посредством, например, обращения к контекстному меню. Сохранение документа на диске и доступ к нему, поиск. Всякий раз, создавая документ, следует тут же его сохранить, т.е. обратиться к меню ФАЙЛ ► СОХРАНИТЬ КАК; в дальнейшем, внося изменения в документ, следует обращаться к меню ФАЙЛ ► СОХРАНИТЬ. Оба эти меню вызывают стандартный файлер сохранения (рис 4.3). 191
Рис. 4.3. Окно Сохранение В окне «Папка» (раскрыв список) надо выбрать папку, в ко- торую будет происходить сохранение. В окне «Имя файла» — указать имя файла, затем щелкнуть на кнопке «Сохранить». По мере изменения документа, его следует сохранять вновь со старым именем (меню ФАЙЛ ► СОХРАНИТЬ). По умолчанию сохранение происходит по старому адресу, без вызова диалогового окна. Сохранение документа происходит в файловой системе Windows. Она, как известно, является иерархической структурой, а это дает большие удобства для упорядоченного ведения архива документов. Доступ к документу осуществляется через меню ФАЙЛ ► ОТКРЫТЬ, вызывающий диалоговое окно, аналогичное окну сохранения. При этом необходимо выбрать загружаемый файл и нажать кнопку «Открыть». Меню ПОИСК ► НАЙТИ вызывает окно, в котором можно набрать искомое слово или сочетание слов в окне ОБРАЗЕЦ и указать направление поиска вверх или вниз. Поиск с заменой в «блокноте» отсутствует. 192
Элементы форматирования текста Отдельные части текста в «Блокноте» не форматируются, но имеется возможность отобразить весь текст в одном из перечисленных в меню ПРАВКА ► ШРИФТ шрифтов. Шрифты по способу создания изображения бывают растровые и векторные. Растровый шрифт получается на основе некоторой матрицы пикселей (экранных точек), векторный — на основе координат точек, элементарных векторов, уравнений линий. Набор из четырех основных шрифтов — обычный, курсив, полужирный, полужирный курсив — в совокупности называется гарнитурой шрифта. Каждая гарнитура имеет свое наименование, например, Arial, Times New Roman, Tahoma и другие. Каждой гарнитуре в системной папке Windows\Fonts соответствует один файл для векторного шрифта или несколько файлов (по числу размеров) для растрового шрифта. Растровые шрифты обычно бывают моноширинными, т.е. все буквы одной высоты имеют одинаковую ширину, как в пишущей машинке. Например, русская буква «Щ» и латинская буква «I» будут иметь в написании одинаковую ширину, что не улучшает внешний вид текста. Этот недостаток исправлен в векторных шрифтах, которые обычно являются пропорциональными, т.е. ширина определяется начертанием. На печати текст, выполненный пропорциональными шрифтами, выглядит лучше моноширинных, но выравнивание текста пробелами становится невозможным. Вертикальный размер шрифта (именно он понимается под размером шрифта) измеряется в пунктах, один пункт равен 1/72 дюйма — примерно 0,353 мм. Шрифт размером 10 пунктов, его называют десятый кегль, часто используется в книгах. Четырнадцатым кеглем писала пишущая машинка, и этот размер шрифта часто применяется сейчас при составлении различных документов. Еще одно преимущество векторных шрифтов — это их масштабируемость, т.е. все размеры и формы символов шрифта указанной гарнитуры каждый раз пересчитываются из некоторой единой математической заготовки, которой сообщается вертикальный размер. Печать. Готовый документ можно распечатать на принтере. Для этого предварительно необходимо указать параметры печатной страницы. Меню ФАЙЛ ► МАКЕТ СТРАНИЦЫ. В появившемся диалоговом окне следует указать размер бумажного листа (формат), ориентацию {книжную — текст вдоль страницы 7. Информатика 193
или альбомную — текст поперек страницы), размеры полей, при необходимости колонтитулы, после чего нажать кнопку «Принтер» того же окна. Произойдет печать листа. Если макет страницы не изменяется, то достаточно выполнить команду меню ФАЙЛ ► ПЕЧАТЬ. 4.2.2. Текстовый процессор WordPadI Дальнейшее развитие возможностей текстового редактора получено в текстовом процессоре WordPad, который, также как и «Блокнот», встроен в операционные системы Windows 9X. Запуск его происходит через ПУСК ► ПРОГРАММЫ ► СТАНДАРТНЫЕ ► WordPad. Вид окна его показан на рис. 4.4. Кроме известной строки меню еще введены: • две панели инструментов для быстрого доступа к часто используемым пунктам меню (одна называется стандартная, другая — форматирование); • линейка, позволяющая визуально устанавливать отступы; • строка состояния, дающая дополнительную информацию. Рис. 4.4. Окно программы WordPad На панелях инструментов собраны пиктограммы наиболее часто встречающихся команд меню: создать, открыть, сохранить, пена- тать, копировать и др. Щелчок по пиктограмме равносилен выполнению команды меню, но доступ более удобен. Информацию о на- 194
значении значка можно получить с помощью зависания (всплывающая подсказка). Любой из элементов окна может быть установлен или удален с помощью соответствующих команд из меню ВИД. Попутно заметим, что возможность различными способами (через меню или панель инструментов, или комбинацию клавиш, т.е. «горячие клавиши») выполнить одну и ту же команду, является элементом гибкого интерфейса, а возможность получения всплывающей подсказки — элемент дружественного интерфейса. Форматы срайлоВ сонранения документа Технически сохранение документа происходит аналогично «Блокноту». Созданный в WordPad текстовый документ может быть записан в файл одного из следующих форматов: • текстовый документ MS-DOS в кодировке ASCII CP-866 расширение .txt; • текстовый документ Windows в кодировке Windows-1251 расширение .txt; • документ Word, расширение .doc; • файл RTF, расширение .rtf; • документ Unicode. Многообразие форматов дает возможность совместимости документов, написанных в разных редакторах, и возможность конвертирования (перевода) документа из одного формата в другой при помощи WordPad. Редактирование Все приемы создания, редактирования, сохранения текста, описанные в «Блокноте», применимы и в WordPad. Но создатели WordPad пошли дальше. Они предусмотрели возможность отмены последних действии нажатием кнопки В меню ПРАВКА есть команды поиска текста, подобно «Блокноту», и добавлен поиск с заменой. Форматирование документа WordPad допускает весьма широкие возможности форматирования текста. Это форматирование шрифта, абзацев, маркированных 195
списков, табуляции. Находятся они в пунктах меню ФОРМАТ, и некоторые дублируются на панели инструментов «Форматирование». Форматирование шрифта позволяет форматировать и весь текст (как в «Блокноте»), и абзацы каждый в отдельности, и отдельное слово, и отдельную букву. Меню ФОРМАТ ► ШРИФТ или кнопки панели инструментов предоставляет диалоговое окно выбора гарнитуры и начертания шрифта, размера, атрибутов (зачеркнутый и подчеркнутый), цвета изображаемых букв. Тоже можно сделать, используя кнопки панели «Форматирование». Важно, что при этом соблюдается принцип эквивалентности экранного и печатного изображения. Говорят, что выполняется принцип WYSIWYG (What You See Is What You Get — «что видишь (на экране), то и получишь (при печати на листе)»). Форматирование абзаца дает возможность установить абзацный отступ, он еще называется красная строка, отступы справа и слева. Отступы проще и наглядней устанавливаются простым перетаскиванием движков на линейке (рис. 4.5). Отступ красной строки Перетаскивание за прямоугольник приводит к одновременному движению отступа слева и отступа красной строки Отступ слева Отступ справа Рис. 4.5. Форматирование абзаца Процессор WordPad может использовать как пропорциональные (Arial, Times), так и моноширинные (Courier) шрифты, поэтому выравнивание пробелами нецелесообразно, следовательно, используются различные виды машинного выравнивания: слева, справа по центру. С той же целью используется и табуляция. При форматировании абзаца предварительно выделять его не обязательно, достаточно, чтобы курсор находился в любой точке абзаца. 196
Табуляция используется в тех случаях, когда в тексте требуется сформировать ровные столбцы. Установить позиции табулятора можно разными способами, но проще расставить их непосредственно, щелкая мышью по линейке в местах, где надо установить табулятор. Перемещение курсора от одной позиции табулирования (значок на линейке ) к другой осуществляется нажатием клавиши Tab. Маркеры применяются, когда в тексте требуется поместить маркированный список, но в WordPad имеется только один вид маркера — черная круглая точка •. Перед набором маркированного списка нажимаем кнопку на панели инструментов, после набора каж- дого элемента списка нажимаем Enter. Оформление списка, т.е. установка значка маркера и отступов, производится автоматически. Вставка объектов в текстовый документ WordPad позволяет делать вставки рисунков, формул, звуковых и видеофайлов таблиц Excel, презентаций Power Point и других объектов. Возможность эта основана на технологии внедрения и связывания объектов (OLE — Object Linking and Embedding, разработчик Microsoft), позволяющей создавать комплексные документы из разных типов данных, обеспечивать совместную работу нескольких приложений при подготовке одного документа, копировать и переносить объекты между приложениями. Выполняется операция следующим образом: 1. Меню ВСТАВКА ► ОБЪЕКТ вызывает окно «Вставка Объекта», в котором происходит выбор объекта из списка. 2. Устанавливается переключатель «Создать новый /Создать из файла»; если объект создается из файла, то предоставляется кнопка «Обзор», вызывающая диалоговое окно выбора файла. 3. Одновременно требуется установить галочку в переключателе «Связь», если объект связывается, и не устанавливать ее, если внедряется. 4. Установить галочку в переключателе «В виде значка», если внедренный объект будет раскрываться при нажатии на значок. Внедрение предполагает, что новый файл вольется в основной документ. Связывание предполагает, что в основном документе бу- 197
дет помещена ссылка на связываемый файл. Внедрение создает целостный документ, который увеличивается в размерах (по сравнению со связанным), но допускает его передачу по сетям, тиражирование без оглядки на целостность связей. Связанный документ имеет меньший объем и предоставляет большие удобства для работы нескольких разработчиков над документом в компьютерной сети, так как каждый пользователь видит самую свежую версию тех частей документа, которые выполняют его коллеги. Печать документа Перед печатью документа полезно нажать на кнопку «Предварительный просмотр», которая позволит посмотреть на страницу целиком, и если ее внешний вид в целом нас устраивает, то можно нажать кнопку «Печать», находящуюся на том же окне. 4.2.3. Текстовый процессор Word Текстовый процессор Word сейчас один из самых популярных программных продуктов в мире. Его последние версии представляют мощный программный конгломерат, объединяющий около тысячи различных возможностей по работе с текстовыми и электронными документами. Ранние версии (а именно — до Word 5.0) работали под управлением операционной системы MS-DOS. Начиная с версии Word6.0 был воплощен принцип эквивалентности экранного и печатного изображения WYSIWYG. Седьмая версия (она же Word 95) вышла уже не как самостоятельный программный продукт, а в составе интегрированного пакета программ Microsoft Office офисного назначения. Восьмая версия (Word 8.0 или 97) вышла в составе пакета Microsoft Office 97, была ориентирована на использование кодировки Unicode, там же появились средства по работе с электронными документами. Версия Word 9.0 или Word 2000 (она рассматривается в настоящей книге) входит в состав пакета Microsoft Office 2000. В ней расширены возможности работы в сети, т.е. появились средства работы группы разработчиков, работающих в корпоративной компьютерной сети над одним проектом. 198
Рабочее окно текстового процессора Рабочее окно текстового процессора внешне сходно с рабочим окном WordPad, состоит из строки меню, по умолчанию двух панелей инструментов, а вообще их шестнадцать, рабочего поля, строки состояния. В зависимости от настроек, вид рабочего окна может изменяться. Режимы отображения документов на экране. В меню ВИД имеются команды ОБЫЧНЫЙ, WEB-ДОКУМЕНТА, РАЗМЕТКА СТРАНИЦЫ, СТРУКТУРА, которые устанавливают режим отображения документа. В режиме ОБЫЧНЫЙ (кнопка щ в левом нижнем углу) на экране отображается текст без номеров страниц, колонтитулов, вертикальной линейки и рисунков, выполненных средствами Word. Таким образом, достигается максимальная экономия площади экрана. Режим ОБЫЧНЫЙ удобен в случаях быстрого набора текста на ранних этапах подготовки документа. В режиме WEB-ДОКУМЕНТА |Ц рабочее окно делится на две части: слева размещаются названия глав, одно из названий выделено, справа сам текст выделенной главы. Щелчок по названию главы справа приводит к появлению ее текста справа. Режим удобен при работе с документами с большим объемом. В режиме РАЗМЕТКИ (кнопка Щ в полной мере выполняется принцип WYSIWYG, т.е. на экране отображается страница (ее часть) с колонтитулами, рисунками, полями. Режим удобен для оформления текстового документа. В режиме СТРУКТУРА jg документ отображается с выделением заголовков. Одновременно вызывается панель инструментов СТРУКТУРА, имеющая инструменты для навигации в большом документе и работе с заголовками. Применяется режим в работе над большими документами. В том же меню ВИД есть еще два режима отображения ВО ВЕСЬ ЭКРАН и СХЕМА ДОКУМЕНТА. Режим ВО ВЕСЬ ЭКРАН позволяет временно убрать строку меню, панели инструментов, строку состояния — все кроме текста, тем самым максимально расширить полезную площадь экрана. Режим удобен при чтении большого документа. Режим СХЕМА ДОКУМЕНТА, подобно режиму WEB-ДОКУ- 199
МЕНТ, делит страницу на две части — оглавления и содержания, он удобен для навигации по документу. К отображению на экране имеет отношение пункт «Масштаб» из меню ВИД, позволяющий увеличивать или уменьшать изображения на экране. Меню ФАЙЛ содержит еще два режима, используемые для предварительного просмотра документа — это ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР для печатных документов и ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР WEB-ДОКУМЕНТА для электронных документов. Панели инструментов Меню текстового процессора Word обладает свойством функциональной полноты, т.е. любая команда может быть найдена в главном меню или одном из подменю. Но постоянное обращение к меню и подменю снижает эффективность работы пользователя. Исправляет это положение наличие панелей инструментов. Меню ВИД ► ПАНЕЛИ ИНСТРУМЕНТОВ предоставляет возможность выбора необходимой по роду работ панели инструментов из раскрывающегося списка. Панели инструментов в Word настраиваемые, т.е. любые необходимые для выполняемой работы команды меню, пользователь может разместить в виде пиктограмм в строке меню или на любой из панелей инструментов. Работа с окнами Характерной особенностью Word является мультиоконность (многооконность), т.е. способность одновременно работать с несколькими документами, находящимися в различных окнах (в рамках одного открытого приложения). При вводе и редактировании текста пользователь работает в активном окне, в котором возможен доступ ко всем меню. Команда ОКНО ► УПРОРЯДОЧИТЬ ВСЕ дает возможность расположить окна документов последовательно и переходить из одного окна в другое. Создание, сохранение и редактирование текста в Word Описанные в Блокноте и WordPad средства ввода текста, работы с блоками, сохранения файла применимы и в Word'e. Кроме того, 200
они пополнены рядом возможностей (средства автоматизации ввода, средства работы с формулами, диаграммами, графическими изображениями, рисунками и др.). Создание документа В Word любой документ создается на основе некоторого образца, называемого шаблоном. Шаблон — это именованная совокупность параметров (страниц, абзацев, шрифтов и д.р.) для создания документа, сохраняемая в библиотеке шаблонов. Например, при создании документа по умолчанию (пиктограмма Q на панели инструментов СТАНДАРТНАЯ) автоматически применяется шаблон ОБЫЧНЫЙ, который предполагает: шрифтПтез New Roman, размером 12 пунктов, выравнивание слева, одинарный интервал между строками, запрет висячих строк. Но если создавать документ с помощью меню ФАЙЛ ► СОЗДАТЬ... то откроется многостраничное диалоговое окно «Создание документа», представляющее библиотеку шаблонов. Там хранятся шаблоны различных документов, записок, отчетов, факсов, WEB-страниц и др. Причем отдельные виды шаблонов имеют значок с волшебной палочкой — это Мастера (рис. 4.6). Рис. 4.6. Пиктограммы шаблонов Документ создается так: вызывается шаблон, включается режим замены нажатием клавиши Insert, и по готовому тексту набирается новый, при этом все форматные заготовки заменяемой строки сохраняются. Процесс создания шаблона с помощью Мастера еще проще: вызывается Мастер, а он является программой на языке VBA. Мастер задает ряд вопросов по существу содержания документа без форматирования, по завершении диалога выдается готовый форматированный документ. 201
Сохранение документа Сохранение документа аналогично WordPad, по умолчанию оно производится в папку «МОИ ДОКУМЕНТЫ», но диалоговое окно ввода позволяет легко сохранять файлы и в некоторых других папках: ЖУРНАЛ, РАБОЧИЙ СТОЛ, ИЗБРАННОЕ, WEB-ПАПКИ, их кнопки находятся в левой части диалогового окна. Журнал — это виртуальная папка, в которой запоминаются все файлы и папки, использовавшиеся в последние две недели. Любую из папок можно открыть и поместить туда сохраняемый файл. Избранное — папка для хранения ярлыков Web-страниц. Используется в основном для открытия документов. Web-папки — папки, хранящиеся не на локальном компьютере, а в сети Internet (WWW Web-сервере) или корпоративной сети Intranet. Пополнительные Возможности ВВоЭо текста Текстовый процессор Word, как известно, является многооконным приложением, что создает удобства при одновременной работе с несколькими документами, например, при создании документа на основе нескольких источников. Для этого Word (как и все приложения Windows) использует временную область памяти — Буфер Обмена. В него помещаются перемещаемые и копируемые данные. Обмен данными можно производить между разными приложениями Windows, и эти данные могут быть в текстовом, графическом или смешанном виде. В значительной степени позволяет ускорить ввод текста АВТОЗАМЕНА и АВТОТЕКСТ. С помощью автозамены можно создать сокращения для часто встречающихся в тексте слов и словосочетаний, расшифровывать аббревиатуры или исправлять распространенные ошибки, например, неверно набранное слово «очепятка» — автоматически заменять на «опечатка», сокращение СУБД — на «система управления базой данных», ц. — заменять на слово Word и т.п. Для добавления новой автозамены надо зайти в меню СЕРВИС ► АВТОЗАМЕНА и в поле ввода «Заменить» набрать слово или аббревиатуру, которое следует автоматически заменять в процессе 202
ввода. В поле ввода «На» набрать текст, который будет появляться взамен указанного и щелкнуть по кнопке «Добавить». Автотекст в Word представлен двумя функциями: автозавершением и автотекстом. Автозавершение реализуется, если пользователь набирает четыре буквы из слова, хранящегося в словаре автотекста, возникает всплывающая подсказка с полным текстом фрагмента, а нажатие Enter завершает набор фрагмента. Автотекст можно выбрать из списка ВСТАВКА ► АВТОТЕКСТ Отличия Автотекста: Автотекст позволяет запоминать отформатированные фрагменты текста. Элементами Автотекста могут быть рисунки, графики, таблицы. Форматирование текста Форматирование текста в Word выполняется с помощью меню ФОРМАТ Наиболее часто используемые команды меню вынесены в панель инструментов ФОРМАТИРОВАНИЕ в виде кнопок. Меню ФОРМАТ содержит возможности выбора параметров: шрифта, абзаца, заливки, списков, рамок, стиля и др. Параметры шрифта. Диалоговое окно имеет три вкладки: ШРИФТ, ИНТЕРВАЛ, АНИМАЦИЯ. Вкладка ШРИФТ аналогична WordPad, но имеет значительно большие возможности по видоизменению шрифта. Вкладка ИНТЕРВАЛ имеет окна ввода: МАСШТАБ, ИНТЕРВАЛ, СМЕЩЕНИЕ. Масштаб указывает ширину шрифта в процентах относительно некоторого нормального значения, т.е. при одном вертикальном размере векторный шрифт (True Type) может быть нормальным (100%), широким (200%) или узким (80%). Интервал указывает на расстояние между символами в пунктах, может быть обычный, разреженный (на 2 пункта в этом случае) или уплотненный (на 1 пункт). Смещение применяется, чтобы приподнять или опустить часть текста над остальным, смещения может не быть, может быть смеще- вверх (на 3 пт.) ние или вниз (тоже 3 пт.). Вкладка анимация предоставляет различные возможности офор- 203
мительских эффектов, например, мигающий фон, фейерверк, муравьи и т.п., применимо только для электронных документов в формате процессора. Для Web-документов он не целесообразен, так как не все браузеры поддерживают этот формат. Параметры абзаца. Диалоговое окно настроек параметров абзаца устанавливает величины отступов слева и справа абзаца, отступ красной строки, интервалы перед абзацем, после абзаца и междустрочный интервал. С каждым абзацем в Word связывается понятие уровень. В режиме «Схема документа» в левой части страницы отображаются все абзацы, уровень которых выше «основного текста» (или «обычный»). Например, «1 уровень», «2 уровень» и т.д. Причем абзацы второго уровня вкладываются в абзацы первого уровня и третьего во второй и т.д., подобно тому, как это делается с папками в проводнике. В целом, просматривая левую часть «Схемы документа» мы видим структуру его. Сделав щелчок на абзаце слева, мы вызываем соответствующий элемент текста справа, упрощая перемещения по большим документам. Создание списков. Колонки. Для создания списка необходимо войти в меню ФОРМАТ ► СПИСОК, в котором указать, какой создается список: маркированный, нумерованный или многоуровневый. При выходе из меню автоматически появляется выбранный маркер или первый номер списка. В дальнейшем, при вводе очередного пункта списка и нажатии клавиши Enter, на следующей строке появляется маркер или очередной номер списка. Выход из списка может быть сделан двойным нажатием Enter. Текст в Word может быть расположен в нескольких колонках, меню ФОРМАТ ► КОЛОНКИ (или кнопка на панели стандартная) вызывает диалоговое окно, в котором можно выбрать количество колонок, ширину и промежуток для каждой, установить их одинаковыми по ширине или задать ширину каждой. Кнопка «Применить» позволит оформить не весь текст, а только выделенную часть. Разбивка на разделы. Параметры страницы. Word позволяет разбивать документ на два раздела и больше, если необходимо установить различные параметры форматирования страницы (поля, размер бумаги, ориентацию страниц — книжную или альбомную) для разных разделов. По умолчанию эти виды форматирования применяются ко всему документу. Меню ВСТАВКА ► РАЗРЫВ. 204
Поля страницы определяют пустое пространство между текстом и краями страницы. На каждой странице есть четыре поля: левое, правое, верхнее и нижнее. Установление новых полей страницы повлечет за собой изменение полей во всем документе или, при наличии нескольких разделов, только в текущем разделе. Если нужно установить точные размеры полей страницы (и ряд других параметров) можно применить диалоговое окно ФАЙЛ ► ПАРАМЕТРЫ СТРАНИЦЫ. Стили оформления. Как известно, абзац — это часть текста между двумя нажатиями клавиши Enter, т.е. любой заголовок является абзацем. Абзац имеет несколько параметров настройки и, конечно, было бы нерационально, каждый раз набирая новый заголовок, повторять все настройки сначала. С этой целью в Word введено понятие стиля оформления. Стиль оформления — это поименованная совокупность настроек параметров оформления (шрифта, абзаца). При необходимости оформления абзаца чаще всего пользуются готовым стилем. Это ускоряет процесс набора и обеспечивает единство всех абзацев данного стиля. Некоторое количество стилевых заготовок можно увидеть в поле со списком «Стиль» на панели инструментов «Форматирование». Чтобы форматировать один абзац по стилю, достаточно курсор установить в любой точке абзаца, открыть список «Стиль» и щелкнуть по выбранному стилю. При форматировании нескольких абзацев их необходимо выделить. Если перечисленных стилей в поле «Стиль» недостаточно, можно обратиться в меню ФОРМАТ ► СТИЛЬ, которое вызовет диалоговое окно выбора стиля. В списке «Стили» выбрать необходимый стиль (в том же окне находится описание стиля и образец). Можно создать свой стиль на основе одного из выбранных, для чего нажать кнопку «Создать», которая откроет диалоговое окно «Изменение стиля». В поле «Имя» ввести имя создаваемого стиля, в поле «Основан на стиле» указать стиль, на котором он основан. Указать стиль следующего абзаца и, нажав кнопку «Формат», указать параметры шрифта, абзаца, границы, рамок и т.д. Созданные стили сохраняются вместе с документом. Если они оказались удачными, имеет смысл сохранить их отдельно от документа в виде шаблона. Тогда их можно использовать в других документах. Создать шаблон на основе готового документа можно при его 205
сохранении меню ФАЙЛ ► СОХРАНИТЬ КАК и в поле со списком «Тип файла» выбрать «Шаблон документа». В Word 2000 имеется специальное средство оформления темы. Тема объединяет в себе следующие элементы оформления: • фоновый узор; • стили заголовков и основного текста; • стиль оформления маркированных списков; • стиль графических элементов (линий). Доступ в меню осуществляется командой ФОРМАТ ► ТЕМЫ. Создание формул Текстовый процессор Word снабжен редактором формул Microsoft Equation 3.0, который позволяет создавать формульные выражения и вставлять их в текст. Формульный редактор запускается через меню ВСТАВКА ► ОБЪЕКТ, в открывшемся окне выбирается объект Microsoft Equation 3.0. Привычный вид экрана меняется на меню редактора формул и панель инструментов «Формула». Настройка параметров стиля редактора формул выполняется командой меню СТИЛЬ ► ОПРЕДЕЛИТЬ, вызывающей диалоговое окно, в котором устанавливаются форматные настройки (гарнитура, полужирный, курсив) для текста, функции, символов, чисел и т.д. Если основной текст документа разрабатывается на основе шаблона «Обычный», то хороший внешний вид формул получается при установке размеров кнопкой «По умолчанию». Для набора формул используется панель инструментов «Формула» (рис 4.7). Как видно, она имеет два ряда кнопок: верхний ряд — математические символы, нижний ряд — шаблоны формул. Шаблоны предоставляют поля ввода, в которые с клавиатуры набираются необходимый текст или символы. Рис. 4.7. Панель инструментов «Формула» 206
Робота с таблицами, рисунками, чертежами Таблица представляет собой набор данных, организованных в виде строк и столбцов. Элемент таблицы на пересечении строки и столбца называется ячейкой. Таблицы в Microsoft Word являются очень удобным и наглядным способом представления данных. С помощью таблиц организация информации в столбцах упрощается в сравнении с расстановкой табуляторов, а внешний вид улучшается. Для работы с таблицами удобно использовать панель инструментов «Таблицы и границы», проще всего она вызывается щелчком по кнопке на панели «Стандартная». Содержимое этой панели час- тично перекрывается содержимым меню «Таблица». Создание таблицы. Для создания необходимо установить курсор в место, где она будет находиться, зайти в меню «Таблица» и щелкнуть на строке «Добавить таблицу». Выбрать указателями размер таблицы, например, 4 строки и 3 столбца. Там же даются указания по линейным размерам ячеек, они могут задаваться вручную и автоматически — по умолчанию («Авто»). При этом ширина столбцов будет установлена в зависимости от содержимого ячеек. Таблицы сложной формы рационально создавать на основе простой таблицы, редактируя ее потом методом рисования. Для этого на панели инструментов «Таблицы границы» есть инструменты: «Нарисовать таблицу», «Ластик», «Тип линии», «Толщина линии», «Цвет границы», «Границы», «Заливка». Для установки клавиатурного курсора в таблицу щелкнем на нужной ячейке, после чего возможен ввод в ячейки таблицы текста. Перемещать курсор между ячейками можно клавишами перемещения курсора или мышью, щелкнув на нужной ячейке. Редактирование и оформление таблицы. Чтобы редактировать таблицу, необходимо прежде всего выделить одну или несколько ячеек, где будут производиться изменения. Выделить всю таблицу или ее часть можно, проведя по ним мышью с нажатой левой клавишей, или в меню «Таблица» подобрать нужную опцию выделения. Для изменения ширины столбца установим курсор мыши на линию разделения столбцов (при этом курсор примет вид двунаправ- 207
ленной стрелки) и перетащим ее вместе с линией на нужное место. Аналогично можно менять высоту ячеек. Чтобы очистить содержимое строки, столбца или отдельной ячейки, нужно их выделить и нажать клавишу Delete. Чтобы удалить строку, столбец или отдельную ячейку, нужно их выделить и, щелкнув на соответствующей строке в меню «Таблица», выполнить операцию. Объединить ячейки можно, выделив их, и в меню «Таблица» щелкнуть на строке «Объединить ячейки». Разбить одну или несколько ячеек таблицы можно так: • выделить ее; • щелкнуть в меню «Таблица» на строке «Разбить ячейки»; • установить параметры разбивки и нажать кнопку ОК. Когда таблица создана, в нее можно добавить новые ячейки, заливку, границы и другие элементы форматирования. Сортировка данных и вычисления в таблицах. В таблице можно производить сортировку данных по одному или нескольким столбцам. При сортировке заголовки столбцов обычно не участвуют в процессе. Щелкнем по любой ячейке столбца, по которому нужно провести сортировку. В меню ТАБЛИЦА ► СОРТИРОВКА введем дополнительную информацию о характере сортировки. Нажмем ОК — действие выполнится. В таблицах можно суммировать, вычитать, усреднять и производить другие математические действия. Наиболее распространенное из них — это вычисление общей суммы для данных столбца или строки. Кнопка «Автосумма» на панели инструментов «Таблицы и границы» позволяет автоматически посчитать сумму данных, расположенных слева, или сумму данных, расположенных выше указанной ячейки. Таблицу можно преобразовать в текст, задав те или иные разделители между данными из бывших столбцов. При этом используется меню ТАБЛИЦА ► ПРЕОБРАЗОВАТЬ В ТЕКСТ. Создание рисунка. Word позволяет создавать собственные рисунки. Средства для их создания дают возможность даже человеку без художественных способностей украшать свои документы рисованными иллюстрациями и чертежами. Для работы с векторными рисунками и чертежами в Word разработан ряд инструментов, объединен- 208
ных в панели инструментов «Рисование». Вызов ее происходит либо как обычно через меню ВИД ► ПАНЕЛИ ИНСТРУМЕНТОВ, либо нажатием пиктограммы на панели инструментов «Стандартная». Процесс создания векторного рисунка состоит из трех основных действий: 1. Вставка в документ рисованных объектов из набора графических примитивов, объединенных в пиктограмме «Автофигуры» (это линии, стрелки, фигуры). 2. Перемещение рисованных объектов по документу, изменение их размеров. 3. Видоизменение рисованных объектов, например, можно менять толщину линии, цвет текста, пропорции и форму примитивов. Для того чтобы нарисовать объект, необходимо щелкнуть мышью на его кнопке на панели инструментов «Рисование», затем с помощью протяжки развернуть объект в какой-либо области создаваемого рисунка. Для выделения только что нарисованного объекта просто щелкнем на нем. Вокруг него появятся маркеры размеров. Быстро переместить выделенный объект можно с помощью перетаскивания или клавишами управления курсором, более точное перемещение маленькими шагами получается, если клавиши управления курсором сочетать с удерживанием клавиши Ctrl. Для изменения цвета линий объекта щелкнем на списке кнопки «Цвет линии» на панели инструментов «Рисование» и выберем цвет; чтобы изменить цвет заливки объекта, щелкнем на списке кнопки «Цвет заливки» и выберем цвет заливки. Для изменения толщины или стиля линий объекта выделим объект, а затем щелкнем на кнопке «Тип линии» или «Тип штриха» соответственно. Для добавления надписи щелкнем на кнопке «Надпись». Затем щелкнем в том месте документа, где будет располагаться надпись, введем текст в текстовом окне, по окончании этого — щелкнем мышью где-нибудь в документе за пределами текстового окна. Еще одно полезное свойство предоставляет пиктограмма «Формат объекта». Выделив объект и нажав эту кнопку, мы вызываем диалоговое окно «Формат автофигуры». В нем можно установить цвет заливки, сделать ее полупрозрач- 209
ной или отказаться от нее вовсе, т.е. получить только линию по контуру (например, был круг — станет окружность). Можно установить цвет и толщину линии, а можно от нее отказаться вообще, что часто применяется в надписях, чтобы они не получались в рамках. Во вкладке «Размер» показываются размеры объекта при печати на принтер. Изменяя значения размера в «Формате автофигуры», мы изменяем объект, и это делает возможным создание небольшого чертежа в масштабе. 4.3. Электронные таблицы Решение ряда экономических задач часто приводит к обработке прямоугольных таблиц данных разных типов (текстовых, числовых). Применение для таких задач средств алгоритмических языков высокого уровня оказалось во многих случаях не эффективно. Текстовые процессоры дают возможность ведения и форматирования таблиц, но они плохо приспособлены для вычислений. Вышеуказанные причины вызвали появление программ, называемых электронными таблицами, объединяющими в себе возможности: • текстовых процессоров по созданию и форматированию таблиц; • математической обработки табличных данных; • визуализации результатов в форме таблиц, диаграмм, графиков. История развития программ обработки электронных таблиц насчитывает около двадцати лет, налицо огромный прогресс в этой области программного обеспечения. Примерами программ электронных таблиц являются Lotus 1-2-3 (Lotus), Microsoft Excel. В настоящее время наибольшее распространение получил программный комплекс Microsoft Excel. Далее мы подробно рассмотрим его. Современные программные продукты этого вида имеют: • калькуляционный (вычислительный) модуль, с помощью которого происходит обработка данных (текстовых или числовых) в таблицах; • модуль диаграмм для создания презентационной графики, который позволяет на основе числовых данных, полученных с помощью калькуляционного модуля, создать диаграммы различных типов; 210
• модуль базы данных, реализующий доступ к внешним базам данных. Электронные таблицы можно использовать для решения задач учета, составления бланков, планирования производства, расчета налогов и заработной платы, учета кадров и др. Благодаря мощным математическим функциям, имеющимся в электронных таблицах, с их помощью можно решать множество задач в области естественных и технических наук. 4.3.1. Общие сведения о табличном процессоре Excel Документом Excel является рабочая книга — это файл с произвольным именем и расширением .xls. Рабочая книга состоит из рабочих листов (в количестве от 1 до 256, каждый имеет свое имя). Один из рабочих листов является активным, т.е. в настоящий момент с ним работает пользователь. Рабочий лист представляет собой таблицу, в которой может содержаться до 65536 строк и до 256 столбцов. Строки нумеруются числами (от 1 до 65536), столбцы — латинскими буквами А, В, С, ..., Y, Z, АА, АВ, АС, .., AZ, ВА, ..., IV. Ячейки. На пересечении столбцов и строк находятся ячейки. Каждая ячейка имеет адрес, состоящий из указания столбца и строки, на пересечении которых она находится, например Al, B5, АВ234. Адреса ячеек используются при обращении к их содержимому. Одна из ячеек является активной, она выделяется черной рамкой, в правом нижнем углу которой находится маркер заполнения (черный квадратик). Ввод данных производится в активную ячейку. Перемещение активной ячейки осуществляется клавишами управления курсором: PageUp, Page Down, Home, End или щелчком мыши. Диапазоны. Иногда в Excel требуется работать не с одной ячейкой, а с группой ячеек в виде прямоугольника, такая группа называется диапазон. Прежде чем работать с диапазоном, следует его выделить. Выделяется диапазон протягиванием мышью по диагонали диапазона. Выделенный диапазон на рабочем поле показывается инверсным цветом, вокруг него располагается рамка с маркером заполнения, как на активной ячейке. 211
Элементы управления. Окно Excel (рис 4.8) содержит заголовок, строку меню, панели инструментов «Стандартная» и «Форматирование», рабочее поле, строку состояния. Назначение этих элементов аналогично назначению таких же элементов Word. Заголовок Строка меню Панели инструментов "Стандартная" и "Форматирование" (по умолчанию) Рис. 4.8. Окно Excel Панели инструментов Excel можно настраивать: добавлять и удалять кнопки (пиктограммы команд), создавать новые панели инструментов, а также отображать, скрывать и перемещать существующие панели инструментов, совершенно аналогично Word. Главное меню и панель инструментов «Стандартная» имеют команды «Открыть» и «Сохранить», которые работают так же, как и в вышеописанных программных продуктах. Файл может сохраняться в формате «Книга Microsoft Excel». Это его основной формат (.xls), 212
но параллельно могут использоваться формат шаблона (.xlt), ряд форматов, связывающих Excel 2000 с его старыми версиями, а также ряд форматов, позволяющих связать Excel с базами данных. При сохранении файла в Excel можно установить пароль. Табличный процессор Excel ведет протокол всех действий, последние шестнадцать запоминает и в любой момент позволяет отменить несколько последних действий нажатием кнопки Работа с окнами. Иногда необходимо одновременно просматривать различные части большой таблицы, например строку заголовков таблицы и какую-либо ее часть. Для этого следует разделить окно Таблицы на подокна: устанавливаем указатель мыши на горизонтальный или вертикальный движок разбиения (рис. 4.9) (он примет вид двунаправленной стрелки) и перетягиваем его в нужное место. Каждая область будет иметь свою полосу скроллинга для перемещения по таблице. Рис. 4.9. Разделение окна таблицы на подокна Excel представляет пользователю многооконный интерфейс. Это значит, что одновременно могут быть открыты несколько окон, в которых будет отображаться одна и та же книга (например, разные страницы) или разные рабочие книги. Делается это с помощью меню ОКНО команды НОВОЕ. В этом случае в заголовке окна после имени рабочей книги через двоеточие указывается номер нового окна. Например, первое окно рабочей книги будет называться КНИГА: 1, второе будет названо КНИГА:2. Одновременно на панели задач появятся кнопки открытых окон, 213
что дополнительно облегчит переход от одного окна к другому. Закрыть окно можно обычным щелчком на кнопке «крест» в заголовке. Для возврата к однооконному изображению необходимо развернуть активное окно на весь экран, щелкнув на кнопке восстановления окна. Иногда требуется зафиксировать одну часть таблицы, например, заголовок, чтобы он всегда присутствовал на экране. Для фиксации только вертикальных (горизонтальных) заголовков следует выделить строку ниже заголовков (столбец справа от заголовков), обратиться в меню ОКНО ► ЗАКРЕПИТЬ ОБЛАСТИ. Для одновременной фиксации и вертикальных, и горизонтальных заголовков необходимо выделить ячейку, по которой следует зафиксировать заголовки (все строки выше выделенной ячейки и все столбцы слева от выделенной ячейки будут зафиксированы), затем меню ОКНО ► ЗАКРЕПИТЬ ОБЛАСТИ. Работа с листами в Excel. Принцип работы с листами напоминает обычную работу с деловыми блокнотами в офисе. В каждом рабочем блокноте можно поместить всю информацию, относящуюся к одной теме, и хранить ее в одном файле, что повышает наглядность рабочих документов. Корешки отдельных рабочих листов одной рабочей книги расположены в нижней части экрана (именной указатель листов), по умолчанию они называются «Лист 1», «Лист 2», «Лист 3»; щелкая по ним мышью, можно переходить с одного листа на другой. Корешок активного рабочего листа маркируется белым цветом. Листы можно добавлять, удалять, переименовывать. Команды этих операций находятся в меню ПРАВКА, ВСТАВКА, но более удобно воспользоваться контекстным меню именного указателя листов. При переименовании рабочих листов запрещается использовать следующие символы: квадратные скобки [ ], двоеточие :, слеш прямой /, слеш обратный \. Рабочий лист или рабочую книгу можно защитить от изменений паролем, для этого надо зайти в меню СЕРВИС ► ЗАЩИТА ► ЗАЩИТИТЬ ЛИСТ (или ЗАЩИТИТЬ КНИГУ). Работа со столбцами и строками таблицы. Изменение высоты строки или ширины столбца производится следующим образом. Корректируемая строка или столбец таблицы должны быть выделены. В меню ФОРМАТ ► СТРОКА выбирается одно из подменю следующего уровня, содержащее пункты: ВЫСОТА, АВТОПОДБОР ВЫ- 214
СОТЫ, СКРЫТЬ, ОТОБРАЗИТЬ (аналогичные пункты есть и в меню СТОЛБЕЦ). ВЫСОТА позволяет установить высоту выделенных строк в пунктах. АВТОПОДБОР ВЫСОТЫ устанавливает высоту по высоте содержимого. Команда СКРЫТЬ скрывает строки, не удаляя их, применяется для скрытия промежуточных вычислений. Снова отобразить скрытые строки можно командой ОТОБРАЗИТЬ, предварительно выделив две строки, между которыми находится скрываемые строки. Коррекцию размеров ячеек можно выполнить и с помощью мыши. Для этого указатель мыши нужно установить на границу между номерами строк (или столбцов). При этом указатель мыши приобретает вид двунаправленной стрелки (рис. 4.10). Рис. 4.10. Коррекция размеров ячеек Если нажать теперь левую кнопку мыши и, не отпуская ее, сдвинуть указатель мыши, то можно увидеть штриховую линию, которая показывает смещение границы строки. Переместим эту линию в нужную позицию и отпустим кнопку мыши, в таблице появится новая граница строки. Если дважды щелкнуть мышью по нижней границе строки (столбца), то высота (ширина) этой строки (столбца) будет автоматически скорректирована по ее содержимому. 4.3.2. Создание таблиц Ввод данных в ячейку и в диапазон. В любой ячейке Excel может содержаться текстовая строка, число или формула. Тип данного определяется автоматически при вводе. Если ввод начинается со знака равенства, то процессором это понимается как формула. Далее мы подробно опишем правила построения формул, сейчас же заметим, что формулы содержат обычные арифметические операторы, например, + (плюс), — (минус), • (умножить), / (разделить). Кроме того, они могут использовать специально встроенные функции, которые облегчают процесс вычисления. 215
Число вводится в привычном виде со знаком или без него, в качестве разделителя целой и дробной части, может быть точка или запятая в соответствии с настройками Windows. Любая прочая последовательность символов понимается как текстовые данные. Редактирование содержимого ячейки можно произвести двойным щелчком по ячейке. При этом она переводит ее в режим редактирования содержимого, т.е. в поле ячейки появляется курсор, изменения вносятся с клавиатуры, как в текстовых редакторах. Завершаем редактирование нажатием клавиши Enter или щелчком на пиктограмме в строке формул. Автозаполнение. Если необходимо продублировать какое-либо данное (числовое или текстовое) в ряд смежных ячеек в строке или столбце, то можно ввести одно данное, затем перетащить маркер заполнения ячейки с введенным данным по строке или столбцу, произойдет автоматическое копирование содержимого ячейки. Иногда требуется заполнить смежные ячейки не одинаковыми, но похожими данными, например, «1 блок», «2 блок», «3 блок» или «ряд 1», «ряд 2», «ряд 3». Делается это также с помощью маркера заполнения, т.е. в ячейку вводится первое данное («1 блок»), затем ячейка протягивается за маркер заполнения. Копирование ячеек, содержащих данные. Чтобы скопировать содержимое ячейки или диапазона, нужно активизировать ячейку или выделить диапазон, вызвать меню ПРАВКА ► КОПИРОВАТЬ или правой кнопкой мыши вызвать контекстное меню пункт КОПИРОВАТЬ, активизировать ячейку, являющуюся началом диапазона, куда должны быть скопированы данные, меню ПРАВКА ► ВСТАВИТЬ или контекстное меню пункт ВСТАВИТЬ, затем нажать клавишу [Enter]. Форматирование ячеек. Форматирование в Excel предполагает ряд действий по установке: форматов данных, параметров шрифтов и выравнивания, границ, заливки. Форматируемые ячейки или диапазон должны быть выделены, затем меню ФОРМАТ ► ЯЧЕЙКИ вызывает диалоговое окно «Формат ячейки», имеющее шесть вкладок: ЧИСЛО, ВЫРАВНИВАНИЕ, ШРИФТ, ГРАНИЦА, ВИД, ЗАЩИТА устанавливаются необходимые параметры. Вкладка ЧИСЛО позволяет установить формат ячейки как числовой. В поле «Числовые форматы» приведены различные типы форматов, которые выбираются щелчком мыши или с помощью клавиш управления курсором. Опишем числовые форматы. 216
«Числовой» — устанавливает число знаков после запятой, при необходимости разделитель групп разрядов (три разряда — пробел, начиная от запятой) удобен для представления чисел с фиксированной запятой, применимы все арифметические операции. «Денежный» — как числовой, но число сопровождается знаком валюты р., $, €, ¥ и т.д. С точки зрения общего формата запись в ячейке 12,34$ является текстом, но если формат ячейки объявлен как денежный, то это число, с которым могут производиться арифметические действия. Удобен формат для денежных расчетов. «Финансовый» — то же, что и денежный, но выравнивание в столбцах происходит по запятой; удобен тем, что длина записи числа отражает ее величину, это снижает вероятность ошибки при просмотре документа. «Дата» — позволяет отобразить дату по одному из шаблонов. Дата есть число дней, прошедших от 1-го января 1900 г. С датой можно работать как с числом, т.е. если в ячейке А1 содержится дата 01.05.04, а в ячейке В1 мы наберем формулу = А1 + 1, то результат получится 02.05.04, но если ячейку А1 переформатировать в числовой формат, то получится 38108, т.е. количество дней, прошедших с 1-го января 1900 г. «Время» — служит для отображения времени по одному из предлагаемых шаблонов. Допустима арифметика, но надо помнить, что время — это доля суток от 0 часов, т.е. число 0,25 в формате «дата- время» даст 6 часов утра, 0,5 — 12 часов. «Процентный» — число в ячейке умножается на 100 и добавляется символ %. «Дробный» — число представляется в виде обыкновенной дроби (приближенно) по шаблону «Экспоненциальный» — число представляется в виде мантиссы и порядка; удобен для приближенных вычислений с плавающей запятой в различных научно-технических расчетах. «Текстовый» — содержимое, каким бы оно ни было, воспринимается процессором как текст. Арифметические операции недопустимы. «Дополнительный» — то же, что и текстовый, но текст форматируется по маске (образцу): номер телефона, почтовый индекс и т.д. Вкладка ВЫРАВНИВАНИЕ. Некоторые команды этой вкладки дублируются на панели инструментов «Форматирование», техника аналогична Word. 217
Вкладка ШРИФТ аналогична диалоговым окнам выбора шрифта Word. Вкладка ГРАНИЦА — позволяет установить толщину, форму, цвет линий границ любых ячеек. Сначала устанавливается «тип линии» и цвет, затем указывается, к каким границам выделенного диапазона их применить. Вкладка ВИД — определяет цвет и узор заливки ячеек. Вкладка ЗАЩИТА — позволяет снять защиту с выделенного диапазона. Обычно это делается перед тем как защищать весь лист, т.е. если на рабочем листе сделаны расчеты, то с исходных данных защиту снимают, а весь лист с формулами и промежуточными результатами защищается (меню СЕРВИС ► ЗАЩИТА ► ЗАЩИТИТЬ ЛИСТ...). 4.3.3. Работа с формулами, диаграммами, списками Формулы Ввод формул. Возможность работы с формулами и встроенными функциями является важнейшей особенностью электронных таблиц. Логика использования табличного процессора требует применять формулы везде, где значения одних ячеек зависят от значений других, так как если значения ячеек с исходными данными изменяются, то автоматически изменяются значения всех зависимых ячеек. Как известно, ввод формулы начинается со знака равенства, сопровождается появлением формулы в ячейке и дублировании набора в строке формул, завершается нажатием клавиши Enter, после чего в ячейке появляется результат вычисления (при настройках процессора по умолчанию), а саму же формулу теперь можно увидеть в строке формул, если активизировать ячейку. Формула может содержать числовые константы, ссылки (адреса ячеек, содержимое которых участвует в вычислениях), функции. Указанные элементы между собой могут соединяться знаками арифметических операций, скобки могут изменять принятый в арифметике порядок действий. 218
Например, пусть в ячейке А1 содержится число 10, в ячейке В1 число 20, в ячейку С1 введем формулу =А1+В1+2. После завершения ввода (нажатие Enter) в ячейке С1 появится результат сложения чисел, содержащихся в ячейках А1 и В1, увеличенный на 2, т.е. 32. Если изменить число, хранящееся в ячейке А1, например заменить на 20, то наличие формулы в ячейке С1 автоматически изменит ее значение на 42. Ссылки А1 и В1 в формуле можно делать, непосредственно вводя с клавиатуры текст формулы или после знака равенства сделать щелчок по ячейке А1 (в формуле появится ссылка А1), набрать знак + , сделать щелчок по В1, снова + , набрать 2. Автозаполнение ячеек формулами. Активизируем ячейку С1 из предыдущего примера и протянем ее за маркер заполнения вниз по столбцу. В ячейку С2 автоматически введется формула =А2+В2+2, в СЗ =АЗ+ВЗ+2 и т.д. При протягивании по столбцу номер столбца увеличивается. Вернемся в ячейку С1 и протянем ее по строке, получим: в ячейке D1 =В1+С1 , в El =C1+D1 и т.д., при протягивании по строке номер строки увеличивается. Таким образом, при протягивании формулы ссылки А1 и В1 модифицируются, такие ссылки называются относительными. Чтобы ссылки не модифицировались при протягивании по строке, ее следует записать как С$1; запретить модификацию по столбцу можно, применив ссылку $С1. Ссылка будет неизменна при любом протягивании в виде $С$1. Такие ссылки называются абсолютными. В длинных математических расчетах по формулам, как правило, исходные данные содержатся в ячейках, которые в дальнейшем используются как абсолютные ссылки. Весьма неудобно было бы постоянно помнить, в каких ссылках какие параметры находятся (например, в $С$1 находится параметр Ь, в $D$147 — к и т.п.). Для этого в Excel есть возможность переименования абсолютных ссылок. Меню ВСТАВКА ► ИМЯ ► ПРИСВОИТЬ вызывает диалоговое окно, в котором можно абсолютную ссылку переименовать. В том же меню при необходимости можно удалить уже существующее имя. Ссылки на другие листы и книги. Для обращения к значению ячейки, расположенной на другом рабочем листе, нужно указать имя этого листа вместе с адресом соответствующей ячейки. Например, находясь на листе 1, можно ввести в ячейку А1 формулу =ЛИСТ4!ВЗ+1 для обращения к ячейке ВЗ на рабочем листе ЛИСТ4. Если в названии 219
листа есть пробелы, то оно (название) заключается в кавычки. Связывание двух ячеек можно упростить, для чего на листе 1 в ячейке А1 набрать знак = , затем через корешок обратиться к листу 4 и щелкнуть по ячейке ВЗ. Копирование ячеек, содержащих формулы. Техника копирования, перемещения, удаления ячеек, содержащих формулы, такая же, как и ячеек, содержащих данные (см. 4.2.2.) Но если в формуле содержатся относительные ссылки, то при копировании и перемещении они модифицируются. Рассмотрим на примере. Пусть в ячейке СЗ содержится формула = A1+$B1+C$1+$D$1. Перенесем или скопируем ее в ячейку Е6, т.е. на два столбца правей и на три строки ниже. Тогда все относительные адреса формулы в ячейке Е6 увеличатся на два по столбцу, на три по строке. В результате в ячейке Е6 получим формулу =C4+$B4+E$1+$D$1. Работа с функциями. Excel позволяет использовать в формулах ряд встроенных математических, логических, статистических функций. Функции объединяют несколько вычислительных операций для решения определенной задачи, имеют один или несколько аргументов. В качестве аргументов функций выступают числовые значения и/или адреса ячеек. Вызывается функция, как правило, с помощью МАСТЕРА ФУНКЦИЙ меню ВСТАВКА или кнопки . Диалоговое окно «Мастера функций» имеет два шага. На первом шаге выбирается тип функции в поле «Категория», затем сама функция в списке «Функция». Следующий шаг уточняет аргументы. Диагроммы Диаграмма — это представление данных таблицы в графическом виде, которое используется для анализа и сравнения данных. На диаграмме числовые данные ячеек изображаются в виде точек, линий, полос, столбиков, секторов и в другой форме. Группы элементов данных, отражающих содержимое ячеек одной строки или столбца на рабочем листе, составляют ряд данных. Строятся диаграммы с помощью Мастера диаграмм. Вызывается через меню ВСТАВКА ► ДИАГРАММА или нажатием кнопки на панели инструментов «Стандартная». Мастер имеет четыре шага, где выясняются вопросы 220
о виде диаграммы, особенностях оформления и размещения, затем строится диаграмма. Списки Списки позволяют эффективно работать с большими упорядоченными наборами данных, имеющих одинаковую структуру Например, списком является телефонный справочник, в котором в большом количестве строк приведены фамилии абонентов и номера их телефонов. Каждый элемент списка занимает одну строку, в которой данные распределяются по нескольким полям (столбцам). В табличном процессоре имеются операции для их обработки (сортировка, фильтрация). В первой строке рабочего листа обычно помещаются названия отдельных полей списка. Эта строка используется в качестве строки заголовков списка. Начиная со следующей строки, вводятся данные. Для быстрого заполнения таблицы можно обратиться к меню ДАННЫЕ ► ФОРМА, которое откроет диалоговое окно для ввода данных, в котором каждому полю списка соответствует поле ввода. Как только все поля ввода будут заполнены данными, щелкнем по командной кнопке ДОБАВИТЬ. Затем можно начать ввод следующего элемента данных и т.д., пока не будут введены все элементы списка. В заключение закроем окно щелчком по командной кнопке ЗАКРЫТЬ. Каждый новый список следует создавать на отдельном рабочем листе. Фильтрация данных. Выделим заголовки списка. Откроем в меню ДАННЫЕ ► ФИЛЬТР ► АВТОФИЛЬТР В таблице рядом с названиями полей появятся маленькие пиктограммы со стрелками Как известно, это раскрывающиеся списки (рис. 4.11). Рис. 4.11. Раскрывающиеся списки Щелкнув по одной из этих стрелок, получим меню с перечнем значений данного поля (рис. 4.12). 221
Рис. 4.12. Перечень значений поля Щелчком выберем какой-либо пункт из этого перечня. В списке отобразятся только те элементы, у которых значение данного поля совпадает с выбранным значением, т.е. произойдет фильтрация данных. При этом пиктограмма со стрелкой будет изображена другим цветом. Слева в столбце с номерами строк будут видны прежние номера элементов, которые они имели в исходном списке. Если необходимо вернуться к полному списку, то нужно выбрать опцию ВСЕ в перечне значений поля, по которому выполнялась фильтрация. Здесь же есть опция УСЛОВИЕ, позволяющая задать условие фильтрации. Например, выбрать все записи, значение поля у которых больше 10 и т.п. Сортировка данных. Активизируем первую ячейку в столбце «Фамилия». Выберем меню ДАННЫЕ ► СОРТИРОВКА. Откроется диалоговое окно этой директивы, в котором указываются поля сортировки и рядом с каждым полем расположены две селекторные кнопки ПО ВОЗРАСТАНИЮ и ПО УБЫВАНИЮ, указывающие направление сортировки. Печать. Перед распечаткой таблиц необходимо установить параметры страницы с помощью команды меню ФАЙЛ > ПАРАМЕТРЫ СТРАНИЦЫ. Эта процедура во многом сходна с Word. Отличие лишь в том, что таблица здесь может быть распечатана в масштабе. Для этого включим переключатель УСТАНОВИТЬ и укажем масштаб распечатки. Если включить переключатель РАЗМЕСТИТЬ НЕ БОЛЕЕ ЧЕМ НА, то таблица или выделенная область будет уменьшена настолько, чтобы разместиться на количестве страниц, указанном в полях СТР. В ШИРИНУ и СТР. В ВЫСОТУ. 222
Для просмотра таблицы перед печатью используется команда ФАЙЛ ► ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР или кнопка . Выйти из режима предварительного просмотра можно с помощью кнопки ЗАКРЫТЬ или клавиши Esc. Для распечатки таблицы необходимо обратиться в меню ФАЙЛ ► ПЕЧАТЬ, которое имеет такие же настройки, как соответствующая опция в Word. Чтобы напечатать одну копию активных листов, достаточно щелкнуть кнопку 4.4. Основы информоиионных систем. Базы данных 4.4.1. Основные понятия Как уже говорилось в главе 1, в истории развития вычислительной техники наблюдалось два основных направления ее применения. Первое связано с выполнением больших численных расчетов, которые трудно или невозможно произвести вручную. Развитие этой области способствовало ускорению развития методов математического моделирования, численных методов, языков программирования высокого уровня, рассчитанных на удобное представление вычислительных алгоритмов. Второе направление связано с использованием вычислительной техники для создания, хранения и обработки больших массивов данных. Такие задачи решают информационные системы (в дальнейшем — ИС). К ним относятся поисковые, справочные, банковские системы, автоматизированные системы управления предприятием. Для задач первого типа характерны большие объемы вычислительной работы при относительно небольших потребностях в памяти. Задачи второго типа, наоборот, требуют больших объемов внешней памяти при относительно небольших расчетах. Вторая область применения возникла несколько позже первой. Это связано с тем, что на первых этапах внешняя память вычислительных систем была 223
несовершенной, т.е. надежное хранение больших объемов данных не представлялось возможным. Предметом настоящего рассмотрения являются программные продукты второй области применения — информационные системы. Информационная система представляет собой аппаратно-программный комплекс, обеспечивающий выполнение следующих функций: • ввод данных об объектах некоторой предметной области; • надежное хранение и защита данных во внешней памяти вычислительной системы; • дополнение, удаление, изменение данных; • сортировка, выборка данных по запросам пользователей; • выполнение специфических для данной предметной области преобразований информации; • предоставление пользователям удобного интерфейса; • обобщение данных и составление отчетов. Объем данных в ИС может исчисляться миллиардами байт. Отсюда необходимость устройств, хранящих большие объемы данных во внешней памяти. Число пользователей ИС может достигать десятков тысяч, что создает немало проблем в реализации эффективных алгоритмов функционирования ИС. Успешно решаются эти задачи, если данные в информационной системе структурированы. Структурирование данных рассмотрим на примере студенческой группы. Каждый член группы во многом индивидуален, и характеризовать его можно с разных сторон. Но деканат, скорее всего, заинтересуют следующие данные (предметная область): фамилия студента, имя, отчество, курс, наименование группы, массив оценок по изучаемым дисциплинам. Таким образом, из всего многообразия данных выбираются только некоторые, т.е. создается информационная модель объекта. Данные упорядочиваются по порядку следования, по применяемым типам (форматам) данных, после чего они могут быть обработаны автоматом, каковым является компьютер. Совокупность взаимосвязанных данных называется структурой данных. Совокупность структурированных данных, относящихся к одной предметной области, называется базой данных (БД). Совокупность программ, реализующих в БД функции ИС в удобной для пользователя форме, называется системой управления базой данных (СУБД). Программы, производящие специфическую обработку данных в БД, составляют пакет прикладных программ (ППП). Итак, 224
можно заключить, что ИС — это организационное объединение аппаратного обеспечения (АО), одной или нескольких баз данных (БД), системы управления базами данных (СУБД) и пакетов прикладных программ (ППП). 4.4.2. Классификация БД По технологии обработки данных БД подразделяются на централизованные и распределенные. Централизованная БД хранится целиком в памяти одной вычислительной системы. Если система входит в состав сети, то возможен доступ к этой БД других систем. Распределенная БД состоит из нескольких, возможно пересекающихся или дублирующих друг друга БД, хранимых в памяти разных вычислительных систем, объединенных в сеть. По способу доступа к данным БД распределяются на локальный и удаленный (сетевой) доступ. Локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на том же компьютере. Удаленный доступ — это обращение к БД, которая которая хранится на одном из компьютеров, входящих в компьютерную сеть. Удаленный доступ может быть выполнен по принципу файл-сервер или клиент-сервер. Архитектура файл-сервер предполагает выделение одного из компьютеров сети (сервер) для хранения централизованной БД. Все остальные компьютеры сети (клиенты) исполняют роль рабочих станций, которые копируют требуемую часть централизованной БД в свою память, где и происходит обработка. Однако при большой интенсивности запросов к централизованной БД увеличивается нагрузка на каналы сети, что приводит к снижению производительности ИС в целом. Архитектура клиент-сервер предполагает, что сервер, выделенный для хранения централизованной БД, дополнительно производит обработку клиентских запросов. Клиенты получают по сети уже обработанные данные. Учитывая широкое распространение БД в самых различных областях, в последнее время архитектура клиент-сервер применяется и на одиночных вычислительных системах. В этом случае клиент — программа, которой понадобились данные из БД, по- 8. Информатика 225
сылает запрос серверу — программе, управляющей ведением БД, на специальном универсальном языке запросов. Сервер пересылает программе данные, являющиеся результатом поиска в БД по ее запросу. Этот способ удобен тем, что программа — клиент не обязана содержать все функции поддержания и ведения БД, этим занимается сервер. В результате упрощается написание программ — клиентов. Кроме того, к серверу может обращаться любое количество клиентов. 4.4.3. Модели данных Для реализации основных функций в ИС используются различные принципы описания данных. Ядром любой БД является модель представления данных. Подробному описанию различных моделей посвящена следующая глава. Пока же рассмотрим реляционную модель данных, ориентированную на организацию данных в виде двумерных таблиц. Реляционная модель данных является наиболее универсальной, к ней могут быть сведены другие модели. Важнейшим понятием реляционных моделей данных является сущность. Сущность — это объект любой природы, данные о котором хранятся в БД. Данные о сущности хранятся в двумерных таблицах, которые называют реляционными. Каждая реляционная таблица должна обладать следующими свойствами: • один элемент таблицы — один элемент данных; • все столбцы таблицы содержат однородные по типу данные (целочисленный, числовой, текстовый, и т.д.); • каждый столбец имеет уникальное имя; • число столбцов задается при создании таблицы; • порядок записей в отношении может быть произвольным; • записи не должны повторяться; • количество записей в отношении не ограничено. Объекты, их взаимосвязи и отношения представлены в виде таблиц. Формальное построение таблиц связано с фундаментальным понятием отношение (термин реляционная исходит от английского слова relation — отношение). Для заданных произвольных конечных множеств М,, М2, ..., MN множество всевозможных наборов вида (ц,, |12,..., |xN), где ц^М,, |12еМ2, ..., |ingMn называют их декартовым произведением 226
M,x M2x ... х MN. Отношением R, определенным на множествах М,, М2,..., MN, называется подмножество декартова произведения М,х М2х ...> х MN. При этом множества М,, М2, ..., MN называются доменами отношения, а элементы декартова произведения — кортежами отношения. Число N определяет степень отношения, количество кортежей — его мощность. В реляционной таблице каждый столбец есть домен (его альтернативное название поле), а совокупность элементов каждой строки — кортеж (или запись). Строка заголовков называется схемой отношения. Например, схема отношения СТУДЕНТ может быть следующей: СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА), здесь СТУДЕНТ - отношение, а ФАМИЛИЯ, ИМЯ и т.д. — атрибуты. В отношении каждый конкретный экземпляр сущности представляется строкой, которая называется кортежем (или записью). Следующая таблица представляет отношение СТУДЕНТ (рис. 4.13). Отношение СТУДЕНТ (вся) таблица Схема отношения (строка заголовков) Атрибуты (поля) (отдельные заголовки) Строка (запись, кортеж) ФАМИЛИЯ Андреев Борисов Яковлев ИМЯ Иван Петр Иван ОТЧЕСТВО Иванович Иванович Петрович ФАКУЛЬТЕТ Конструкторский Конструкторски й Технологичес кий КУРС 1 2 1 Рис. 4.13. Отношение СТУДЕНТ Первичным ключом отношения называется поле или группа полей, однозначно определяющие запись. В отношении СТУДЕНТ первичным ключом может быть поле ФАМИЛИЯ, если во всем списке нет однофамильцев — это будет простой ключ. Если есть однофамильцы, то совокупность полей — фамилия, имя, отчество — создадут составной первичный ключ. На практике обычно в качестве ключевого выбирают поле, в котором совпадения заведомо исключены. 227
Для рассматриваемого примера таким полем может служить номер зачетной книжки студента. Свойства первичного ключа: • уникальность — в таблице может быть назначен только один первичный ключ, у составного ключа поля могут повторяться, но не все; • неизбыточность — не должно быть полей, которые, будучи удаленными из первичного ключа, не нарушат его уникальность; • в состав первичного ключа не должны входить поля типа, комментарий и графическое. Чтобы избежать повторяющихся записей, приходят к связыванию таблиц. Например, если в отношении СТУДЕНТ надо описать вуз, в котором он обучается, то, на первый взгляд, можно было бы включить в отношение следующие поля СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА, НАЗВАНИЕ вуза, АДРЕС). Но при заполнении такой таблицы для каждого студента придется указывать довольно длинное наименование вуза и его адрес, что неудобно. Более того, любая незначительная ошибка во вводе этих полей приведет к нарушению непротиворечивости базы данных. Например, ошибка в адресе вуза приведет к тому, что в БД появятся два вуза с одинаковым наименованием и разными адресами. Поступают в таком случае так: в отношение СТУДЕНТ вводят поле «код вуза» (целое число) и добавляют еще одно отношение ВУЗ (код вуза, название, адрес). СТУДЕНТ и ВУЗ при этом будут связаны по полю «код вуза». СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА, КОД вуза) ВУЗ (КОД вуза, НАЗВАНИЕ, АДРЕС, ТЕЛЕФОН) При работе с такими таблицами повторяться могут только данные в поле «КОД вуза», а все необходимые сведения о вузе можно взять из отношения ВУЗ. Заметим при этом, что ввод в поле «КОД вуза» целого числа, вместо длинного названия, принесет гораздо меньше ошибок. В отношении ВУЗ поле «КОД вуза» будет первичным ключом, а в отношении СТУДЕНТ поле «КОД вуза» будет внешним ключом. Для связи реляционных таблиц необходимо ввести в обе таблицы одинаковые по типу поля, по которым определится связь между 228
записями обеих таблиц. Связи бывают нескольких типов «один к одному», «один ко многим», «многие ко многим». В вышеприведенном примере была установлена связь «один ко многим», т.е. одной записи в таблице ВУЗ соответствуют многие записи в таблице СТУДЕНТ. 4.4.4. Проектирование баз данных Проектирование базы данных является одним из этапов жизненного цикла ИС. Ввиду сложности этот этап выполняется, как правило, коллективом разработчиков и включает следующие работы: • анализ предметной области; • проектирование и непосредственно кодирование (создание запросов и приложений); • тестирование и сопровождение. Анализ преЭметной области Проектирование баз данных начинается с анализа предметной области, в которой будет работать ИС. Как правило, этот этап выполняется разработчиками ИС совместно с заказчиком. Обычным языком описываются информационные объекты, их свойства, их взаимосвязи, описываются пожелания будущих пользователей. Результатом такой работы является техническое задание на разработку ИС. В техническом задании более строго указывается список исходных данных, список запросов к ИС, список выходных данных, оговаривается интерфейс, определяющий переход от представления данных в БД к представлению, принятому среди пользователей, и обратно. В общем случае пользователи представляют данные в виде документов различных видов, от произвольных текстов до справок и таблиц фиксированного формата. Затем собственно и начинается проектирование базы данных. Проектирование баз данных осуществляется на двух уровнях — физическом и логическом. На физическом уровне решаются вопросы размещения данных на внешних носителях. Во многом эта работа выполняется СУБД автоматически без участия разработчика. На логическом уровне составляется общий список полей, который может насчитывать от единиц до тысяч. Описывают каждое поле по типу данных. Общий список полей разбивается на основные таб- 229
лицы. Дальнейшее рассмотрение информационной структуры приводит к разбиению — нормализации — основных таблиц на более мелкие с целью избежания многократно повторяющихся данных в записях, что уменьшает объем памяти, занимаемый базой данных на диске, и обеспечивает непротиворечивость данных в БД. Процесс нормализации имеет итерационный (пошаговый) характер, осуществляется методом нормальных форм. Суть метода состоит в последовательном переводе таблицы из одной нормальной формы в другую, причем каждая последующая устраняет определенный вид функциональной зависимости между полями таблицы. Всего в теории описаны шесть нормальных форм, на практике чаще всего применяются первые три. Первая нормальная форма. Отношение называется приведенным к первой нормальной форме, если все его атрибуты неделимы. Например, отношение, содержащее поле ФИО, не приведено к первой нормальной форме, если в запросах БД требуется выделить отдельно фамилию или имя. Разработчики БД изначально строят так исходное отношение, чтобы оно было в первой нормальной форме. Вторая нормальная форма. Для приведения отношений ко второй нормальной форме введем понятие функциональной зависимости. Функциональная зависимость полей — это зависимость, при которой в строке определенному значению ключевого поля соответствует только одно значение не ключевого поля. Функционально не ключевое поле зависит от составного ключа, но не зависит от любого поля, входящего в составной ключ. Например, в отношении СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА) первичным ключом является совокупность полей ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО. Поля ФАКУЛЬТЕТ, КУРС, ГРУППА функционально полно зависят от составного ключа. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждое не ключевое поле функционально полно зависит от составного ключа. Например, в отношении УСПЕВАЕМОСТЬ (НОМЕР ЗАЧЕТКИ, ФАМИЛИЯ, ДИСЦИПЛИНА, ОЦЕНКА) составным ключом является совокупность НОМЕР ЗАЧЕТКИ + ДИСЦИПЛИНА. Это отношение находится в первой нормальной форме, но оно не находится во второй нормальной форме, так как поле ФАМИЛИЯ не имеет полной фун- 230
кциональной зависимости от составного ключа. Для перевода этого отношения во вторую нормальную форму необходимо исключить из него поле ФАМИЛИЯ, так как оно функционально зависит от НОМЕРА ЗАЧЕТКИ. Т.е. исходное отношение необходимо разбить на два связанных отношения УСПЕВАЕМОСТЬ (НОМЕР ЗАЧЕТКИ, ДИСЦИПЛИНА, ОЦЕНКА) и СПИСОК (НОМЕР ЗАЧЕТКИ, ФАМИЛИЯ). Связь здесь осуществляется по полю НОМЕР ЗАЧЕТКИ. Третья нормальная форма. Третья нормальная форма позволяет устранить транзитивную зависимость. Транзитивная зависимость существует в отношении, если существуют два описательных поля, в которых первое зависит от ключа, а второе зависит от первого. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме, и каждое не ключевое поле не тран- зитивно зависит от ключа. Например, в отношении СТУДЕНТ (ФАМИЛИЯ, ФАКУЛЬТЕТ, НАЗВАНИЕ вуза, АДРЕС) поле АДРЕС транзитивно (через поле НАЗВАНИЕ вуза) зависит от ключа ФАМИЛИЯ. При заполнении экземплярами такого отношения поле Адрес будет многократно повторяться. Для устранения транзитивной зависимости в классе используется расщепление отношения на несколько. Например, отношение СТУДЕНТ расщепляется на два: СТУДЕНТ (ФАМИЛИЯ, ФАКУЛЬТЕТ, НАЗВАНИЕ вуза), ВУЗ (НАЗВАНИЕ вуза, АДРЕС) связь по полю НАЗВАНИЕ вуза. Процесс нормализации заканчивается созданием схемы данных, в которой указываются все нормализованные таблицы с их полями и взаимосвязями между ними. Указываются типы взаимосвязей. Проектирование Дальнейшая работа над проектом связана с конкретной СУБД, поэтому, предварительно учитывая требования заказчика и намеченную архитектуру ИС, выбирают СУБД. Мы рассмотрим эту часть на примере СУБД MS Access (разработка Microsoft). СУБД Access является системой управления базами данных реляционного типа. Всю базу данных по умолчанию Access хранит на диске в виде одного файла с расширением *.mdb, а вообще Access поддерживает ряд стандартов БД (dbase, Paradox и др). Данные хранятся в виде таблиц, строки которых состоят из наборов полей определенных типов. С каждой таблицей могут быть связаны индексы 231
(ключи), задающие нужные пользователю порядки на множестве строк. Таблицы могут иметь однотипные поля (столбцы), и это позволяет устанавливать между ними связи, выполнять операции реляционной алгебры. Типичными операциями над базами данных являются: • работа с таблицами (создание, модификация, удаление таблиц, создание и модификация схем взаимосвязи существующих таблиц); • ввод данных в таблицы непосредственно или с помощью формы, проверку вводимых данных; • поиск данных в таблицах по определенным критериям (выполнение запросов); • создание отчетов о содержимом базы данных. Таблицы. Работа в Access начинается с определения реляционных таблиц и их полей, которые будут содержать данные, т.е. создания макета таблицы. Вид рабочего окна Access представлен на рис. 4.14. Рис. 4.14. Вид рабочего окна MSAccess 232
Открытие окна сопровождается записью на диске файла базы данных. Затем в рабочем окне Access появляется окно вновь созданной базы данных. Изучая окно базы данных, заметим, что все основные объекты Access (таблицы, запросы, отчеты, формы) могут создаваться в режиме конструктора и в режиме мастера. Создание таблиц предпочтительней в режиме конструктора (рис. 4.15). Здесь задаются имена полей и свойства, ниже находится редак- Рис. 4.15. Создание таблиц в режиме конструктора тор свойств полей, где указываются свойства (если поле текстовое — его длина, числовое — тип целый или вещественный). Редактор свойств полей имеет скрытые элементы управления. Например, щелчок по полю ввода «размер поля» приведет к появлению элемента списка , в результате нажатия на который появляется раскрывающийся список выбора свойств. В завершении создания таблицы при 233
записи задается имя таблицы. Схема отношения может быть отредактирована путем повторного открытия ее в режиме конструктора. Далее определяются реляционные связи между таблицами, для чего открывается окно «Схема данных» нажатием кнопки в окне Access. В окне «Добавление таблицы» выбираем таблицы, которые следует связать. Затем методом перетаскивания указываем связываемые поля, после чего появляется окно «Изменение связей» (рис. 4.16.), в котором указываем тип обеспечения целостности. Завершается этот этап нажатием кнопки «Создать». Рис. 4.16. Окно «Изменение связей» Формы — одно из основных средств работы с базами данных в Access, используются для ввода новых записей, просмотра и редактирования уже имеющихся данных, задания параметров запросов и вывода ответов на них и др. Формы представляют собой окна с размещенными в них элементами управления. Существует возможность динамического создания форм при исполнении программы, однако 234
естественным режимом их создания является режим визуального конструирования. Выбор команды «Форма» в меню «Вставка» выводит на экран окно «Новая форма», позволяющее задать таблицу или запрос, для которых создается новая форма, и указать режим ее создания. Создание формы можно автоматизировать, используя «Мастер форм». Для создания формы с помощью Мастера форм предполагается следующая последовательность действий: меню Формы / Создать. На экране появится окно диалога «Новая форма», в котором необходимо выбрать метод построения формы и исходный объект для построения формы. В качестве такого объекта могут быть выбраны таблица или запрос. На следующих шагах Мастер форм предлагает выбрать форму представления отчета (в столбец, ленточную, табличную или выровненную) и стиль оформления. Стили представляют собой набор различных фоновых рисунков с соответствующим подбором шрифтов и форм полей. На последнем шаге можно изменить предлагаемое название формы на свое собственное и завершить процесс создания формы, нажав кнопку «Готово». В режиме конструктора можно создать специальные формы с листами данных, диаграммами и сводными таблицами в формате Excel. На форме можно расположить элементы управления в виде графических примитивов, надписей, рисунков и др. Элементы управления могут использоваться для ввода и отображения дат, а также для выполнения вычислений и вывода результата. Элементами управления являются кнопки команд, которые активизируют исполнение различных операций; объекты типа «подчиненные формы» (бланк таблицы, дочерней по отношению к форме); объекты, облегчающие восприятие данных, такие как календарь или счетчик, а также элементы пользователя. Запросы. При разумном подходе к проектированию баз данных пользователи не получают прямой доступ к базовым таблицам, а делают это посредством запросов. Запрос может предоставлять пользователю выборку из полей одной таблицы или из полей разных таблиц. Создать запрос можно в режиме мастера или в режиме конструктора. Создадим запрос в режиме конструктора, для чего в окне базы данных следует щелкнуть на кнопках «Запрос» и «Конструктор». Прежде всего, откроется окно «Добавление таблицы», в ко- 235
тором выберем таблицы, на основе которых строится запрос (допустим, ВУЗ и СТУДЕНТ). В результате откроется окно (рис. 4.17), называемое бланком запроса по образцу, где в верхней части указанные таблицы предстанут вместе со схемой данных. Двойным щелчком укажем на те поля, которые будут участвовать в запросе. Пусть это будут поля из таблицы СТУДЕНТ (ФАМИЛИЯ, ФАКУЛЬТЕТ) и из таблицы ВУЗ (НАЗВАНИЕ вуза). Указанные поля появятся в нижней части бланка запроса по образцу. Таким образом, нами был создан простейший запрос, который называется запрос на выборку на языке запросов по образцу (QBE — Query By Example). При его активации кнопкой f будет построена таблица с указанием фамилии, факультета и вуза, в котором обучается студент. Закрытие запроса сопровождается присвоением ему имени. Заметим, что запрос на выборку создает не физическую таблицу на диске, а виртуальную Рис. 4.17. Бланк запроса 236
в оперативной памяти, которая существует, пока мы пользуемся запросом. Запрос на выборку может создавать большие таблицы, работать с которыми неудобно, поэтому более целесообразно результаты запроса сортировать. Сортировки возможны по возрастанию и по убыванию. Направление это указывается в строке «Сортировка бланка запроса по образцу». Если сортировка указана по нескольким полям, то сначала будет произведена сортировка по первому полю; при обнаружении повторяющихся записей, сортировка будет по второму полю и т.д. Бланк запроса по образцу допускает отбор данных по условию. Для этого в строке «Условие отбора» можно поставить, например, в поле «Фамилия» = Иванов, и будут отобраны все студенты с фамилией Иванов. Возможности языка QBE весьма широки, но все же ограничены. Если требуется нечто большее, то меню окна ЗАПРОС ►ВИД ► РЕЖИМ SQL позволяет построить запрос на языке SQL, более универсальном, но требующем специальных знаний. Отчеты. Отчет похож на запрос, но служит для форматированного вывода данных на бумагу. Для создания отчетов рационально воспользоваться Мастером отчетов (база данных СОЗДАТЬ ► НОВЫЙ ОТЧЕТ), который похож на Мастера форм. Выполняется отчет за ряд шагов, в процессе которых: • выясняются таблицы и запросы, на основе которых строится отчет; • поля, по которым производится сортировка, фильтрация; • стиль оформления печатного документа. Редактировать отчет, созданный Мастером, можно с помощью конструктора. 4.4.5. CASE-системы для разработки информационных систем Проектирование информационных систем представляет собой сложную, трудоемкую и длительную работу, требующую высокой квалификации участвующих в ней специалистов. Однако в недалеком прошлом проектирование нередко выполнялось на интуитивном уровне неформализованными методами, включающими в себя эле- 237
менты искусства, практический опыт, экспертные оценки и дорогостоящие экспериментальные проверки качества функционирования. Кроме того, в процессе создания и функционирования информационные потребности пользователей ИС постоянно изменяются или уточняются, что еще более усложняет разработку и сопровождение таких систем. В начале 70-х гг. в США был отмечен кризис программирования {software crisis). Это выражалось в том, что большие проекты стали выполняться с отставанием от графика или с превышением сметы расходов, разработанный продукт не обладал требуемыми функциональными возможностями, производительность его была низка, качество получаемого программного обеспечения не устраивало потребителей. Аналитические исследования и обзоры, выполняемые в течение ряда лет ведущими зарубежными аналитиками, показывали, что только немногим более 16 % проектов завершались в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности, остальные превысили бюджет или запоздали в сроках, а свыше 30 % проектов были аннулированы до завершения. Потребность контролировать процесс разработки ПО, прогнозировать и гарантировать стоимость разработки, сроки и качество результатов привела в конце 70-х гг. к необходимости перехода от кустарных к индустриальным способам создания ПО и появлению совокупности инженерных методов и средств создания ПО, объединенных общим названием «программная инженерия» (software engineering). Впервые этот термин был использован как тема конференции, проводившейся под эгидой NATO в 1968 г. В основе программной инженерии лежит одна фундаментальная идея: проектирование ПО является формальным процессом, который можно изучать и совершенствовать. Освоение и правильное применение методов и средств создания ПО позволяет повысить качество ИС, обеспечить управляемость процесса проектирования ИС и увеличить срок ее жизни. Тенденции развития современных информационных технологий определяют постоянное возрастание сложности ПО ИС, что вызвало потребность в программно-технологических средствах специального класса — CASE-средствах, реализующих CASE-технологию создания и сопровождения ИС. Термин CASE (Computer Aided Software 238
Engineering) имеет весьма широкое толкование. Первоначально значение термина CASE ограничивалось вопросами автоматизации разработки только лишь программного обеспечения, а в настоящее время оно приобрело новый смысл и охватывает процесс разработки сложных ИС в целом. Таким образом, к концу 80-х гг. назрела необходимость в CASE- технологиях и CASE-средствах и возникли предпосылки для их появления: было проведено много исследований в области программирования (разработка и внедрение языков высокого уровня, методов структурного и модульного программирования, языков проектирования й средств их поддержки, формальных и неформальных языков описания системных требований и спецификаций и т. д.). CASE-технология представляет собой совокупность методов проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки и сопровождения ИС и разрабатывать приложения в соответствии с информационными потребностями пользователей. Большинство существующих CASE-средств основано на методах структурного или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств. Были созданы CASE-системы: • ориентированные на этапы жизненного цикла ПО, Design/IDEF (Meta Sotfware), BPWin (LopicWorks)}; • функционально полные, т.е. используемые на всех этапах жизненного цикла Designer (Oracle) Developer/2000 (Oracle); • независимые от СУБД ODBC Sdesigner (SPD), ERWin (Logic- Works), Silverrun (Silverrun Technologies). 4.5. Системы компьютерной графики Системы компьютерной графики — это отдельные программы и аппаратно-программные комплексы, создающие и обрабатывающие различные изображения на экране монитора. Как уже было сказано, все изображения, создаваемые с помощью компьютеров, можно разделить на два класса — растровые и векторные. 239
В растровой графике изображение какого-либо графического объекта описывается конкретным расположением и цветом точек (пикселей), привязанных к сетке (растру, см. главу 1), т.е. оно создается, как в мозаике. Чем больше точек и чем они мельче, тем визуально качественнее изображение (и больше размер файла). Одна и та же картинка может быть представлена с лучшим или худшим качеством в соответствии с разрешением, т.е. количеством точек на единицу длины. Разрешение обычно измеряется в точках на дюйм — dpi или в пикселях на дюйм — ppi. При редактировании растровых графических объектов изменяется цвет пикселей, а не форма линий. Вывод растровой графики на устройства с более низким разрешением, чем разрешение самого изображения, понизит его качество. Кроме того, качество характеризуется еще и количеством цветов и оттенков, которые может принимать каждая точка изображения. Чем большим количеством оттенков характеризуется изображение, тем большее количество двоичных разрядов потребуется для описания каждого пикселя. Растровое представление обычно используют для изображений фотографического типа с большим количеством деталей или оттенков. К сожалению, масштабирование таких картинок в любую сторону обычно ухудшает качество. При уменьшении количества точек теряются мелкие детали и деформируются надписи (правда, это может быть не так заметно при уменьшении визуальных размеров самой картинки — т.е. сохранении разрешения). Добавление пикселей приводит к ухудшению резкости и яркости изображения, так как новым точкам приходится давать оттенки, средние между двумя и более граничащими цветами. В настоящее время распространены следующие форматы растровой графики .bmp, .pcx, .gif, .tif, jpg, .png и др. В векторной графике изображения описываются с помощью кривых линий, называемых векторами (каждая кривая аппроксимируется многочленом третьего порядка, т.е. массивом коэффициентов — многомерным вектором), а также параметров, описывающих их цвета и расположение. Например, изображение какой-либо фигуры на экране описывается точками, через которые проходит линия контура фигуры. Цвет фигуры задается цветом контура и цветом области внутри этого контура. 240
При редактировании элементов векторной графики можно изменять параметры линий, описывающих форму графических объектов, можно переносить их, менять размер, форму (это делается математическими преобразованиями), цвет, но это не отразится на качестве их визуального представления. Векторная графика не зависит от разрешения, т.е. может быть показана в разнообразных выходных устройствах с различным разрешением без потери качества. Очевидно, описание простых векторных графических объектов занимает значительно меньше места, чем растровых. Еще одно преимущество — качественное масштабирование в любую сторону. Увеличение или уменьшение объектов производится увеличением или уменьшением соответствующих коэффициентов в математических формулах. Но векторный формат становится невыгодным при передаче изображений с большим количеством оттенков или мелких деталей (например, фотографий). Ведь каждый мельчайший блик в этом случае будет представляться не совокупностью одноцветных точек, а уравнением линии (математической формулой) или совокупностью графических примитивов, каждый из которых является формулой. Это приводит к увеличению файлов. Таким образом, выбор растрового или векторного формата зависит от целей и задач работы с изображением. Если нужна фотографическая точность цветопередачи, то предпочтительнее растр. Логотипы, схемы, элементы оформления удобнее представлять в векторном формате. Понятно, что и в растровом и в векторном представлении графика (как и текст) выводятся на экран монитора или печатное устройство в виде совокупности точек. В Интернете графика представляется в одном из растровых форматов, понимаемых браузерами без установки дополнительных модулей — GIF, JPG, PNG. Из-за описанных выше особенностей представления изображения, для каждого типа приходится использовать отдельный графический редактор — растровый или векторный. Разумеется, у них есть общие черты — возможность открывать и сохранять файлы в различных форматах, использование инструментов с одинаковыми названиями (карандаш, перо и т.д.) или функциями (выделение, перемещение, масштабирование и т.д.), выбирать нужный цвет или оттенок. Однако принципы реализации процессов рисования и редактирования различны и обусловлены природой соответствующего формата. Так, если в растровых редакторах говорят о выделении объекта, то 241
имеют в виду совокупность точек в виде области сложной формы. Процесс выделения очень часто является трудоемкой и кропотливой работой. При перемещении такого выделения появляется «дырка». В векторном же редакторе объект представляет совокупность графических примитивов, и для его выделения достаточно выбрать мышкой каждый из них. А если эти примитивы были сгруппированы соответствующей командой, то достаточно «щелкнуть» один раз в любой из точек сгруппированного объекта. Перемещение выделенного объекта обнажает нижележащие элементы. С некоторыми особенностями работы с простым векторным редактором Microsoft Draw мы познакомились в разделе 4.2.3 «Создание рисунка». Этот редактор встроен в офисный интегрированный пакет программ MS Office. Существует тенденция к сближению редакторов векторной и растровой графики. Большинство современных векторных редакторов способны использовать растровые картинки в качестве фона, а то и переводить в векторный формат части изображения встроенными средствами (трассировка). Причем обычно имеются средства редактирования загруженного фонового изображения. Кроме того, может осуществляться непосредственный перевод сформированного векторного изображения в растровый формат и дальнейшее использование как нередактируемого растрового элемента. Причем, все это помимо обычно имеющихся конвертеров из векторного формата в растровый с получением соответствующего файла. Некоторые растровые редакторы способны грузить один из векторных форматов (обычно .wmf) в качестве фона или сразу переводить их в растр с возможностью непосредственного редактирования. 4.5.1. Растровый редактор Paint Paint — простейший графический редактор (разработчик Microsoft), предназначенный для создания и редактирования растровых графических изображений в основном формате Windows (BMP) и форматах Интернета (GIF и JPEG). Он приемлем для создания простейших графических иллюстраций, в основном схем, диаграмм и графиков, которые можно встраивать в текстовые документы. В Paint можно создавать рекламу, буклеты, объявления, приглашения, поздравления и др. 242
Основные возможности Paint: • Проведение прямых и кривых линий различной толщины и цвета. • Использование кистей различной формы, ширины и цвета. • Построение различных фигур — прямоугольников, многоугольников, овалов, эллипсов — закрашенных и незакрашенных. • Помещение текста на рисунок. • Использование преобразований — поворотов, отражений, растяжений и наклона. Начало работы с Paint. Графический редактор Paint встроен в операционную систему Windows. Для запуска его применяется следующий способ: кнопка ПУСК ► ПРОГРАММЫ ► СТАНДАРТНЫЕ ► PAINT Для окончания работы с Paint можно использовать пункты меню ФАЙЛ, и далее ВЫХОД. Окно графического редактора Paint имеет стандартный вид (рис. 4.18). В меню редактора входят команды ФАЙЛ, ПРАВКА, ВИД, РИСУНОК, ПАЛИТРА. В палитру инструментов входит ряд кнопок: «Выделение произвольной области», «Выделение», «Ластик», «Заливка», «Выбор цветов», «Масштаб», «Карандаш», «Кисть», «Распылитель», «Надпись», «Линия», «Кривая», «Прямоугольник», «Многоугольник», «Эллипс», «Скругленный прямоугольник». В левом нижнем углу расположена Панель цветов. Управлять работой в Paint можно посредством меню и панели инструментов. Существуют команды, вызываемые или только через меню, или только через панель инструментов. Задание размеров рисунка производится посредством выбора из меню РИСУНОК пункта АТРИБУТЫ и вводом в поля ШИРИНА и ВЫСОТА нужных значений. Таким образом, размеры текущего рисунка изменяются. Следует отметить, что если текущие размеры рисунка превышают новые размеры, то рисунок обрезается по правому и нижнему краю. Если новые размеры больше текущих размеров, то добавленная область получает текущий фоновый цвет. Отменить последнее изменение можно командой ОТМЕНИТЬ в меню ПРАВКА. Также есть возможность выбрать единицы измерения и тип цветовой палитры (цветная или черно-белая). Создание нового рисунка. Для создания нового рисунка применяют пункты меню ФАЙЛ ► СОЗДАТЬ. После этого в рабочей области окна появится белый прямоугольник, на фоне которого и рабо- 243
Рис. 4.18. Окно графического редактора Paint тают. Сохраняется рисунок одним из ранее известных способов: че- рез меню ФАЙЛ или при закрытии окна. Сохранение, как было отмечено раньше, можно произвести в одном из форматов: .bmp, .gif, •JPg. Панель инструментов. Кратко охарактеризуем набор стандартных инструментов графического редактора Paint (рис. 4.19). Карандаш — при нажатой левой кнопки мыши за курсором мыши рисуется его след выбранного цвета толщиной 1 пиксел. При отпущенной левой кнопке след не рисуется. Кисть — действие похоже на карандаш, но можно менять форму кисти — кружок, квадратик, линия и др. Распылитель — рисование с эффектом распыления краски. 244
Рис. 4.19 Панель инструментов Paint Ластик — для стирания части рисунка. Можно менять размер ластика. Удаленный участок будет закрашен цветом фона. Заливка — позволит закрасить выбранным цветом внутреннюю часть произвольной замкнутой области. Для этого требуется выполнить щелчок в любой точке внутри области. Если область не является замкнутой, то закрасится вся рабочая область. Линия — предназначена для рисования прямой линии (отрезка) выбранного цвета и толщины. Концы отрезка — места, где была нажата и отпущена левая кнопка мыши. Кривая — предназначена для рисования гладких кривых линий, соединяющих заданные точки, выбранного цвета и толщины. Сначала проводят прямую линию, затем при нажатой левой кнопке мыши кривую можно дважды изогнуть в указанных направлениях. Прямоугольник — используется для рисования закрашенных и незакрашенных прямоугольников и квадратов. Требуется нажать на 245
левую кнопку мыши, перенести курсор в иную точку и отпустить кнопку. Возможные режимы — «только рамка», «рамка и заполнение», «только заполнение». Многоугольник — рисование многоугольников. Для рисования первой стороны требуется перетащить курсор при нажатой кнопке. Для построения следующих сторон можно щелкать мышкой в вершинах многоугольника. Эллипс — рисование эллипса, вписанного в намеченный прямоугольник. Можно выбрать режим (см. прямоугольник). Округленный прямоугольник — рисование прямоугольника с округленными вершинами. Выбор цвета. Для выбора цвета можно использовать два способа. Во-первых, существует палитра цветов с 28 предлагаемыми цветами (рис. 4.20). Рис. 4.20. Цветовая палитра Paint Для выбора цвета линии и закраски следует щелкнуть левой кнопкой мыши над нужным цветом. Для выбора цвета фона щелкают правой кнопкой. Используемые по умолчанию основной и фоновый цвета отображаются в левом нижнем углу окна Paint. Во-вторых, можно выбрать инструмент «Выбор цвета» и щелкнуть им в том месте экрана, который закрашен нужным цветом. Можно также щелкать левой или правой кнопкой мыши. Процесс рисования. Для того чтобы рисовать, закрашивать, менять цвет, делать надписи, стирать и т.д., в Paint необходимо выбрать нужный инструмент. Для этого используется палитра инструментов. Необходимо щелкнуть на кнопке с нужным инструментом. После этого выбранная кнопка будет находиться в нажатом состоянии. Курсор мыши также изменит свою форму. Перемещение курсора по рабочей области при нажатой левой кнопке мыши приводит к использованию инструмента и изменению рисунка. При отжатой кнопке мыши происходит простое перемещение курсора без изменения рисунка. 246
Редактирование рисунка. Инструмент «Выделение произвольной области» позволяет выделить фрагмент — произвольную область рисунка, ограниченную построенной линией. Для этого требуется активизировать инструмент, а затем при нажатой левой кнопке нарисовать замкнутую область произвольной формы. Инструмент «выделение» позволяет выделить произвольную прямоугольную область. Фрагмент рисунка можно переносить на другое место, создавать несколько копий фрагмента или передавать его в другое приложение. Выделенную область можно перетащить на другое место. Для этого нажимают левую кнопку на области, затем, не отпуская ее, перетаскивают мышь на другое место. Если при этом удерживать нажатой клавишу Ctrl, то будет перенесена копия фрагмента. Выделенную область можно поместить в буфер через меню ПРАВКА ► КОПИРОВАТЬ (ВЫРЕЗАТЬ). Над фрагментом рисунка можно производить и другие операции — изменять размеры, растягивать, поворачивать, наклонять и отражать с помощью команд меню РИСУНОК. Вставка в рисунок готовых фрагментов из буфера или из файла ПРАВКА ► ВСТАВИТЬ. При этом вставленный фрагмент первоначально располагается в верхнем левом углу экрана и его требуется перетащить на нужное место мышкой при нажатой левой кнопке. Отмена выполненной операции в Paint Во время редактирования рисунков нельзя изменять уже законченные элементы графического изображения — можно только их удалять, или переносить, или рисовать поверх них. Если рисунок случайно испорчен, можно отменить три последних сделанных изменения рисунка. Для этого используют меню ПРАВКА ► ОТМЕНИТЬ. Или можно нажать на комбинацию клавиш Ctrl + Z. Если операцию отменили по ошибке, то ее можно восстановить нажатием на клавишу F4. Преобразование рисунка. С помощью команд подменю РИСУНОК можно отражать, растягивать, сжимать, увеличивать или наклонять выделенные фрагменты рисунка. С помощью команды ОТРАЗИТЬ/ ПОВЕРНУТЬ можно отразить выделенный фрагмент относительно вертикальной или горизонтальной оси. Для этого в диалоговом окне есть переключатели «Отразить слева направо», «Отразить сверху вниз» и «Повернуть на угол 90, 180 и 270 градусов». С помощью команды РАСТЯНУТЬ/НАКЛОНИТЬ можно растянуть или наклонить выделенный фрагмент по вертикали или по го- 247
ризонтали. Для этого в диалоговом окне есть соответствующие переключатели и поля ввода. Предварительный просмотр, печать. Полученный рисунок можно напечатать на принтере через подменю ФАЙЛ ► ПЕЧАТЬ. Из-за различий между разрешающей способностью экрана и принтера, один и тот же рисунок на экране и на бумаге может выглядеть по- разному. Чтобы заранее проверить, как будет выглядеть рисунок в отпечатанном виде, используют подменю ФАЙЛ ► ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР. Далее с помощью кнопок «Крупнее» и «Мельче» можно подобрать подходящий масштаб изображения. Используя подменю ФАЙЛ ► МАКЕТ СТРАНИЦЫ, можно изменить размер страницы рисунка и используемый принтер. 4.6. Офисные интегрированные программные средства Среди множества интегрированных пакетов программ наиболее распространенным является пакет офисных программ и, в частности Microsoft Office (разработчик Microsoft). Он включает несколько приложений, образующих единую среду для обработки самой различной информации, которая может встретиться в работе офиса. В его состав входят: 1) текстовый процессор Microsoft Word; 2) электронные таблицы Microsoft Excel; 3) пакет подготовки и демонстрации презентаций Microsoft PowerPoint; 4) организатор и планировщик работы Microsoft Outlook; 5) система управления базами данных (СУБД) Microsoft Access; и д.р. Перечисленные приложения тесно интегрированы. Это означает, что все программы, входящие в состав Microsoft Office, имеют удобные возможности обмена данными. Например, если необходимо подготовить финансовый отчет по результатам некоторого периода, содержащий иллюстрации, то данные можно импортировать из Microsoft Access, обработать в Microsoft Excel, построить на их основе графики и диаграммы и затем поместить их в текст документа, который создан в Microsoft Word. Пере- 248
мещение диаграммы производится с помощью операций копирования в буфер обмена Microsoft Windows и вставки в документ, которые доступны через основное меню приложения, через панели инструментов, через горячие клавиши или через контекстное меню, которое появляется при нажатии на правую кнопку мыши. Наконец иллюстрацию, как и любой другой объект, можно «связать» с документом, просто «захватив» мышью в одном приложении и «перетащив» на подходящее место в другом (режим «Drag and Drop»). Приложения Microsoft Office допускают обмен любыми данными между любыми приложениями. При перенесении отдельных объектов из одного приложения в другое помимо обычной операции копирования/вставки возможно использование механизма связывания оригинального объекта и его копии. В этом случае при изменении исходных данных в таблице Excel меняется построенная на их основе диаграмма, а вместе с ней и та копия диаграммы, которая содержится в документе Microsoft Word. Это дает возможность эффективной работы с составными документами, в которых используются различные источники. Например, данные можно взять из базы данных Access. Они будут обновляться автоматически, и любой, кто захочет ознакомиться с таким документом, увидит самые последние цифры. Семейство Microsoft Office содержит набор инструментов, общих для всех приложений. К ним относятся механизмы проверки правописания и грамматики, средство для рисования, инструмент для создания красочных заголовков, редактор организационных диаграмм, инструмент для редактирования математических формул, редактор фотоизображений, библиотека картинок и т. д. Сюда же относятся и панели инструментов, и даже меню, которые являются стандартными элементами любого приложения Microsoft Office. Начиная с версии 97, в Microsoft Office входит приложение — Microsoft Outlook. Это приложение представляет собой инструмент для организации и планирования персональной деятельности. Microsoft Outlook включает электронную почту, базу по контактам, календарь и т.д. Но, главное, он связывает все приложения, выступая как средство организации работы с ними. С помощью Microsoft Outlook можно назначить встречу, добавив в ее описание сопроводительный документ. Это может быть список вопросов, которые планируется обсудить, в формате Microsoft Word или отчет о результатах 249
в формате Microsoft Excel. Можно переслать составленный документ по электронной почте или в виде факс-сообщения. Microsoft Office, начиная с версии для Windows 95, тесно интегрирован с операционной системой и использует все ее достоинства. Работая в сетевых операционных системах, приложения семейства Microsoft Office поддерживают совместную групповую работу нескольких человек над общими документами. Существует возможность использования материалов, расположенных не только на локальном диске рабочей станции, но и на соседнем компьютере или на сервере сети. Электронной таблицей Microsoft Excel, или базой данных Microsoft Access могут одновременно пользоваться несколько человек. Microsoft Word позволяет создать документ, над разными частями которого могут одновременно работать разные люди. Microsoft PowerPoint позволяет проводить видеоконференции. При этом презентация показывается одновременно на экранах всех участников конференции. Кроме того, все приложения Microsoft Office поддерживают работу с электронной почтой. При работе над документом, требующим корректуры нескольких людей, можно послать этот документ по почте в режиме последовательной рассылки. Как только один участник работы закончит вносить поправки, документ отправляется к следующему. После того, как документ обойдет всех указанных в рассылке людей, он возвращается к тому, кто его посылал. При этом все пометки и исправления будут отражены отдельным цветом для каждого участника совместной работы. Исправления можно просмотреть и решить, какие из них нужно принять, а какие отменить. При подготовке документа часто возникает потребность в информации, находящейся либо в файле базы данных, либо на сервере баз данных (это может быть, например, Microsoft SQL Server). Обычно в таких случаях используются специальные приложения-клиенты, поддерживающие механизм ODBC. Он обеспечивает возможность получения данных любым поддерживающим его приложением-клиентом от любого приложения-сервера. Механизм ODBC является одним из стандартных элементов Microsoft Office, доступных всем приложениям, входящим в семейство. Приложения Microsoft Office имеют широкий набор функций, рассчитанных на самые различные категории пользователей. Одна- 250
ко он не может содержать абсолютно все специфические функции, которые требуются разным пользователям. В Microsoft Office встроен универсальный язык разработки Microsoft Visual Basic. Используя его, квалифицированный пользователь может легко создать собственное приложение, отвечающее требованиям конкретной организации или подразделения. Одна и та же программа на языке Visual Basic может использовать объекты и документы из любого приложения Microsoft Office. 4.7. Интегрированные пакеты математических расчетов Последнее время ознаменовалось бурным развитием научного направления, стоящего на стыке математики и информатики, — компьютерной математики. Его можно охарактеризовать как совокупность математических, программных, аппаратных средств, обеспечивающих эффективное решение прикладных математические задач, возникающих во многих областях науки. Практическим результатом компьютерной математики явилась разработка большого количества компьютерных математических систем. Многие из них прошли большой путь развития, от громоздких ЭВМ третьего поколения до персональных компьютеров. Классификация математических систем. В настоящее время компьютерные математические системы по функциональному назначению можно подразделить на семь классов: 1. Системы для численных расчетов. 2. Табличные процессоры. 3. Матричные системы. 4. Системы для статистических расчетов. 5. Системы для специальных расчетов. 6. Системы для аналитических расчетов (компьютерной алгебры). 7. Универсальные системы. Весьма условно по уровню сложности их можно разбить на три класса: 1) начального уровня для школьников и студентов Derive, MuPad; 2) среднего уровня MuPad, MathCad; 3) высший класс Mathematica, Maple, MatLab. 251
Структура систем компьютерной математики, ставшей классической, выглядит следующим образом (рис. 4.21): Библиотеки Ядро Пакеты расширения Рис. 4.21. Структура систем компьютерной математики Ядро представляет совокупность процедур, обеспечивающих набор встроенных операторов системы. Вмешательство пользователя в ядро исключено. Интерфейс дает возможность пользователю обращаться к ядру с запросами и выдает решения на экране монитора. Программы, работающие в ядре, выполняются быстро, вызываются очень часто, и потому их ограниченное количество. Большое количество программ, используемых относительно редко, собраны в библиотеки. Расширение возможностей системы достигается за счет пакетов расширения. Эти пакеты пишутся на собственном языке расширения и могут создаваться самими пользователями. Справочная система обеспечивает получение оперативной информации по системе. Системы компьютерной математики для численных расчетов способны выполнять арифметические, алгебраические, логические операторы и функции, векторные и матричные операторы и функции, средства решения уравнений, систем линейных и нелинейных уравнений, средства решения систем дифференциальных уравнений, средства оптимизации и линейного программирования, средства создания графиков и средства программирования. К такому классу пакетов относятся Eureka и Mercury, разработанные фирмой Borland. Программы управлялись операционной системой MS-DOS, отличались простотой и были по сути первыми массовыми программными Интерфейс Справочная система 252
продуктами компьютерной математики. Интересными являются пакеты MathCad (MathSoft Inc.) ранних версий, так как они имели пользовательский интерфейс и входной язык, позволяющий создавать документы в форме протокола расчета. Сейчас математическая система Mathcad признана во всем мире одной из лучших вычислительных систем для научно-технических расчетов. Со времени своего создания претерпела множество изменений и дополнений, нашедших отражение в различных ее версиях. Возможности Mathcad очень велики, от простых расчетов до решения сложнейших систем дифференциальных уравнений, выполнения символьных вычислений или конструирования электрических схем. Система Mathcad чрезвычайно проста в использовании и требует немного времени для ее освоения. Большинство действий, необходимых при работе с системой, являются интуитивно прозрачными, пользователю, знакомому со средой Windows, не потребуется много времени для ее освоения. Система использует 32-разрядную модель памяти, что обеспечивает повышенную точность и быстродействие вычислений. Mathcad может выполнять вычисления любой сложности, по своему объему допустимые на персональном компьютере. Кроме обычных численных расчетов, система способна решать задачи в символьном (аналитическом) виде. Например, такие как Mathcad имеет развитые средства для численного решения дифференциальных уравнений и их систем. В то же время отметим, что в отличие от более продвинутых математических систем, таких как Mathematica 2 и 3 или Maple V R4 или R5, Mathcad не имеет средств аналитического решения дифференциальных уравнений. Тем не менее, опытный пользователь может воспользоваться известными средствами решения таких уравнений, например, применить прямое и обратное преобразования Лапласа. Система обладает широкими графическими возможностями. Графические представления решений в максимальной степени приближены к естественному виду, облегчают визуализацию и анализ данных. Она также позволяет создание виртуальных анимационных 253
физических экспериментов, базирующихся на математическом моделировании физических явлений. Система Mathcad полностью поддерживает технологии OLE (Object Linking and Embedding — связывание и внедрение объекта) и DDE (Dynamic Data Exchange — динамический обмен данных). OLE и DDE предоставляют Mathcad возможность работать внутри других приложений Windows или осуществлять с ними обмен данными. Mathcad работает в среде Интернет, что позволяет использовать фрагменты расчетов, хранимые в недрах информационных ресурсов сети. Система содержит внутри себя текстовый редактор со стандартными функциями, что позволяет готовить отчеты, статью и техническую документацию типографского качества. Начиная с версии 7.0, в составе Mathcad содержится системный интегратор MathConnex, который выполняет функции интеграции различных приложений с системой и обеспечивает их совместную работу Благодаря этому возможно простое и наглядное установление сложных взаимосвязей с матричной системой Mat LAB, с графической системой Axum и др. Выполняет функции имитационного моделирования систем, представленные типовыми блоками в виде функциональной схемы. В частности, он позволяет создать виртуальные физические лаборатории, содержащие сложные и дорогостоящие приборы. Пользователи, знакомые с программированием в Mathcad, могут создать библиотеку динамической компоновки (DLL), содержащую собственные внешние функции, которые будут выглядеть и работать так же, как «фирменные» функции. Матричные системы. Ранние версии MatLab являлись чисто матричными системами, даже простое число интерпретировалось как матрицы размера 1x1. Практически все функции системы определялись как матричные, т.е. способные выполнять действия над массивами. Интенсивное развитие этой системы привело к тому, что сейчас это универсальная система. Современная двенадцатая версия MatLab имеет не только самое большое число матричных операторов и функций, но и самую простую адаптацию к решению задач пользователя. Любое новое определение системы задается в виде некоторого М-файла и в дальнейшем оно может быть использовано наряду со встроенными функциями. Для MatLab создано большое 254
количество пакетов расширения. Дескрипторная графика пакета основана на принципах объектно-ориентированного программирования, добавляет мощные средства визуализации результатов вычислений. Системы статистических расчетов. К ним относятся StatGraphics Plus, Statistica, SPSS. Ввод обрабатываемых данных производится в таблицу или таблица загружается с диска, потому интерфейс систем напоминает табличный процессор Excel. Правила работы с пакетом также аналогичны Excel, т.е. вводятся в таблицу данные, выделяются данные для расчета, затем вызывается функция. В отличие от Excel программы статистических расчетов снабжены большим числом встроенных специальных функций по статистической обработке данных. Системы для специальных расчетов. Часть математических пакетов ориентирована на некоторый узко специальный круг задач. Например, систем нелинейных уравнений ТК Solver, систем дифференциальных уравнений Dynamic Solver, построения графиков Axum и т.д. Эти программы сейчас все чаще заменяются универсальными пакетами программ. К особому классу систем специальных расчетов относятся системы математического моделирования. Например, для блочно заданных систем с успехом применяется приложение Simulink, входящее в последние версии MatLab, для проектирования и моделирования электронных схем применяются OrCAD, DesignLab и др. Системы аналитических расчетов. Дают возможность производить вычисления в аналитическом виде. Одной из таких систем символьной математики (компьютерной алгебры) является Maple. Система Maple разработана в университете Ватерлоо (Канада), вместе с развитием программных средств, она успешно развивается и модифицируется. Версии системы называют реализациями. Одной из самых известных ранних реализаций является версия Maple V R5. В нее были введены возможности работы с электронными таблицами, появилась возможность записи файлов в формате HTML и введен обмен данными между документами методом перетаскивания. Современная версия системы Maple 8 — одна из самых надежных систем компьютерной математики. Перечислим некоторые возможности этой версии. 255
Простой и удобный пользовательский интерфейс (работа со многими окнами, представление данных в виде естественных математических формул, управление с помощью мыши и др.). Символьные и численные вычисления (решение уравнений, дифференцирование и интегрирование функций, вычисление пределов, разложение функций в ряды, интегральные преобразования Лапласа, Фурье и др.). Графическая визуализация вычислений (построение различных плоских и трехмерных графиков, анимация графиков, создание и проигрывание анимационных файлов и др.). Программирование (встроенный язык процедурного программирования, средства отладки программ, мощные библиотеки функций, задание внешних процедур и функций, поддержка языков Си, Фортран и др.). Ускоренные алгоритмы вычислений. Обучающий курс User's Tour, встроенный в справку. Набор новых алгоритмов решения дифференциальных уравнений, эффективных при решении задач в области моделирования физических явлений и устройств. Поддержка протокола TCP/IP, обеспечивающего динамический удаленный доступ к данным, например, для финансового анализа предприятия в реальном масштабе времени или данных о погоде. Maple — эффективный инструмент для инженеров и математиков, охватывает почти все разделы математики, широко используется во многих университетах мира. Во многих случаях от пользователя не требуется знаний алгоритмов и программирования, он только ставит задачу в традиционной форме, a Maple сам выбирает методы, алгоритмы и представляет решение в требуемом виде. Maple можно использовать и как редактор математических документов с возможностью включения графики и объектов. 256
5. Модели решения функциональных и вычислительных задач 5.1. Основные понятия В повседневной жизни, на производстве, в научно-исследовательской, инженерной или любой другой деятельности человек постоянно сталкивается с решением задач. Задачи, которые мы решаем, по своему назначению можно разделить на две категории: вычислительные задачи, целью которых является определение некоторой величины, и функциональные задачи, предназначенные для создания некого аппарата, выполняющего определенные действия — функции. Например, проектирование нового здания требует решения задачи расчета прочности его фундамента, несущих опорных конструкций, расчета финансовых затрат на строительство, определение оптимального числа работников и т.д. Для повышения производительности труда строителей создано немало машин функционального назначения (решены функциональные задачи), такие как экскаватор, бульдозер, подъемный кран и др. История развития средств вычислительной техники повествует о том, что мощным толчком для создания первых вычислительных машин стала вторая мировая война. Для успешного ведения войны требовалось решать множество вычислительных задач. Немецкий инженер Конрад Цузе сконструировал вычислительную машину Z2 (1941 г.) для выполнения необходимых расчетов при проектировании самолетов и баллистических снарядов. Английские инженеры создали вычислительную машину «Колосс» (1943 г.) для дешифровки перехваченных сообщений вражеской армии. Американский инженер Говард Эйкен для выполнения баллистических расчетов создал компьютер «Марк I» (1944 г.). Компьютеры первого и второго поколения использовались для решения вычислительных задач, для инженерных, научных, финансовых расчетов, для обработки больших объемов данных. Начиная с третьего поколения, область применения ЭВМ включает и решение функциональных задач: это обработка баз данных, управление, проектирование. Современный компьютер может выполнять практически любые задачи, а массовое 9. Информатика 257
использование персональных компьютеров и повсеместное применение новых информационных технологий отводит ему особую роль для решения любых задач. С точки зрения информатики, решение любой задачи представляет замкнутую технологическую последовательность (рис. 5.1): Реальный объект Модель Алгоритм Программа Результат Рис. 5.1. Этапы решения задачи В этом ряду каждый элемент играет свою особую роль. Объектом (от лат. objectum — предмет) называется все то, что противостоит субъекту в его практической и познавательной деятельности, все то, на что направлена эта деятельность. Под объектами понимаются предметы и явления, как доступные, так и недоступные чувственному восприятию человека, но имеющие видимое влияние на другие объекты (например, гравитация, инфразвук или электромагнитные волны). Объективная реальность, существующая независимо от нас, является объектом для человека в любой его деятельности и взаимодействует с ним. Поэтому объект всегда должен рассматриваться во взаимодействии с другими объектами, с учетом их взаимовлияния. Деятельность человека обычно идет по двум направлениям: исследование свойств объекта с целью их использования (или нейтрализации); создание новых объектов, имеющих полезные свойства. Первое направление относится к научным исследованиям и большую роль при их проведении имеет гипотеза, т.е. предсказание свойств объекта при недостаточной его изученности. Второе направление относится к инженерному проектированию. При этом важную роль играет понятие аналогии — суждении о каком-либо сходстве известного и проектируемого объекта. Аналогия может быть полной или частичной. Это понятие относительно и определяется уровнем абстрагирования и целью построения аналогии. Любой аналог (образ) какого-либо объекта, процесса или явления, используемый в качестве заменителя (представителя) оригинала, называется моделью (от лат. modulus — образец). Исследование объектов, процессов или явлений путем построе- 258
ния и изучения их моделей для определения или уточнения характеристик оригинала называется моделированием. Моделирование может быть определено как представление объекта моделью для получения информации об этом объекте путем проведения экспериментов с его моделью. Теория замещения объектов-оригиналов объектом-моделью называется теорией моделирования. Если результаты моделирования подтверждаются и могут служить основой для прогнозирования поведения исследуемых объектов, то говорят, что модель адекватна объекту. Степень адекватности зависит от цели и критериев моделирования. Все многообразие способов моделирования, рассматриваемого теорией моделирования, можно условно разделить на две группы: аналитическое и имитационное моделирование. Аналитическое моделирование заключается в построении модели, основанной на описании поведения объекта или системы объектов в виде аналитических выражений — формул. При таком моделировании объект описывается системой линейных или нелинейных алгебраических или дифференциальных уравнений, решение которых может дать представление о свойствах объекта. К полученной аналитической модели, с учетом вида и сложности формул применяются аналитические или приближенные численные методы. Реализация численных методов обычно возлагается на вычислительные машины, обладающие большими вычислительными мощностями. Тем не менее, применение аналитического моделирования ограничено сложностью получения и анализа выражений для больших систем. Имитационное моделирование предполагает построение модели с характеристиками, адекватными оригиналу, на основе какого-либо его физического или информационного принципа. Это означает, что внешние воздействия на модель и объект вызывают идентичные изменения свойств оригинала и модели. При таком моделировании отсутствует общая аналитическая модель большой размерности, а объект представлен системой, состоящей из элементов, взаимодействующих между собой и с внешним миром. Задавая внешние воздействия, можно получить характеристики системы и провести их анализ. В последнее время имитационное моделирование все больше ассоциируется с моделированием объектов на компьютере, что позволяет в интерактивном режиме исследовать модели самых разных по природе объектов. 259
5.2. Системный подход в моделировании систем Классический (или индуктивный) подход к моделированию рассматривает систему, переходя от частного к общему, и синтезирует ее путем слияния компонент, разрабатываемых отдельно. Системный подход предполагает последовательный переход от общего к частному, когда в основе рассмотрения лежит цель, при этом объект выделяется из окружающего мира. При создании нового объекта с полезными свойствами (например, системы управления) задаются критерии, определяющие степень полезности полученных свойств. Так как любой объект моделирования представляет собой систему взаимосвязанных элементов, введем понятие системы. Система S есть целенаправленное множество взаимосвязанных элементов любой природы. Внешняя среда Е представляет собой множество существующих вне системы элементов любой природы, оказывающих влияние на систему или находящихся под ее воздействием. При системном подходе к моделированию прежде всего четко определяется цель моделирования. Создание модели полного аналога оригинала дело трудоемкое и дорогое, поэтому модель создается под определенную цель. Важным для системного подхода является определение структуры системы — совокупности связей между элементами системы, отражающих их взаимодействие. Существует ряд походов к исследованию систем и ее свойств, к которым следует отнести структурный и функциональный. При структурном подходе выявляется состав выделенных элементов системы S и связи между ними. Совокупность элементов и связей позволяет судить о свойствах выделенной части системы. При функциональном подходе рассматриваются функции (алгоритмы) поведения системы, причем, каждая функция описывает поведение одного свойства при внешнем воздействии Е. Такой подход не требует знания структуры системы, а ее описание состоит из набора функций ее реакции на внешние воздействия. Классический метод построения модели использует функциональный подход, при котором в качестве элемента модели принимается компонента, описывающая поведение одного свойства и не отображающая реальный состав элементов. Кроме этого компоненты 260
системы являются изолированными друг от друга, что плохо отражает моделируемую систему. Такой метод построения модели применим лишь для простых систем, так как требует включения в состав функций, описывающих свойства системы, отношения между свойствами, которые могут быть плохо определены или неизвестны. С усложнением моделируемых систем, когда невозможно учесть все взаимовлияния свойств, применяется системный методу основанный на структурном подходе. При этом система S разбивается на ряд подсистем Sl со своими свойствами, которые, естественно, проще описать функциональными зависимостями, и определяются связи между подсистемами. В этом случае система функционирует в соответствии со свойствами отдельных подсистем и связей между ними. Это избавляет от необходимости описывать функционально взаимосвязи между свойствами системы S, делает модель более гибкой, так как изменение свойств одной из подсистем автоматически изменяет свойства системы. 5.3. Классификация видов моделирования В зависимости от характера изучаемых процессов в системе S и цели моделирования существует множество типов моделей и способов их классификации, например, по цели использования, наличию случайных воздействий, отношению ко времени, возможности реализации, области применения и др. (таблица). По цели использования модели классифицируются на научный эксперимент, в котором осуществляется исследование модели с применением различных средств получения данных об объекте, возможности влияния на ход процесса, с целью получения новых данных об объекте или явлении; комплексные испытания и производственный эксперимент, использующие натурное испытание физического объекта для получения высокой достоверности о его характеристиках; оптимизационные, связанные с нахождением оптимальных показателей системы (например, нахождение минимальных затрат или определение максимальной прибыли). По наличию воздействий на систему модели делятся на детерминированные (в системах отсутствуют случайные воздействия) и стохастические (в системах присутствуют вероятностные воздействия). Эти же модели некоторые авторы классифицируют по способу оцен- 261
Классификации видов моделей По цели использования Научный эксперимент. Комплексные испытания и производственный эксперимент. Оптимизационные модели По наличию воздействий на систему Детерминированные. Стохастические По отношению ко времени Статические. Динамические (дискретные, непрерывные) По возможности реализации Мысленные (наглядные, символические, матема- тические). Реальные (натурные, физические). Информационные По области применения Универсальные. Специализированные ки параметров системы: в детерминированных системах параметры модели оцениваются одним показателем для конкретных значений их исходных данных; в стохастических системах наличие вероятностных характеристик исходных данных позволяет оценивать параметры системы несколькими показателями. По отношению ко времени модели разделяют на статические, описывающие систему в определенный момент времени, и динамические, рассматривающие поведение системы во времени. В свою очередь, динамические модели подразделяют на дискретные, в которых все события происходят по интервалам времени, и непрерывные, где все события происходят непрерывно во времени. По возможности реализации модели классифицируются как мыс- ленные, описывающие систему, которую трудно или невозможно моделировать реально, реальные, в которых модель системы представлена либо реальным объектом, либо его частью, и информационные, реализующие информационные процессы (возникновение, передачу, обработку и использование информации) на компьютере. В свою очередь, мысленные модели разделяют на наглядные (при которых моделируемые процессы и явления протекают наглядно); символические (модель системы представляет логический объект, в котором основные свойства и отношения реального объекта выражены систе- 262
мой знаков или символов) и математические (представляют системы математических объектов, позволяющие получать исследуемые характеристики реального объекта). Реальные модели делят на натурные (проведение исследования на реальном объекте и последующая обработка результатов эксперимента с применением теории подобия) и физические (проведение исследования на установках, которые сохраняют природу явления и обладают физическим подобием). По области применения модели подразделяют на универсальные, предназначенные для использования многими системами, и специализированные, созданные для исследования конкретной системы. 5.4. Математические модели Наиболее важным этапом при построении модели является переход от содержательного описания к формальному, что объясняется участием на этом этапе специалистов в предметной области, где существует моделируемая система, и специалистов в области моделирования систем. Наиболее удобным языком для их общения, целью которого является построение адекватной модели системы, обычно, является язык математических описаний. Математическое описание системы компактно и удобно для дальнейших реализаций на компьютере, с целью проведения статистических испытаний, поэтому рассмотрим эти модели в первую очередь. 5.4.1. Построение математической моЗели системы Систему S можно представить в виде множества величин, описывающих процесс функционирования реальной системы и образующих следующие подмножества: подмножество входных воздействий: (или вектор входящих воздействий х = подмножество воздействий внешней среды: 263
(или вектор воздействия внешней среды ; подмножество собственных параметров системы: (или вектор внутренних параметров ; подмножество выходных характеристик системы: (или вектор выходных характеристик Подмножества являются независимыми (экзогенными), Y является зависимым (эндогенным) подмножеством. Процесс функционирования системы описывается во времени оператором Fs, который преобразует экзогенные переменные в эндогенные в соответствии с соотношением Эта зависимость называется законом функционирования системы S. Закон функционирования F может быть задан в виде функ- ции, функционала, логических условий, алгоритмически или таблично, а также в виде словесного набора правил соответствия. Совокупность зависимостей выходных характеристик системы от времени называется выходной траекторией y(t). Соотношение (*) является математическим описанием поведением системы во времени, поэтому модели такого типа называются динамическими моделями. Если закон функционирования у не содержит параметра времени, то такие модели называются статическими и отображают связь между подмножеством у и подмножествами x,v,h и записывается как у = Fs(x, v, ti). Если в динамической модели дискретизировать время, то в каждый момент времени можно определить состояние системы zpe Z, р = 1,2,...,л2. Множество Z всех возможных состояний системы называется пространством состояний системы. Процесс функ- 264
ционирования системы, изменяющей свое состояние в фиксированные моменты времени, можно описать векторными уравнениями:  Первое уравнение по начальному состоянию z и экзогенным переменным определяет следующее состояние, а второе по значению состояния z определяет эндогенные переменные на выходе системы. 5.4.2. Примеры построения динамических моделей При моделировании непрерывных динамических объектов в качестве моделей обычно выступают дифференциальные уравнения, связывающее поведение объекта со временем. Положительным свойством дифференциальных уравнений является то, что одно и то же уравнение моделирует системы различной физической природы. В качестве независимой переменной в динамических системах обычно выступает время, от которого зависят неизвестные значения искомой функции, определяющие поведения объекта. Математическое описание модели в общем виде:  где -мерные векторы и — непрерывна. Например, процесс малых колебаний маятника описывается обыкновенным дифференциальным уравнением Процесс в электрическом колебательном контуре 265
 Очевидно, что если положить 1 , получим уравнение, описывающее состояние во времени обеих систем Общая математическая модель позволяет исследовать одну систему, моделируя работу другой. Рассмотрим пример построения дифференциальной модели объекта. Имеется сосуд, площадь горизонтального сечения которого является функцией расстояния сечения от дна сосуда. В начальный момент времени t = О высота уровня жидкости равна А метров. Площадь сечения сосуда на высоте х равна S(x). В дне сосуда имеется отверстие площадью s. Определить зависимость уровня воды в сосуде от времени x(t). Из физики известно, что скорость истечения жидкости v в тот момент, когда высота ее уровня равна х, определяется равенством , где к - коэффициент скорости истечения жидкости из отверстия. На бесконечно малом промежутке времени dt истечение жидкости можно считать равномерным, а поэтому за время dt вытечет столбик жидкости, высота которого v dt и площадь сечения s, что, в свою очередь, вызовет понижение уровня жидкости в сосуде на — dx. Приравнивая объем жидкости, вытекшей из отверстия и из сосуда, получим . Полученное дифференциальное уравнение дает зависимость уровня воды в сосуде от времени x(t). Решим теперь конкретную задачу, выбрав сосуд с известным S(x). Пусть имеется цилиндрический сосуд радиусом R с круглым отверстием в дне радиусом г, наполненный водой. 266
Площадь поперечного сечения сосуда постоянна и не зависит от , площадь отверстия в дне . Для воды коэффициент к — 0,6. Подставив эти значения в уравнение, получим Это уравнение может быть решено аналитически или одним из численных методов. Модели динамических систем на основе дифференциальных уравнений нашли широкое применение в теории управления различными техническими объектами. Под влиянием неизвестных заранее возмущений фактическое поведение системы отклоняется от желаемого, задаваемого алгоритмом и для приближения ее поведения к необходимому значению, в состав системы вводится автоматическое управление системой. Оно может быть встроено в саму систему, но при моделировании блок управления отделяется от самой системы. В общем виде структура многомерной системы автоматического управления (САУ) представлена на рис. 5.2. Рис. 5.2. Структура многомерной системы автоматического управления Эндогенные переменные: — вектора входных и возмущающих воздействий, а также вектора ошибок и управляющих воздействий, соответственно. Экзогенные переменные: — вектор состояния системы, который обычно совпадает с век- 267
тором выходных переменных, т.е. z(t) = y(t). (Более подробно о моделировании САУ см.: «Теория автоматического управления»: Учебник для машиностроит. спец. вузов/ Под ред. Ю.М. Соломенцева. М: Высшая школа, 1999.) 5.5. Информационные модели 5.5.1. Информационные объекты и связи Информационные модели во многих случаях опираются на математические модели, так как при решении задач математическая модель исследуемого объекта, процесса или явления неизбежно преобразуется в информационную для ее реализации на компьютере. Определим основные понятия информационной модели. Информационным объектом называется описание реального объекта, процесса или явления в виде совокупности его характеристик (информационных элементов), называемых реквизитами. Информационный объект определенной структуры (реквизитного состава) образует тип (класс), которому присваивают уникальное имя. Информационный объект с конкретными характеристиками называют экземпляром. Каждый экземпляр идентифицируется заданием ключевого реквизита (ключа). Одни и те же реквизиты в различных информационных объектах могут быть как ключевыми, так и описательными. Информационный объект может иметь несколько ключей. Пример. Информационный объект СТУДЕНТ имеет реквизитный состав: номер (номер зачетной книжки — ключевой реквизит), фамилия, имя, отчество, дата рождения, код места обучения. Информационный объект ЛИЧНОЕ ДЕЛО: номер студента, домашний адрес, номер аттестата о среднем образовании, семейное положение, дети. Информационный объект МЕСТО ОБУЧЕНИЯ включает реквизиты: код (ключевой реквизит), наименование вуза, факультет, группа. Информационный объект ПРЕПОДАВАТЕЛЬ: код (ключевой реквизит), кафедра, фамилия, имя, отчество, ученая степень, ученое звание, должность. Отношения, существующие между реальными объектами, опре- 268
деляются в информационных моделях как связи. Существует три вида связей: один к одному (1:1), один ко многим (1:) и многие ко многим (). Связь один к одному определяет соответствие одному экземпляру информационного объекта X не более одного экземпляра информационного объекта Y, и наоборот. Пример. Информационные объекты СТУДЕНТ и ЛИЧНОЕ ДЕЛО будут связаны отношением один к одному. Каждый студент имеет определенные уникальные данные в личном деле. При связи один ко многим одному экземпляру информационного объекта X может соответствовать любое количество экземпляров информационного объекта Y, но каждый экземпляр объекта Y связан не более чем с одним экземпляром объекта X. Пример. Между информационными объектами МЕСТО ОБУЧЕНИЯ и СТУДЕНТ необходимо установить связь один ко многим. Одно и то же место обучения может многократно повторяться для различных студентов. Связь многие ко многим предполагает соответствие одному экземпляру информационного объекта X любое количество экземпляров объекта Y, и наоборот. Пример. Информационные объекты СТУДЕНТ и ПРЕПОДАВАТЕЛЬ имеют связь многие ко многим. Каждый студент обучается у множества преподавателей, а каждый преподаватель учит множество студентов. 5.5.2. Примеры информаиионных моделей Определим информационную модель как связанную совокупность информационных объектов, описывающих информационные процессы в исследуемой предметной области. Существующие информационные модели разделим на универсальные и специализированные. Универсальные модели предназначены для использования в различных предметных областях, к ним относятся: базы данных и системы управления базами данных, автоматизированные системы управления, базы знаний, экспертные системы. Специализированные модели предназначены для описания конкретных систем, являются уникальными по своим возможностям, более дорогостоящими. Рассмотрим некоторые универсальные модели. 269
Базы Эаннын Базы данных представляют связанную совокупность структурированных данных, относящихся к определенному процессу или явлению, в конкретной предметной области. Система управления базами данных представляет собой программный комплекс для создания, организации необходимой обработки, хранения и передачи баз данных. Ядром любой БД является модель представления данных. Модель данных представляет множество структур данных и взаимосвязи между ними. Различают иерархическую, сетевую и реляционную модели данных. Иерархическая модель представляет связи между объектами (данными) в виде дерева. К основным понятиям иерархической модели относятся: • узел — набор атрибутов данных, описывающих объект; • связь — линия, связывающая узлы нижнего уровня с одним узлом вышележащего уровня. При этом узел вышележащего уровня называют предком для соответствующих ему узлов нижнего уровня, в свою очередь, узлы нижнего уровня называют потомками связанного с ними вышележащего узла (например, на рис. 5.3. узел В1 — предок для узлов С1, С2, а узлы С1, С2 — потомки узла В1); • уровень — номер слоя узлов, отсчитанный от корня. Уровень 1 Уровень 2 Уровень 3 Рис. 5.3. Иерархическая модель данных Количество деревьев в БД определяется числом корневых записей. К каждому узлу существует единственный путь от корня. 270
Сетевая структура имеет те же составляющие, что и иерархическая, но каждый узел может быть связан с любым другим узлом (рис. 5.4). Сетевой подход к организации данных является расширением иерархического. В иерархических моделях запись-потомок должна иметь только одного предка; в сетевых — потомок может иметь любое число предков. Рис. 5.4. Сетевая модель данных Обе эти модели не получили широкого распространения из-за сложности реализации графов в виде машинных структур данных, кроме того, в них сложно осуществить операции поиска информации. Набольшее распространение получила третья модель данных — реляционная, она может так же описывать иерархическую и сетевую модель. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц и подробно рассмотрена в 4.4.3. искусственный интеллект Идеи моделирования человеческого разума известны с древнейших времен. Впервые об этом упоминается в сочинении философа и теолога Раймунда Луллия (ок.1235 — ок.1315) «Великое искусство», который не только высказал идею логической машины для решения разнообразных задач, исходя из всеобщей классификации понятий (XIV в.), но и попытался ее реализовать. Рене Декарт (1596—1650) и Готфрид Вильгельм Лейбниц (1646-1716) независимо друг от друга развивали учение о прирожденной способности ума к познанию и всеобщих и необходимых истин логики и математики, работали над созданием универсального языка классификации всех знаний. Именно на этих идеях базируются теоретические основы создания искусственного интеллекта. Толчком к дальнейшему развитию модели чело- 271
веческого мышления стало появление в 40-х гг. XX в. ЭВМ. В 1948 г. американский ученый Норберт Винер (1894-1964) сформулировал основные положения новой науки — кибернетики. В 1956 г. в Стен- фордском университете (США) на семинаре под названием «Artificial intelligence» (искусственный интеллект), посвященном решению логических задач, признано новое научное направление, связанное с машинным моделированием человеческих интеллектуальных функций и названное искусственный интеллект. Вскоре эта отрасль разделилась на два основных направления: нейрокибернетику и кибернетику «черного ящика». Нейрокибернетика обратилась к структуре человеческого мозга как единственно мыслящему объекту и занялась его аппаратным моделированием. Физиологи давно выявили нейроны — связанные друг с другом нервные клетки как основу мозга. Нейрокибернетика занимается созданием элементов, аналогичных нейронам, и их объединением в функционирующие системы, эти системы называют ней- росетями. В середине 80-х гг. XX в. в Японии был создан первый нейрокомпьютер, моделирующий структуру человеческого мозга. Его основная область применения — распознавание образов. Кибернетика «черного ящика» использует другие принципы, структура модели не главное, важна ее реакция на заданные входные данные, на выходе модель должна реагировать как человеческий мозг. Ученые этого направления занимаются разработкой алгоритмов решения интеллектуальных задач для имеющихся вычислительных систем. Наиболее значимые результаты: • Модель лабиринтного поиска (конец 50-х гг.), в которой рассматривается граф состояний объекта и в нем происходит поиск оптимального пути от входных данных к результирующим. На практике эта модель не нашла широкого применения. • Эвристическое программирование (начало 60-х гг.) разрабатывало стратегии действий на основе заранее известных заданных правил (эвристик). Эвристика — теоретически не обоснованное правило, позволяющее уменьшить количество переборов в поиске оптимального пути. • Методы математической логики. Метод резолюций, позволяющий на основе определенных аксиом автоматически доказывать теоремы. В 1973 г. создан язык логического программирования Пролог, позволяющий обрабатывать символьную информацию. 272
С середины 70-х гг. реализуется идея моделирования конкретных знаний специалистов-экспертов. В США появляются первые экспертные системы. Возникает новая технология искусственного интеллекта, основанная на представлении и использовании знаний. С середины 80-х гг. искусственный интеллект коммерциализируется. Растут капиталовложения в эту отрасль, появляются промышленные экспертные системы, повышается интерес к самообучающимся системам. Базы знаний При изучении интеллектуальных систем необходимо выяснить, что представляют собой знания и в чем их отличие от данных. Понятие знания определяют по-разному, но какого-либо исчерпывающего определения нет. Приведем некоторые из определений: Знания — выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области. Знания — хорошо структурированные данные, или данные о данных, или метаданные. Знания — совокупность сведений, образующих целостное описание, соответствующее некоторому уровню осведомленности об описываемом вопросе, объекте и т.д. С точки зрения искусственного интеллекта знания определяют как формализованную информацию, на которую ссылаются в процессе логического вывода. Для хранения знаний используют базы знаний. База знаний — основа любой интеллектуальной системы. С точки зрения решения задач в некоторой предметной области знания удобно разделить на две категории — факты и эвристику. Первая категория описывает известные в данной области обстоятельства, знания этой категории иногда называют текстовыми, подчеркивая их достаточное описание в литературе. Вторая категория знаний опирается на практический опыт специалиста-эксперта данной предметной области. Кроме того, знания делят на процедурные и декларативные. Исторически первыми появились процедурные знания, «рассыпанные» в алгоритмах. Они управляли данными. Для их изменения требовалось вносить изменения в программы. С развитием искусственного 273
интеллекта все большая часть знаний формировалась в структурах данных: таблицах, списках, абстрактных типах данных, знания все больше становились декларативными. Декларативные знания — это совокупность сведений о характеристиках свойств конкретных объектов, явлений или процессов, представленных в виде фактов и эвристик. Исторически такие знания накапливались в виде разнообразных справочников, с появлением ЭВМ приобрели форму баз данных. Декларативные знания часто называют просто данными, они хранятся в памяти информационной системы (ИС) так, что имеют непосредственный доступ для использования. Процедурные знания хранятся в памяти ИС в виде описаний процедур, с помощью которых их можно получить. В виде процедурных знаний обычно описывают способы решения задач предметной области, различные инструкции, методики и т.п. Процедурные знания — это методы, алгоритмы, программы решения различных задач в выбранной предметной области, они составляют ядро базы знаний. Процедурные знания образуются в результате осуществления процедур над фактами как исходными данными. Одной из наиболее важных проблем, характерных для систем искусственного интеллекта, является представление знаний. Форма представления знаний существенно влияет на характеристики и свойства системы. Для манипуляции различными знаниями реального мира на компьютере необходимо провести их моделирование. Существует множество моделей представления знаний для различных предметных областей, но большинство из них относятся к следующим классам: логические модели; продукционные модели; семантические сети; фреймовые модели. Традиционно в представлении знаний выделяют формальные логические модели, основанные на классическом исчислении предикатов первого порядка, когда предметная область описывается в виде набора аксиом. Вся информация, необходимая для решения задач, рассматривается как совокупность правил и утверждений, которые представляются как формулы в некоторой логике предикатов. Знания отражают совокупность таких формул, а получение новых знаний сводится к реализации процедур логического вывода. Эта логическая модель применима в основном в исследовательских «идеальных» системах, так как предъявляет высокие требования и 274
ограничения предметной области. В промышленных экспертных системах используются ее различные модификации и расширения. Исследования процессов принятия решений человеком показали, что рассуждая и принимая решение, человек использует продукционные правила (от англ. production — правило вывода, порождающее правило). Продукционная модель, основанная на правилах, позволяет представить знания в виде предложений: ЕСЛИ (список условие), ТО (следует выполнить перечень действий). Условие — это предложение, по которому происходит поиск в базе знаний, а действие есть некоторая операция, выполняемая при успешно осуществленном поиске. Действия могут быть как промежуточными, выступающими далее как условия, так и целевыми, завершающими работу ИС. В продукционной модели база знаний состоит из совокупности правил. Программа, управляющая перебором правил, называется машиной вывода. Механизм выводов связывает знания и создает из их последовательности заключение. Вывод бывает прямой (метод сопоставления, от данных к поиску цели) или обратный (метод генерации гипотезы и ее проверки, от цели — к данным). Пример. Имеется фрагмент базы знаний, состоящий из двух правил: Пр. 1: ЕСЛИ «ведение бизнеса» и «знакомство с Интернет», ТО «электронная коммерция». Пр. 2: ЕСЛИ «владеет компьютером», ТО «знакомство с Интернет». В систему поступили данные: «ведение бизнеса» и «владеет компьютером». ПРЯМОЙ ВЫВОД: На основе имеющихся данных получить заключение. 1-й проход: Шаг 1. Проверяем Пр. 1, не работает — не хватает данных «знакомство с Интернет». Шаг 2. Проверяем Пр. 2, работает, база дополняется фактом «знакомство с Интернет». 2-й проход Шаг 3. Проверяем Пр. 1, работает, система дает заключение «электронная коммерция». 275
ОБРАТНЫЙ ВЫВОД: Подтвердить выбранную цель с помощью имеющихся правил и данных. 1-й проход: Шаг 1. Цель - «электронная коммерция»: Проверяем Пр. 1, данных «знакомство с Интернет» нет, они становятся новой целью, и есть правило, где она в правой части. Шаг 2. Цель — «знакомство с Интернет»: Пр. 2 подтверждает цель и активизирует ее. 2-й проход: Шаг 3. Пр. 1 подтверждает искомую цель. Продукционная модель привлекает разработчиков наглядностью, модульностью, легкостью внесения дополнений и изменений, простотой механизма логического вывода, чаще всего используется в промышленных экспертных системах. Семантика — это наука, исследующая свойства знаков и знаковых систем, их смысловую связь с реальными объектами. Семантическая сеть — это ориентированный граф, вершины которого есть понятия, а дуги — отношения между ними (рис. 5.5). Это наиболее общая модель знаний, так как в ней имеются средства всех характерных для знаний свойств: внутренней интерпретации, структурированности, семантической метрики и активности. Студент учится Технический университет например имеет частью Попов учится изучает Программирование Кафедра Моделирование И С имеет частью Факультет информатики ведет ого Учебная дисциплина Рис. 5.5. Семантическая сеть Достоинствами сетевых моделей являются: большие выразитель- 276
ные возможности; наглядность системы знаний, представленной графически; близость структуры сети, представляющей систему знаний, семантической структуре фраз на естественном языке; соответствие современным представлениям об организации долговременной памяти человека. К недостаткам отнесем то, что сетевая модель не содержит ясного представления о структуре предметной области, которая ей соответствует, поэтому ее формирование и модификация затруднительны; сетевые модели представляют собой пассивные структуры, для их обработки используется специальный аппарат формального вывода. Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети поставленной задачи, что, в свою очередь, говорит еще об одном недостатке модели — сложность поиска вывода на семантических сетях. Сетевые модели являются наглядным и достаточно универсальным средством представления знаний. Однако их формализация в конкретных моделях представления, использования и модификации знаний представляет достаточно трудоемкий процесс, особенно при наличии множественных отношений между понятиями. Термин фрейм (от англ. frame — каркас, рамка) предложен для обозначения структуры единицы знаний, которую можно описать некоторой совокупностью понятий, для ее пространственного восприятия. Фрейм имеет определенную внутреннюю структуру, состоящую из совокупности элементов, называемых слотами. Каждый слот, в свою очередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом. Фреймовая модель представляет собой систематизированную в виде единой теории технологическую модель памяти человека и его сознания. В отличие от других моделей, во фреймах фиксируется жесткая структура. В общем случае фрейм определяется следующим образом: {ИМЯ ФРЕЙМА: (имя 1-го слота: значение 1-го слота); (имя 2-го слота: значение 2-го слота); (имя N-ro слота: значение N-ro слота)}. Важным свойством фреймов является наследование свойств, заимствованное из теории семантических сетей. Наследование происходит по АКО-связям (от A Kind Of, что означает «эт.е.»). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно 277
наследуется, т.е. переносятся значения аналогичных слотов. Например, в сети фреймов на рис. 5.6 «конструктор» наследует свойства фреймов «инженер» и «человек», которые стоят на более высоком уровне иерархии. Человек АКО млекопитающее Умеет мыслить Инженер АКО человек Возраст от 22 лет Имеет высшее техническое образование Конструктор АКО Умеет инженер создавать конструкции сооружений или механизмов Рис. 5.6. Сеть фреймов Модель фрейма достаточно универсальна, позволяет отобразить все многообразие знаний о мире через: • фреймы-структуры, для обозначения объектов и понятий (лекция, конспект, кафедра); • фреймы-роли (студент, преподаватель, декан); • фреймы-сценарии (сдача экзамена, празднование именин, получение стипендии); • фреймы-ситуации (тревога, рабочий режим учебного дня) и др. Основным преимуществом фреймов как модели представления знаний является их способность отражать концептуальную основу организации памяти человека, а также гибкость и наглядность. Обобщая анализ моделей представления знаний, можно сделать следующие выводы: • Нельзя дать универсальных рекомендаций по выбору модели. Этот выбор определяется возможностью и удобством представления исследуемой предметной области с учетом необходимости использования знаний. • Наиболее мощными являются смешанные модели представления знаний. 278
Экспертные системы Предназначены для анализа данных, содержащихся в базах знаний, и выдачи рекомендаций по запросу пользователя. Используются в тех случаях, когда исходные данные хорошо формализуются, но для принятия решения требуются специальные обширные знания. Экспертные системы — это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей. Предметные области: медицина, фармакология, химия, геология, экономика, юриспруденция и др., в которых большая часть знаний является личным опытом специалистов высокого уровня (экспертов), нуждаются в экспертных системах. Те области, где большая часть знаний представлена в виде коллективного опыта (например, высшая математика), не нуждаются в них. Экспертная система определяется набором логически взаимосвязанных правил, формирующих знания и опыт специалиста данной предметной области, и механизмом решения, позволяющим распознавать ситуацию, давать рекомендации к действию, ставить диагноз. Современные экспертные системы способны: — по совокупности признаков заболевания установить диагноз, назначить лечение, дозировать медикаменты, выработать программу курса лечения; — выполнять задачи диагностических систем в исследовании явлений и процессов (например, для анализа крови; управления производством; изучения состояния недр земли, нефтяных полей, залежей угля и т.п.); — распознавать речь, на данном этапе в ограниченной области применения; — распознавать человеческие лица, отпечатки пальцев и др. На рис. 5.7 изображены основные компоненты модели экспертной системы: пользователь (специалист предметной области, для которого данная система предназначена), инженер по знаниям (специалист по искусственному интеллекту — промежуточное звено между экспертом и базой знаний), интерфейс пользователя (приложение, реализующее диалог пользователя и системы), база знаний — ядро экспертной системы, решатель (приложение, моделирующее рассуждения эксперта на основе имеющихся в базе знаний), подсистема 279
разъяснения (приложение, позволяющее разъяснять на основании чего экспертная система дает рекомендации, делает выводы, какие знания при этом используются), интеллектуальный редактор базы знаний (приложение, дающее инженеру по знаниям возможность создания базы знаний в диалоговом режиме). Интерфейс пользователя Пользователь Решатель База знаний Подсистема разъяснений Интеллектуальный редактор базы знаний Инженер по знаниям + Эксперт Рис. 5.7. Структура модели экспертной системы Характерной особенностью любой экспертной системы является способность к саморазвитию. Исходные данные хранятся в базе знаний в виде фактов, между которыми установлены определенные логические связи. Если при тестировании выявлены некорректные рекомендации или заключения по конкретным вопросам, либо заключение не может быть сформулировано, это означает, или отсутствие важных фактов в ее базе, или нарушения в логической системе связей. В любом случае система сама может сформировать достаточный набор вопросов к эксперту и автоматически повысить свое качество. Система управления Представляет совокупность взаимосвязанных структурных моделей подсистем, осуществляющих следующие функции: • планирование (стратегическое, тактическое, оперативное); • учет — отображает состояние объекта управления в результате выполнения производственных процессов; • контроль — определяет отклонение учетных данных от плановых целей и нормативов; 280
ШйИРШвЩй • оперативное управление — осуществляет регулирование всех процессов с целью исключения возникающих отклонений от плановых и учетных данных; • анализ — определяет тенденцию в работе системы и резервы, которые учитываются при планировании на следующий временной период. Использование моделей в составе информационных систем началось с применения статистических методов и методов финансового анализа, которые реализовывались командами обычных алгоритмических языков. Позже были созданы специальные языки, позволяющие моделировать различные ситуации. Такие языки дают возможность построения моделей определенного типа, обеспечивающих нахождение решения при гибком изменении переменных. 5.6. Моделирование инсрормаиионнын проиессоВ В традиционных инженерных дисциплинах всегда использовались последние достижения прикладной математики, гарантирующие, что проект будет отвечать поставленным требованиям. Основываясь на оценках, полученных с помощью математической модели, можно достаточно уверенно приступать, например, к конструированию здания. Однако применительно к программному обеспечению (ПО) проектирование оказывается преимущественно неформальным процессом, для которого зачастую нет моделей и методов прогнозирования результата. С этой точки зрения можно сравнить эволюцию программного и аппаратного обеспечения на протяжении нескольких последних десятилетий. Если аппаратные устройства со временем становились миниатюрнее, быстрее и дешевле, то программы, напротив, оказывались все более объемными, медленными, дорогими и менее надежными. Одна из причин такого положения состоит в том, что в основе проектирования современной аппаратуры лежит использование прогностических моделей. Отсутствие фундаментальных инженерных принципов в практике разработки ПО можно отчасти объяснить изменчивой, хаотичной природой программ, что сильно затрудняет математическое моделирование. Тем не менее имеется немало полезных аналитических ме- 281
тодик. Любое ПО имеет свой жизненный цикл — период от начала проектирования и до его модернизации или замены более современной версией. В конце 60-х гг. появился термин software engineering (инженерное проектирования программ), которым обозначали совокупность административных и технических методов, процедур и инструментальных средств, необходимых для эффективного написания крупных программных систем. Были разработаны разные подходы для проектирования алгоритмов и программ, которые появлялись и развивались под влиянием увеличивающейся потребности в скорости и качестве разработки ПО. 5.6.1. Модели разработки программного обеспечения Для инженерного подхода к проектированию ПО были предложены модели процесса его разработки. Первым по времени и наиболее популярным можно считать метод «водопада». Эта модель идеализирует процесс проектирования, предполагая, что каждый этап проекта завершается до начала следующего и не осуществляется воз- Анализ Требования Спецификация Архитектурное проектирование Детальное проектирование Кодирование Тестирование Рис. 5.8. Моделирование методом «водопада» 282
врата к предыдущему этапу (рис. 5.9). Учитывая важность для дальнейшей разработки первых этапов проектирования, а стоимость исправления допущенных на этих этапах ошибок наиболее высокой, метод «водопада» был улучшен введением временных прототипов (см. рис. 5.9). Например, прототипов интерфейса, анализ которых пользователем может дать дополнительные сведения до разработки основных программных конструкций следующих этапов. Анализ Требования Спецификация Создание временных прототипов Архитектурное проектирование Детальное проектирование Кодирование Тестирование Рис. 5.9. Метод «водопада» с введением временных прототипов Еще одна модель жизненного цикла — спиральная модель управления рисками (рис. 5.10). В этой модели жизненный цикл ПО не заканчивается, а продолжается его модернизация, на что и указывает спираль. Анализ рисков состоит в определении затрат, в случае ошибок, допущенных на первом этапе. Для снижения рисков предлагаются дополнительные работы, например создание временных прототипов. 283
I. Определение 2. Анализ риска целей, альтернатив и ограничений 4. Планирование 3. Разработка следующего цикла и верификация Рис. 5.10. Спиральная модель 5.6.2. Методы проектирования программного обеспечения Один из наиболее популярных методов проектирования ПО — метод нисходящего проектирования. Он предполагает последовательное разложение общей функции обработки данных на простые (для данного уровня) функциональные элементы. В результате получается иерархическая модель, отражающая состав и взаимоподчиненность отдельных функций. Эта схема носит название функциональной структуры алгоритма (ФСА) приложения. Недостатком ФСА является то, что каждый ее уровень является единым целым и не может разрабатываться параллельно группой разработчиков. Следующий метод — модульное проектирование. Этот метод предполагает разбиение исходной функции обработки данных на ряд программных модулей, которые характеризуются следующими параметрами: • один входной и один выходной поток данных; • все операции, необходимые для преобразования входного потока в выходной, выполняются внутри модуля; • результат работы модуля зависит только от входного потока и не зависит от работы других модулей. 284
Состав и вид программных модулей в значительной мере определяется инструментальными средствами разработки, например, для Access набор модулей может быть таким: экранные формы, отчеты, меню и т.д. Оба эти метода относятся к стратегии проектирования ПО, получившей название структурное проектирование или проектирование на основе потоков данных, В этой стратегии не учитывались сущность и связи объектов предметной области. Для нее характерно преобразование входной информации в выходную способами, не учитывающими физическую сущность модели предметной области. В начале 80-х гг. появился новый подход, который был основан на моделировании реального мира изнутри наружу, т.е., моделируя все элементы системы и связи между ними, получаем модель предметной области, преобразование информации в которой происходит так же, как и в реальной моделируемой системе. Этот подход был назван методом объектно-ориентированного проектирования (ООП). При ООП на первом этапе выявляются объекты реального мира, их свойства и действия, на следующих — эти объекты и их поведение отображаются на объекты программы. Для любого метода проектирования ПО очень важным являются документирование и нотация, т.е. запись операций условным стандартизованным способом. Для структурного проектирования наиболее часто использовалась нотация схем алгоритмов. Для ООП в настоящее время используется нотация UML (Unified Modeling Language) — унифицированный язык моделирования, используя который в качестве нотации, мы будем моделировать информационные системы с помощью современных средств автоматизации программирования. 5.7. Унифииированный язык моделирования UML В начале 90-х гг. из всего множества языков объектно-ориентированного анализа и проектирования выделились три, наиболее часто используемых при разработке систем: Booch, созданный Грейди Бучем, OOSE (Object-Oriented Software Engineering), разработанный Айваром Джекобсоном, и ОМТ (Object Modeling Technique), автором 285
которого является Джеймс Рамбо. Каждый из этих методов является вполне законченным языком ООП, однако метод ВООСН особенно удобен на этапах проектирования модели, OOSE — на этапе анализа и формулирования требований, а ОМТ — удобен при проектировании СУБД. Создание языка, объединяющего достоинства этих трех методов, началось в начале 1995 г., когда эти три автора объединили свои методы для создания унифицированного языка для фирмы Rational Software. В 1997 г. была принята версия UML 1.1, взятая на вооружение всеми компаниями — производителями систем автоматизированного проектирования. В 2001 г. появилась версия 2.0. В настоящее время идет утверждение UML в качестве стандарта ISO. 5.7.1. Концептуальная модель UMIL Словарь UML включает три основных блока: • сущности; • отношения; • диаграммы. Сущность - это основные структурные блоки языка. UML имеет четыре типа сущностей: • структурные; • поведенческие; • группирующие; • аннотационные. Структурные сущности — это имена существительные, представляющие статические части модели, соответствующие физическим элементам системы. Среди них можно выделить следующие. Класс — описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Интерфейс — совокупность операций, которые определяют набор услуг (сервис), предоставляемый классом или компонентом. Он определяет только спецификацию операций, но не их исполнение. Обычно изображается с реализующим его классом или компонентом. Кооперация определяет взаимодействие. Она представляет собой совокупность ролей и других элементов, которые, работая совместно, производят некоторый кооперативный эффект, не сводящийся к простой сумме слагаемых. Кооперация имеет как структурный, так 286
и поведенческий аспект. Один и тот же класс может принимать участие в нескольких кооперациях. Кооперация является реализацией образцов поведения, формирующих систему. Прецедент — это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат для какого-нибудь актера. Прецедент применяется для структурирования поведенческих сущностей модели. Прецеденты реализуются посредством кооперации. Активный класс — класс, объекты которого вовлечены в один или несколько процессов или нитей (нить — процесс, создаваемый внутри другого процесса как его часть, но получающий свой квант времени процессора) и поэтому могут инициировать управляющие воздействия. Активный класс подобен обычному классу, кроме того, что его объекты представляют собой элементы, которые осуществляют свою деятельность одновременно с деятельностью других элементов. Компонент — физическая заменяемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает его реализацию. Компонент, как правило, представляет собой упаковку таких элементов, как классы, интерфейсы, кооперации. Узел — это вычислительный ресурс, обладающий обычно объемом памяти и способностью обработки. Совокупность компонентов может размещаться в узле или мигрировать с одного узла на другой. Для вышеперечисленных сущностей существуют разновидности: • классы — актеры, сигналы, утилиты; • компоненты — приложения, документы, файлы, страницы, таблицы. Поведенческие сущности представляют собой глаголы языка, они описывают поведение модели во времени и пространстве. Взаимодействие — поведение, заключающееся в обмене сообщениями. Автомат — алгоритм поведения, определяющий последовательность состояний объекта в зависимости от событий и своего текущего состояния. Автомат — это граф, состоящий из состояний и переходов. Переходы — линии с указанием события. Группирующие сущности являются организующими частями модели. Это бяоки, на которые можно разложить модель. Пакет: его основное назначение — сгруппировать на этапе проектирования сущности так, чтобы яснее была видна концептуальная 287
схема системы. В UML существуют также разновидности пакетов: каркасы, модели и подсистемы. Лннотационные сущности используются для дополнительного описания или замечания к любому элементу. 5.7.2. Отношения В UML В UML определены четыре типа отношений: • зависимость; • ассоциация; • обобщения; • реализация. Отношения являются связующими элементами для объединения сущностей. Зависимость — это семантическое (смысловое) отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой. Ассоциация — структурное отношение, описывающее совокупность связей между объектами. Графически изображается прямой линией (иногда со стрелкой или меткой), рядом с которой могут присутствовать дополнительные обозначения, например, кратность или имена. Обобщение — это отношение «родитель — потомок». Реализация — это семантическое отношение между интерфейсами и реализующими их классами или между прецедентами и реализующими их кооперациями. 5.7.3. Диаграммы Диаграмма — это графическое представление набора элементов с отношениями между ними. Обычно представляет собой ориентированный граф, описывает систему визуально с какой-либо точки зрения. Всего существует девять типов диаграмм. Диаграмма классов — включает классы, интерфейсы, объекты и кооперации, а так же отношения между ними. Эта диаграмма соответствует статическому виду системы с точки зрения проектирования. Диаграмма объектов — представляет объекты и отношения меж- 288
ду ними. Она дает статический слепок экземпляров сущностей, показанных на диаграмме классов. Диаграмма прецедентов — включает прецеденты и актеров (внешние, по отношению к данной системе, лица или другие системы), а также отношения между ними. Диаграмма последовательностей — представляет связи между объектами, в частности сообщения, и отражают их временную упорядоченность. Диаграмма коопераций — представляет структурную организацию объектов, обменивающихся сообщениями. Диаграмма состояния — представляет собой автомат, включающий состояния, переходы, события и все виды действия. Они относятся к динамическому виду системы и наиболее часто используются при моделировании работы интерфейса, класса или кооперации. Диаграмма деятельности — разновидность диаграммы состояния, показывает потоки управления между объектами. Диаграмма компонентов — представляет организацию компонентов и существующих между ними зависимостей. Относится к статическому виду системы. Диаграмма развертывания — представляет конфигурацию обрабатывающих узлов системы и размещенных в них компонентов. Относится к статическому виду системы. 5.7.4. Инструментарий проектирования программного обеспечения Многие продукты, реализующие CASE-технологии (Computer Aided Software Engineering — автоматизированное проектирование и создание программ), в настоящее время поддерживают нотацию UML. Такие пакеты, как Paradigm Plus, System Architect, Microsoft Visual Modeler, Delphi и др., поддерживают нотацию UML. Наиболее мощный пакет проектирования, разработанный компанией Rational Software — Rational Rose (RR), позволяет использовать при разработке все возможности языка UML. Процесс проектирования ПО должен представлять собой итерационный процесс. В RR определены четыре фазы проектирования, которые, повторяясь, могут постепенно улучшать проект на всех ста- 10. Информатика 289
днях. Каждая стадия является законченным этапом. Она документирована и может быть предъявлена заказчику и верифицирована. Первая фаза: определение свойств системы. На этом этапе задается идея нового ПО, определяются варианты разработки, круг лиц, взаимодействующих с ПО, круг задач (варианты использования Use Case), время и стоимость разработки. RR в первой фазе позволяет отображать диаграммы прецедентов (варианты использования) для нескольких вариантов разработки, документировать эти варианты с описанием действующих лиц и прецедентов. Эти диаграммы можно показать заказчикам, чтобы убедиться в полном представлении свойств ПО. Вторая фаза: уточнение. В этой фазе производится планирование, анализ и проектирование архитектуры для каждого варианта разработки. Она включает в себя следующие этапы: кодирование прототипов, разработка тестов и выбор варианта разработки. На основании анализа проводится разработка технического задания для ПО. RR позволяет на этом этапе, при помощи построения диаграммы последовательности и кооперативных диаграмм, проиллюстрировать поток обработки данных и детализировать проект. Результаты этого этапа передаются разработчикам, которые начинают конструировать ПО. Третья фаза: конструирование.Это фаза разработки и тестирования ПО. В этой фазе проект уже представлен в виде отдельных частей, которые можно разрабатывать параллельно. RR позволяет на этом этапе построить диаграммы компонентов, по которым она генерирует «скелетный код» системы на заданном языке высокого уровня. После уточнения кода вручную можно произвести обратное проектирование полученного кода с целью уточнения исходной модели. Четвертая фаза: ввод в действие. Эта фаза наступает, когда готовый продукт, откомпилированный в среде выбранного языка высокого уровня, передают пользователю. В этой фазе RR не используется. 290
6. Основы алгоритмизации и технологии программировании 6.1. Понятие алгоритма и его свойства Каждый из нас постоянно решает множество задач: как быстрее добраться на работу, как лучше спланировать дела текущего дня и многие другие. Некоторые задачи мы решаем автоматически, так как на протяжении многих лет привыкли к их выполнению, другие требуют длительного размышления над решением, но в любом случае, решение каждой задачи всегда делится на простые действия. Алгоритм — описанная на некотором языке точная конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение поставленной задачи. Понятие алгоритма, являющееся фундаментальным в математике и информатике, возникло задолго до появления средств вычислительной техники. Слово «алгоритм» появилось в средние века, когда европейцы познакомились со способами выполнения арифметических действий в десятичной системе счисления, описанными узбекским математиком Муххамедом бен Аль-Хорезми («аль-Хорезми» — человек из города Хорезми; в настоящее время город Хива в Хорезмской области Узбекистана). Слово алгоритм — есть результат европейского произношения слов аль-Хорезми. Первоначально под алгоритмом понимали способ выполнения арифметических действий над десятичными числами. В дальнейшем это понятие стали использовать для обозначения любой последовательности действий, приводящей к решению поставленной задачи. Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя (человека, робота, компьютера, языка программирования и т.д.). Свойством, характеризующим любого исполнителя, является то, что он умеет выполнять некоторые команды. Совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя. Алгоритм описывается в командах исполнителя, который будет его реализовы- 291
вать. Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм. Значение слова «алгоритм» очень схоже со значениями слов «рецепт», «метод», «процесс». Однако, в отличие от рецепта или процесса, алгоритм характеризуется следующими свойствами: дискретностью, массовостью, определенностью, результативностью, формальностью. Дискретность (разрывность — противоположно непрерывности)— это свойство алгоритма, характеризующее его структуру: каждый алгоритм состоит из отдельных законченных действий, говорят: «Делится на шаги». Массовость — применимость алгоритма ко всем задачам рассматриваемого типа, при любых исходных данных. Например, алгоритм решения квадратного уравнения в области действительных чисел должен содержать все возможные исходы решения, т.е., рассмотрев значения дискриминанта, алгоритм находит либо два различных корня уравнения, либо два равных, либо делает вывод о том, что действительных корней нет. Определенность (детерминированность, точность) — свойство алгоритма, указывающее на то, что каждый шаг алгоритма должен быть строго определен и не допускать различных толкований; также строго должен быть определен порядок выполнения отдельных шагов. Помните сказку про Ивана-царевича? «Шел Иван-царевич по дороге, дошел до развилки. Видит большой камень, на нем надпись: «Прямо пойдешь - голову потеряешь, направо пойдешь — жену найдешь, налево пойдешь — разбогатеешь». Стоит Иван и думает, что дальше делать». Таких инструкций алгоритм содержать не может. Результативность — свойство, состоящее в том, что любой алгоритм должен завершаться за конечное (может быть очень большое) число шагов. Вопрос о рассмотрении бесконечных алгоритмов остается за рамками теории алгоритмов. Формальность - это свойство указывает на то, что любой исполнитель, способный воспринимать и выполнять инструкции алгоритма, действует формально, т.е. отвлекается от содержания поставленной задачи и лишь строго выполняет инструкции. Рассуждать «что, как и почему?» должен разработчик алгоритма, а исполнитель фор- 292
мально (не думая) поочередн