Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования «В...
153 downloads
340 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования «Воронежская государственная лесотехническая академия»
А.В. Стариков
ОСНОВЫ ИНФОРМАТИКИ Учебное пособие
Часть I Введение в информатику. Программно-техническая организация персонального компьютера
Воронеж 2007
УДК 004.38/.45 С 77 Стариков, А. В. Основы информатики [Текст] : учеб. пособие. В 2 ч. Ч 1. Введение в информатику. Программно-техническая организация персонального компьютера / А. В. Стариков ; Фед. агентство по образованию, ГОУ ВПО «ВГЛТА». – Воронеж, 2007. – 144 с. – ISBN 978-5-7994-0214-3. В пособии представлен переработанный и значительно сокращенный материал по дисциплине Информатика, в течение ряда лет читаемый автором студентам, обучающимся по специальности 060800 (080502) – Экономика и управление на предприятии (лесной комплекс) на факультете Технология деревообработки ГОУ ВПО «ВГЛТА». В первой части пособия рассмотрены начальные понятия информатики и вопросы, связанные с традиционной архитектурой компьютеров, а также важнейшие аспекты программно-технической организации персональных компьютеров.
Табл. 8. Ил. 31. Библиогр.: 52 назв.
Печатается по решению редакционно-издательского совета ГОУ ВПО «ВГЛТА» Рецензенты: канд. физ.-мат. наук, доц. ВГТУ Е.В. Бордаков, кафедра математического обеспечения ЭВМ факультета прикладной математики, информатики и механики ВГУ
ISBN 978-5-7994-0214-3
© Стариков А.В., 2007 © ГОУ ВПО «Воронежская государственная лесотехническая академия», 2007
3
Введение Цели, задачи и структура учебной дисциплины Учебная дисциплина “Информатика” включена в цикл “Общие математические и естественнонаучные дисциплины” Государственных образовательных стандартов для следующих специальностей: 060800 (080502) Экономика и управление на предприятии (по отраслям) [1]; 060500 (080109) − Бухгалтерский учет, анализ и аудит [2]. Согласно данным стандартам, дисциплина “Информатика” изучает: понятие и основные свойства информации; понятие и общую характеристику информационного процесса (как совокупности взаимосвязанных процессов сбора, передачи, обработки и накопления информации); технические и программные средства реализации информационных процессов; модели решения функциональных и вычислительных задач; основы алгоритмизации, языков, систем и технологий программирования; базы данных; локальные и глобальные сети ЭВМ; понятие информационной безопасности, методы и средства защиты информации. Тематическое содержание учебной дисциплины “Информатика” конкретизировано в соответствующей Рабочей программе [3]. В частности, структурно изучение дисциплины может быть представлено следующими восемью разделами (темами): 1. Общие теоретические основы информатики. 2. Компьютерные технологии обработки информации. 3. Программно-аппаратная организация IBM PC-совместимых компьютеров. 4. Основы работы пользователя в операционной среде персонального компьютера. 5. Основы работы в среде локальных и глобальных компьютерных сетей. 6. Основы работы с прикладными программами общего и специального назначения. 7. Основы алгоритмизации и программирования. 8. Основы защиты информации. Студент, успешно усвоивший курс информатики, должен: − иметь представления об информационных ресурсах общества как экономической категории; − знать основы современных компьютерных технологий и понимать их влияние на успех в профессиональной деятельности; − знать современное состояние уровня и направлений развития вычислительной техники и программных средств; − уверенно работать в качестве пользователя IBM PC-совместимого компьютера, самостоятельно использовать внешние носители информации для
4 обмена данными между компьютерами, создавать резервные копии и архивы данных и программ; − уметь работать с программными средствами общего назначения, соответствующими современным требованиям мирового рынка программного обеспечения; − иметь навыки работы в локальных и глобальных компьютерных сетях, использовать в профессиональной деятельности сетевые средства поиска и обмена информацией; − владеть основами автоматизации решения экономических задач; − владеть приемами антивирусной защиты.
Что такое информатика? Термин “информатика” возник в начале 1960-х годов во французском языке (informatique) для обозначения области автоматизированной переработки информации. Этот термин своеобразный гибрид двух слов − информация (informacion) и автоматика (automatique). От первого он унаследовал начало нового слова, а от второго − конец. Следует отметить еще один терминологический нюанс, имеющий отношение к технике в целом. Автоматизированный процесс означает не то же самое, что автоматический. Автоматический процесс протекает без участия человека, автоматизированный же предполагает сочетание функций человека и технического устройства. Именно такой характер имеет информационная техника (и реализуемые посредством ее информационные процессы) во второй половине XX и начале XXI веков. Поскольку термин “информатика” был введен французами, интересно знать его толкование, которое приведено в Энциклопедическом словаре, выпущенном Французской академией наук. Итак, информатика − это “наука об осуществляемой преимущественно с помощью автоматических средств целесообразной обработке информации, рассматриваемой как представление знаний и сообщений в технических, экономических и социальных областях”. Приведем высказывания ряда крупных отечественных ученых по поводу того, что следует понимать под словом “информатика”. Академик А.П. Ершов: Информатика − это “название фундаментальной естественной науки, изучающей процессы передачи и обработки информации”. Академик А.А. Дородницын: В составе информатики надо видеть “три неразрывно и существенно связанные части − технические средства, программные средства и алгоритмические средства”. Академик В.С. Михалевич: “Эта комплексная научная и технологическая дисциплина изучает прежде всего важнейшие аспекты разработки, проектирования, создания, “встраивания” машинных систем обработки данных, а также их воздействие на жизнь общества”.
5 Академик Е.П. Велихов: “Информатика охватывает очень широкую область обработки информации, гораздо более обширную, чем создание вычислительных машин и их математического обеспечения...”. Таким образом, суммируя вышеизложенное, можно сформулировать следующее определение: информатика − это наука обо всей сфере автоматизированной переработки и использования информации в обществе; при этом в качестве основного средства автоматизированной переработки информации следует рассматривать компьютер. Информатика изучает информационные процессы, под которыми понимаются процессы восприятия, передачи, обработки (преобразования) и использования информации. Информационный процесс может состояться только при наличии информационной системы, складывающейся из источника информации, канала передачи, правила интерпретации полученного сообщения и получателя информации. В последнее время на роль метадисциплины, рассматривающей проблемы различных отраслей знаний (и естественнонаучных, и гуманитарных) с единых информационных позиций, претендует информациология. С точки зрения этой дисциплины, информатика − ее основная составная часть, представляющая “процесс взаимозависимости и взаимодополнения информации, человека, вычислительной техники и средств связи” [4]. Следует отметить, что структура информатики как научной дисциплины складывалась постепенно. На протяжении более полувека в ней неоднократно возникали и исчезали те или иные направления. Возможность расширения области интересов информатики диктовалась, главным образом, развитием средств вычислительной техники (СВТ) и накоплением моделей и методов их применения при решении задач различного типа. В настоящее время в нее входят следующие основные области исследования [5]: − теория алгоритмов (формальные модели алгоритмов, проблемы вычислимости, сложность вычислений и т.п.); − логические модели (дедуктивные системы, сложность вывода, нетрадиционные исчисления: индуктивный и абдуктивный вывод, вывод по аналогии, правдоподобный вывод, немонотонные рассуждения и т.п.); − базы данных (структуры данных, поиск ответов на запросы, логический вывод в базах данных, активные базы и т.п.); − искусственный интеллект (представление знаний, вывод на знаниях, обучение, экспертные системы и т.п.); − бионика (математические модели в биологии, модели поведения, генетические системы и алгоритмы и т.п.); − распознавание образов и обработка зрительных сцен (статистические методы распознавания, использование призначных пространств, теория распознающих алгоритмов, трехмерные сцены и т.п.);
6 − теория роботов (автономные роботы, представление знаний о мире, децентрализованное управление, планирование целесообразного поведения и т.п.); − инженерия математического обеспечения (языки программирования, технологии создания программных систем, инструментальные системы и т.п.); − теория компьютеров и вычислительных сетей (архитектурные решения, многоагентные системы, новые принципы переработки информации и т.п.); − компьютерная лингвистика (модели языка, анализ и синтез текстов, машинный перевод и т.п.); − числовые и символьные вычисления (компьютерно-ориентированные методы вычислений, модели переработки информации в различных прикладных областях, работа с естественно-языковыми текстами и т.п.); − системы человеко-машинного взаимодействия (модели дискурса, распределение работ в смешанных системах, организация коллективных процедур, деятельность в телекоммуникационных системах и т.п.); − нейроматематика и нейросистемы (теория формальных нейронных сетей, использование нейронных сетей для обучения, нейрокомпьютеры и т.п.); − использование компьютеров в замкнутых системах (модели реального времени, интеллектуальное управление, системы мониторинга и т.п.). Отметим также, что термин “информатика” получил широкое распространение в России (информатика), Франции (informatique), Германии (informatik), Нидерландах (informatika), Испании (informatica), Италии (informatica), Польше (informatyka) и некоторых других европейских странах. В англоговорящих странах вместо термина “информатика” используется словосочетание “computer science”, что буквально переводится как “компьютерная наука”.
Что такое информация? Термин “информация” происходит от латинского informatio, что означает разъяснение, осведомление, изложение. Информация − это основное понятие информатики, до сих пор являющееся дискуссионным и неоднозначным в науке (хотя в обыденном представлении здесь, как будто, все ясно). Как пример многозначного понимания информации приведем его трактовку, данную в Философском энциклопедическом словаре: информация − это 1) сообщение, осведомление о положении дел, сведения о чем-либо, передаваемые людьми; 2) уменьшаемая, снимаемая неопределенность (как результат получения сообщений); 3) сообщение, неразрывно связанное с управлением, сигналы в единстве синтаксических, семантических и прагматических характеристик; 4) передача, отражение разнообразия в любых объектах и процессах (неживой и живой природы). В двух из четырех приведенных трактовок понятие “информация” подменяется понятием “сообщение”, при этом, по-видимому, считается, что последнее является интуитивно более понятным.
7 Одни авторы [6] предлагают “называть информацией всякий критерий выбора среди элементов некоторого множества, т.е. всякий критерий, позволяющий сократить множество, в котором разыскивается ответ на некоторый конкретный вопрос”. Другие [7] вводят “сообщение и информацию как неопределяемые основные понятия” и разъясняют их использование на ряде примеров; при этом они не считают соответствие между сообщением и информацией взаимнооднозначным, указывая на решающее значение для связи между сообщением и информацией некоторого правила интерпретации сообщения. Третьи [8] считают, что “информация − это отличная от вещественноэнергетических факторов сторона отражения, воспринимаемая материальными системами со степенью организации, достаточно высокой для ее хранения, переработки и дальнейшего использования в целях управления, и выражающаяся в упорядоченных сведениях о степени вероятности того или иного события из возможного разнообразия событий определенного вида”. Наконец, четвертые [9] понимают информацию чрезвычайно широко как “любое воздействие на человека, которое приводит к изменению его состояния”. Мы будем использовать понятие “информация” в трактовке, близкой к той, что приведена в [10], а именно: информация − это 1) сведения, неизвестные до их получения; 2) значения, приписываемые данным; или 3) данные. Причем в основном акцент будем делать на последних двух толкованиях. Информация обладает рядом свойств, основными среди которых являются достоверность, полнота и актуальность (оперативность). С точки зрения экономики и управления для этих свойств можно предложить следующие толкования: 1. Информация достоверна, если она отражает истинное положение дел. 2. Информация полна, если ее достаточно для понимания и принятия управленческих решений. 3. Информация актуальна (оперативна), если получение ее своевременно для принятия управленческих решений.
Способы представления информации в повседневной жизни, науке и технике Данный вопрос студентам рекомендуется проработать самостоятельно. В качестве учебного материала можно использовать бóльшую часть главы 1 “Информация и сообщение” в [7], а также информацию из главы 1 в [11]. Этот же вопрос может быть использован как одна из тем для написания реферата по информатике. В качестве рассматриваемых научных и технических дисциплин можно взять, например, математику (формулы), ядерную физику и физику элементарных частиц (диаграммы Фейнмана), неорганическую и органическую химию (уравнения химических реакций), информатику (языки описания алгоритмов), вычислительную технику (кодировочные таблицы) и т.д.
8
Информационные процессы Информация − важнейший компонент (объект) любого информационного процесса. Под информационным процессом обычно понимается процесс сбора (восприятия), передачи, обработки (преобразования) и использования информации. Как отмечалось выше, информационный процесс может состояться только при наличии информационной системы, обеспечивающей все его составляющие − источник информации, канал связи, соглашения (правила) интерпретации сигналов и приемник информации. Информация от источника к приемнику передается в материальноэнергетической форме (например, в виде электрических, световых, звуковых и других сигналов). Информация может быть представлена аналоговыми (т.е. непрерывными) или дискретными сигналами (лат. discretus − прерывистый, состоящий из отдельных частей). Информация, переносимая сигналами, имеет смысл, отличный как от смысла самого факта поступления сигналов, так и от формы их передачи. Следовательно, источник и потребитель информации должны “договориться” о конкретной форме передачи информации, а также выработать некоторое соглашение относительно расшифровки (интерпретации) полученных сигналов. В общем случае источник информации, восприняв некоторое явление (факт, изменение состояния и т.д.), шифрует (кодирует) его в виде последовательности сигналов с последующей пересылкой их в канал связи. Канал связи выступает как внешняя (по отношению как к источнику, так и приемнику) среда, отражающая состояния источника и воздействующая каким-либо образом на приемник. При передаче сигналов по каналу связи на них воздействуют помехи (“шумы”), приводящие к изменению первоначальной формы и, возможно, смысла первоначального сигнала. Приемник (адресат, потребитель) информации при получении сигналов должен выполнить предварительную их обработку, цель которой заключается в исключении “шумов” и интерпретации (расшифровке), т.е. в извлечении смыслового содержания, заключенного в сигналах. После этого он может использовать полученную информацию по своему усмотрению. Существование и развитие человеческого общества невозможно без осуществления информационных процессов. Определяющую роль в информационной системе, обеспечивающей составляющие информационного процесса, играет язык. Действительно, в какой бы форме и какими бы средствами не передавалась информация, она всегда передается с помощью некоторого языка. Применяя язык как способ представления информации, а также различные формы и средства передачи информации, человек рассчитывает на ее восприятие, анализ и использование и, следовательно, активно участвует в информационных процессах, происходящих в обществе.
9
Глава 1 Начальные сведения о компьютерах Данная глава носит вводный характер. Сведения, изложенные в ней, требуются для более глубокого понимания вопросов, рассмотренных в следующих главах пособия. Студенты, знакомые с устройством компьютеров (например, по школьному курсу “Основы информатики и вычислительной техники”), могут прочесть ее достаточно бегло, всем остальным рекомендуется более тщательное чтение.
1.1 Краткий экскурс в компьютерное прошлое Идея создания помощника в интеллектуальных занятиях владела людьми давно. Еще на заре цивилизации для облегчения счета человек использовал пальцы рук1, горсть камешков, пучок счетных палочек и т.д. Более полутора тысяч лет назад появились счеты, которые, видоизменяясь, сохранились до наших дней. Счеты имели различную форму в разных странах, но наиболее удачными считаются так называемые “русские” счеты с десятью косточками на каждом стержне. С арифметической точки зрения стержни счетов представляют собой разряды десятичной системы счисления: каждая косточка на первом стержне имеет достоинство (вес) 1, на втором – 10, на третьем – 100 и т.д. На счетах нетрудно складывать и вычитать числа. При желании и некотором упорстве можно обучиться умножению и делению на счетах, но выполняются эти операции достаточно медленно и быстро утомляют. Более поздняя история также знает примеры удачных разработок в области механизации вычислений. Так в 1642 году француз Блез Паскаль, еще не будучи известным ученым, изобрел механическое устройство для сложения чисел (сумматор). Чуть позже – в 1673 году – немецкий ученый Готфрид Вильгельм Лейбниц сконструировал арифмометр, который позволял механически выполнять четыре арифметических действия2. Спустя полтора столетия английский математик Чарльз Бэббидж предпринял попытку создания аналитической машины – устройства, способного выполнять вычисления без участия человека. Для этого она должна была иметь в своем составе такие компоненты, как “мельница” и “склад” (согласно современной терминологии – арифметическое устройство и память), состоящие из множества шестеренок и рычажков. Аналитическая машина должна была уметь работать по программе, которая наносилась на перфокарты (карты из плотной бумаги) в виде различных комбинаций 1
2
Именно этим обстоятельством объясняется чрезвычайно широкое распространение десятичной системы счисления. Примечательно, что английское слово "digit" (цифра) происходит от латинского "digitus" (палец). Широчайшую известность принесло Лейбницу, однако, не создание арифмометра, а разработка им (параллельно с Ньютоном) дифференциального и интегрального исчисления.
10 отверстий. Данные (числа) для обработки должны были храниться в памяти, пока их не начнет “перемалывать” арифметическое устройство. Полученные промежуточные результаты также должны были заноситься в память, чтобы спустя некоторое время их снова можно было использовать в вычислениях, а окончательные результаты вычислений должны были распечатываться. Идеи Бэббиджа так и не получили законченного практического воплощения, поскольку намного опередили технические возможности своего времени. С аналитической машиной Бэббиджа связано упоминание о первом программисте. Им принято считать Аду Августу Лавлейс (дочь знаменитого английского поэта Байрона), которая, обладая недюжинными математическими способностями и широким кругозором, заинтересовалась проектом Бэббиджа и исследовала возможности использования аналитической машины для выполнения сложных вычислений. Иначе говоря, она проанализировала и разработала первые программы, доказав тем самым универсальные возможности вычислительной машины. В честь заслуг этой удивительной женщины ее именем назван один из современных языков программирования3. Лишь в середине XX века инженеры смогли реализовать основные идеи Бэббиджа. Вначале немец Конрад Цузе (1941 г.), а затем и американец Говард Эйкен (1943 г.) воплотили эти замыслы в жизнь, построив свои вычислительные устройства с использованием электромеханических реле. В машине Цузе, получившей обозначение Z3, вместо привычной десятичной системы счисления использовалась двоичная система, в которой числа представляются в виде последовательности нулей и единиц. Такое представление чисел прекрасно подходит для электрических цепей, которые могут находиться в одном из двух состояний: включено или выключено. Кроме того, двоичная система удобна и для кодирования логических операций, имеющих дело с понятиями “истина” и “ложь”. А ведь именно возможность использования таких операций превращает компьютер в нечто большее, чем просто большой калькулятор. Вычислительная машина “Марк-1”, построенная группой инженеров из фирмы IBM (International Business Machines Corporation – произносится “Интернэшнл бизнес мэшинс корпорейшн”) под руководством Эйкена, так же, как и машина Цузе, управлялась программой, записанной на перфоленте. Весила она 5 тонн, стоила около 500 тысяч долларов, содержала более трех тысяч реле (всего же в ней было около 750 тысяч деталей) и предназначалась для баллистических расчетов ВМС США. Машина производила сложение и умножение двух 23-значных десятичных чисел за 0,3 и 3 секунды соответственно (а за какое время выполнит подобные операции обычный человек?). В следующей американской разработке – машина “Эниак” (1945 г.), создатели Джон Мочли и Преспер Экерт – использовались уже электронные лампы, а не элекромеханические реле, что позволило почти в 1000 раз повысить скорость вычислений по сравнению с машиной “Марк-1”. Именно “Эниак” принято считать первым 3
Ада – мощный язык программирования высокого уровня, разработанный по инициативе и при финансовой поддержке Министерства обороны США.
11 электронным “вычислителем” (computer переводится с английского как “вычислитель”)4. После него основной обрабатывающий блок (центральный процессор) вычислительных машин строился уже из электронных элементов (ламп, транзисторов, интегральных схем), а не из механических или электромеханических компонентов (шестеренок, реле и т.п.). “Эниак” превосходил “Марка” по размерам почти вдвое (высота – 6 метров, длина – 26 метров) и весил около 30 тонн. Конструкция его содержала более 17 тысяч электронных ламп, которые, перегреваясь, выходили из строя, что приводило к частым поломкам компьютера. Процесс задания программы для “Эниака” был крайне неудобен и заключался в пристыковке нескольких сотен кабелей к 40 панелям компьютера, расположенным в виде подковы вдоль стен большой комнаты, и в установке в нужные положения около 6 тысяч тумблеров и переключателей. Это занимало обычно от нескольких часов до нескольких дней. Чтобы упростить процесс задания программы, Мочли и Экерт стали конструировать новую машину “Эдвак”, которая могла бы хранить программу в своей памяти. К работе над этим проектом был привлечен известный математик Джон фон Нейман, который в 1946 году подготовил (совместно с Г. Голстейном) и разослал многим ученым обстоятельный отчет с названием “Предварительное обсуждение логического конструирования электронного вычислительного устройства”. В отчете были сформулированы общие принципы построения и функционирования компьютеров (подробнее см. п. 1.2). Проект “Эдвак” так и не был завершен в силу ряда обстоятельств (в частности, из-за разногласий, возникших между Джоном фон Нейманом и МочлиЭкертом по поводу авторских прав на идеи, представленные в отчете). Группа специалистов, работавших над созданием компьютера, распалась. Мочли и Экерт организовали собственную компанию с целью создания универсального компьютера для широкого коммерческого применения. Разработанный ими компьютер “Юнивак-1” (1951 г.) представлял собой электронное вычислительное устройство с хранимыми в памяти программами, которые вводились туда уже не с перфокарт, а с магнитной ленты, что обеспечивало высокую скорость чтения и записи информации. Справедливости ради, отметим, что “Юнивак-1” все же не является первым компьютером с хранящейся в памяти программой. Англичанин Морис Уилкс, прослушав в США курс лекций об электронных компьютерах, вернулся к себе на родину и в 1949 году построил машину “Эдсак”, в которой программа хранилась в памяти, образованной из линий задержки (ртутных трубок). В начале 50-х годов к разработке и выпуску компьютеров приступила фирма IBM, основанная в конце XIX века и специализировавшаяся первоначально на производстве счетно-перфорационной техники (табуляторов). Очень 4
Это спорное мнение, поскольку теперь известно, что сотрудники университета штата Айова Джон Атанасов и Джон Бэрри еще в 1936 году разработали и испытали специализированный компьютер, в конструкции которого были использованы электронно-вакуумные лампы.
12 быстро эта фирма, часто называемая в западных средствах массовой информации “голубым гигантом”5, по существу монополизировала рынок вычислительной техники. К середине 60-х годов компьютеры, выпущенные фирмой IBM, составляли около 80 % всего парка вычислительных машин США и Западной Европы6. В 1964 году фирма IBM выступила с новой “стратегической линией”, заявив о намерении создавать семейства совместимых компьютеров. В рамках одного семейства все компьютеры должны придерживаться общих архитектурных принципов и быть совместимыми по системе команд. В ходе выполнения новой стратегической программы были созданы два семейства компьютеров – Система-360 и Система-370, которые объединяли в своем составе несколько десятков моделей компьютеров, различающихся как по цене, так и по производительности. Выпуск широкой номенклатуры компьютеров, работающих с одними и теми же программными средствами, оказал существенное влияние на информатизацию всего мирового сообщества. История становления отечественной вычислительной техники связана с именем выдающегося ученого, академика С.А. Лебедева, многие годы возглавлявшего Институт точной механики и вычислительной техники (ИТМ и ВТ) АН СССР7 [12]. Под руководством С.А. Лебедева в 1951 году была создана первая отечественная электронно-вычислительная машина (ЭВМ), получившая название МЭСМ (малая электронная счетная машина). Память ее состояла всего лишь из 100 ячеек, а быстродействие равнялось только 50 операциям в секунду. Но именно этот “тихоход” позволил нашим ученым и инженерам “обкатать” многие новые идеи, а также приобрести необходимый опыт в создании подобных устройств. И уже в 1952 году была запущена первая из машин серии БЭСМ (большая электронная счетная машина)8. Быстродействие первой БЭСМ составляло 2 тыс. операций в секунду. Вначале БЭСМ-1 работала на ртутных линиях задержки (как и английский “Эдсак”), а затем на ней была установлена память на ферритовых сердечниках и внешняя память на магнитных барабанах. Это позволило поднять быстродействие машины до 8 тыс. операций в секунду. Развитие серии БЭСМ завершилось созданием в 1966 году транзисторной модели машины БЭСМ-6 с быстродействием 1 млн. операций в секунду. По техническим характеристикам и архитектурным решениям эта машина не уступала лучшим зарубежным компьютерам того времени. К сожалению, в последующие годы у нас стала преобладать политика копирования зарубежных образцов ВТ, что в значительной степени способствовало остановке в развитии и все возрастающему отставанию в компьютерной об5
6
7
8
Прозвище "Big Blue" (Биг Блю) фирма IBM заслужила, вероятно, потому, что ее многочисленные менеджеры традиционно одевались в светло-синие костюмы. Доля компьютеров, производимых IBM сегодня, гораздо меньше. Тем не менее, корпорация IBM по-прежнему остается крупнейшей компьютерной фирмой мира. В настоящее время данный институт входит в состав Российской академии наук (РАН) и носит имя Сергея Алексеевича Лебедева. С 1953 года начался также серийный выпуск ЭВМ "Стрела", разработанной коллективом ученых и инженеров под руководством Б.Я. Базилевского.
13 ласти от США, Японии и стран Западной Европы. Кроме того, началось сказываться несовершенство отечественных технологических разработок и линий по производству микроэлектронных компонентов (элементной базы), что не позволяло на равных конкурировать с ведущими зарубежными фирмами. Тем не менее, у нас есть несомненные достижения в использовании вычислительной техники. Уже первые полеты в космос (так же, как и все последующие) сопровождались оперативными расчетами траекторий, обработкой телеметрических измерений, прогнозированием и решением других задач, которые выполнялись на ЭВМ различных типов. Для отечественных ЭВМ были разработаны программы, решающие ряд нетрадиционных задач (игра в шахматы, сочинение музыки и т.д.). Помимо упомянутых выше машин серии БЭСМ, в 1960-70 гг. в бывшем СССР были созданы и серийно выпускались большие ЭВМ типа “Урал” (создана под руководством Б.И. Рамеева, г. Пенза) и “Минск” (В.В. Пржиелковский, г. Минск), а также мини-ЭВМ серии “Наири” (Г.Е. Овсепян, г. Ереван) и “Мир” (В.М. Глушков, г. Киев) [13]. Из отечественных разработок более позднего периода отметим высокопроизводительный многопроцессорный вычислительный комплекс (МВК) “Эльбрус” (В.С. Бурцев, г. Москва), в основе которого первоначально лежал центральный процессор БЭСМ-6. Излагая историю развития отечественной ВТ, невозможно обойти вниманием ее “ЕС-овскую” и “СМ-овскую” ветви. В 1969 году между странами СЭВ9 было заключено межправительственное соглашение по сотрудничеству в области вычислительной техники. В результате - в течение следующих полутора десятилетий Болгария, Венгрия, Восточная Германия, Польша, Румыния и Чехословакия во главе с СССР “шли в ногу” с самой могущественной компьютерной фирмой мира - корпорацией IBM, выпуская вычислительные машины серии ЕС ЭВМ (Единая Система ЭВМ) первой и второй очереди, архитектурно и программно-совместимые с IBM/360 и IBM/370 соответственно. Семейство ЕС ЭВМ включает в себя ряд моделей с быстродействием от 5 тысяч до 5 миллионов команд в секунду. Все модели ЕС ЭВМ объединены общими принципами работы, однообразием процедур управления, однотипным способом организации связей между отдельными модулями системы. Программное обеспечение в сочетании с аппаратными средствами позволяло (и позволяет до сих пор) выполнять эффективную работу ЕС ЭВМ, обеспечивая решение большого числа научно-технических, экономических, управленческих и других задач. Между перечисленными выше странами было заключено также соглашение о совместной работе в рамках программы по созданию семейства малых ЭВМ (СМ ЭВМ). В ходе реализации этой программы были разработаны две очереди СМ ЭВМ, которые включали в себя компьютеры различных классов. Среди них наибольшую известность в 1970-80 гг. получили четыре класса мини-ЭВМ первой очереди: СМ-1, СМ-2, СМ-3 и СМ-4. Вторая очередь СМ ЭВМ 9
Совет экономической взаимопомощи - социалистический вариант ЕЭС ("Общего рынка"), объединявший в свое время почти все страны бывшего социалистического лагеря.
14 состоит из пяти классов моделей ЭВМ, существенно различающихся как по цене, так и по производительности (от микроЭВМ малой производительности до супермини-ЭВМ и спецпроцессоров). Технические и программные средства СМ ЭВМ широко использовались (и используются до сих пор) для решения задач управления производством и технологическими процессами (АСУ и АСУ ТП), автоматизации научных экспериментов и других. В настоящее время отечественная электронная промышленность переживает глубокий кризис, что наглядно отражается на объеме и качестве выполняемых научно-исследовательских и опытно-конструкторских работ (НИОКР) в области проектирования современных средств ВТ общего назначения. Лишь немногие творческие коллективы продолжают перспективные разработки. Среди них следует особо отметить проект “Эльбрус E2K”, выполняемый группой специалистов под руководством члена-корреспондента РАН Б.А. Бабаяна и направленный на разработку отечественного микропроцессора, сопоставимого по производительности с современными 64-разрядными микропроцессорами. Кроме того, в последние годы под руководством академика В.А. Мельникова была разработана векторная супер-ЭВМ “Электроника СС-100”, архитектурно повторяющая известный CRAY-1, а в НИЦЭВТ ведутся работы по созданию супер-ЭВМ “Амур” [14]. И перед тем, как закончить наш исторический экскурс, несколько слов о вкладе Воронежа в развитие отечественной ВТ. В конце 1970-х годов в нашей стране начались работы по разработке и серийному выпуску относительно недорогих и достаточно надежных микроЭВМ, архитектурно и программносовместимых с микрокомпьютерами семейства PDP-11 (произносится “Пи-ДиПи”) известной американской фирмы Digital Equipment Corporation (произносится “Диджитал Эквипмент Корпорейшн”). Одним из центров такой работы стал г. Воронеж. В рамках НПО “Электроника” были созданы два новых структурных подразделения - Особое конструкторское бюро и завод “Процессор”, на которые и была возложена задача по созданию и серийному выпуску микроЭВМ. Одновременно с возведением производственных корпусов начались НИОКР в обеспечение решения задачи по созданию микроЭВМ. В короткие сроки необходимо было разработать элементную базу для будущей микроЭВМ, подготовить конструкторскую и программную документацию, решить вопросы, связанные с оснащением микроЭВМ периферийными (внешними) устройствами. В результате приложенных усилий в 1978 году был начат серийный выпуск микроЭВМ “Электроника-60” (15ВМ-16). В последующие несколько лет был разработан ряд модификаций этой микроЭВМ. В 1980-90 гг. заводом “Процессор” выпускались различные ЭВМ, среди которых наибольшую известность получили следующие: 16-разрядные микроЭВМ “Электроника-60М” и ПЭВМ “Электроника МС0585”, 32-разрядные мини-ЭВМ “Электроника-82” и микроЭВМ “Электроника МС0107”. С кратким историческим очерком, посвященном раннему становлению информатики как науки, можно познакомиться в Приложении E “К истории
15 информатики” части 2 в [7]. Увлекательное и хорошо иллюстрированное повествование об истории информатики содержится также в [15, 16]. Краткая хронология ключевых событий компьютерной индустрии представлена в [17]. Виртуальный музей истории отечественной ВТ можно посетить, воспользовавшись возможностью доступа в Internet [18].
1.2 Принципы Джона фон Неймана Принципы, сформулированные Джоном фон Нейманом и лежащие в основе большинства современных компьютеров (имеющих так называемую “традиционную” архитектуру), можно представить следующим образом: 1. Принцип программного управления. Компьютер управляется программой, состоящей из команд, каждая из которых осуществляет единичный акт преобразования информации. После ввода программы и данных в память компьютер работает автоматически, выполняя команды без вмешательства человека. Для этого компьютер всегда “помнит” адрес выполняемой команды, а каждая команда содержит (явное или неявное) указание об адресе команды, которую следует выполнять за нею. 2. Принцип условного перехода. Программа может содержать команды условного перехода, обуславливающие возможность перехода на тот или иной участок программы в процессе вычислений в зависимости от полученных промежуточных результатов. Это позволяет легко организовывать в программе циклы и осуществлять автоматический выход из них. 3. Принцип хранимой программы. Команды программы представляются числовыми кодами и хранятся в памяти компьютера точно так же, как исходные данные (а не коммутируется проводами как в “Эниаке”). Поскольку вся программа или ее часть хранится в оперативной памяти, то над ее командами можно выполнять различные операции. В частности, в команде, как правило, указываются не сами данные, над которыми нужно выполнять арифметические действия, а адреса ячеек памяти, где эти данные хранятся. Это обуславливает возможность вычисления и преобразования адресов ячеек, благодаря чему компьютер может (по заданной программе) подготавливать команды, которые сам же и выполняет. Другими словами, программа в общем случае обладает свойствами динамичности и самомодификации. 4. Принцип использования двоичной системы счисления. Информация (программы и данные) в компьютере представляется и обрабатывается в двоичном виде. Подробнее о двоичной системе счисления см. в главе 2. 5. Принцип иерархичности запоминающих устройств. Все запоминающие устройства компьютера имеют иерархическую организацию, представленную регистрами, оперативной памятью, магнитными барабанами (в настоящее время не используются, им на смену пришли магнитные диски), магнитными лентами (более подробно о перечисленных устройствах см. ниже в п. 1.3). Сле-
16 дует отметить, что запоминающие устройства перечислены в порядке уменьшения скорости доступа к хранящимся в них данным и возрастания объемов хранения. И завершая рассмотрение теоретических предпосылок появления программно-управляемого компьютера, отметим вклад в эту область английского математика Алана Тьюринга, которого заслуженно считают - наряду с Джоном фон Нейманом - “идейным отцом” компьютера. В 1936 году А. Тьюринг, еще будучи студентом Кембриджского университета, опубликовал статью “О вычислимых числах”, в которой описал гипотетическое (существующее только в воображении) устройство, впоследствии названное “машиной Тьюринга”. Машина Тьюринга состояла из бесконечной бумажной ленты, поделенной на клетки, и головки, которая, продвигаясь вдоль ленты, могла считывать и обрабатывать символы, записанные в клетках ленты. На каждом шаге вычислений следующее действие машины полностью определялось ее текущим состоянием и символом, который в данный момент считывается головкой. Таким образом, в гипотетической машине Тьюринга были предвосхищены некоторые черты современных компьютеров (например, бесконечную ленту с клетками можно рассматривать как своеобразную память, символы на этой ленте - как программу, а обрабатывающую головку - как прообраз центрального процессора).
1.3 Общая организация и принципы работы компьютера Любой компьютер, построенный в соответствии с принципами Джона фон Неймана, содержит в своем составе следующие устройства (блоки): − арифметико-логическое устройство (АЛУ), которое выполняет арифметические и логические операции, задаваемые в программе; − устройство управления (УУ), которое организует (координирует) выполнение операций, задаваемых в программе; − оперативное запоминающее устройство (ОЗУ)10, состоящее из некоторого количества ячеек и предназначенное для временного хранения программ и данных; − внешние, или периферийные, устройства, предназначенные для вводавывода информации (программ, исходных данных и результатов). В современных компьютерах АЛУ и УУ, как правило, объединяются в одно устройство - центральный процессор (ЦП). В больших компьютерах, использующихся преимущественно для сложных научно-технических расчетов, моделирования глобальных процессов (например, составление долгосрочного прогноза погоды) и обработки громадных объемов экономической информации, к ЦП относят также оперативную память. В мини- и микрокомпьютерах оперативная память, как правило, представлена отдельным блоком, а роль внутренней памяти ЦП выполняют регистры общего назначения (см. ниже). 10
ОЗУ часто называют оперативной, основной или внутренней памятью компьютера.
17 Общая организация компьютера, т.е. его основные устройства и связи между ними, показаны на укрупненной структурной схеме, приведенной на рис. 1.1 (стрелки с тонкими линиями отражают управляющие связи, с жирными линиями - информационные).
УУ
Устройства ввода-вывода
ОЗУ
АЛУ Рис. 1.1 Структурная схема компьютера по фон Нейману Главным недостатком этой схемы является то, что обмен информацией между устройствами ввода-вывода и оперативной памятью ведется через АЛУ, т.е. во время выполнения операций ввода-вывода вычисления прекращаются. Для преодоления этого недостатка было осуществлено совмещение по времени операций ввода-вывода и вычислений путем организации непосредственного обмена информацией между устройствами ввода-вывода и памятью, как показано на рис. 1.2. УУ
У стр ой ства вво д а-вы во д а
О ЗУ
АЛУ
Рис. 1.2 Структурная схема компьютера с организацией непосредственного обмена информацией между устройствами ввода-вывода и памятью
18 Компьютеры, построенные в соответствии со второй схемой, также имеют существенный недостаток: устройство управления обязано осуществлять тщательный контроль и управление операциями ввода-вывода, что, конечно же, снижает скорость вычислений. Для преодоления этого недостатка был сделан следующий и решающий шаг − в состав компьютера был включен канал вводавывода, представляющий, по сути, специализированный компьютер (рис. 1.3).
УУ
Устройства ввода-вывода
Канал вводавывода
ОЗУ
АЛУ Рис. 1.3 Структурная схема компьютера с каналом ввода-вывода Канал осуществляет автономное управление операциями ввода-вывода, обеспечивая независимый доступ устройств ввода-вывода к памяти, т.е. работает параллельно с АЛУ. Устройство управления сохраняет только общие функции координации процесса ввода-ввода, связанные с началом и окончанием ввода-вывода и реакцией на нестандартные (исключительные) ситуации. Примечание. Приведенные выше структурные схемы компьютера базируются на так называемой традиционной (или фон-неймановской) архитектуре, которой присущи серьезные недостатки и ограничения. Почти сразу после ознакомления с ней научной общественности появились предложения по ее улучшению и радикальному изменению. Часть этих предложений была практически реализована в виде различных вычислительных систем, показавших высокую производительность именно за счет отказа от традиционных архитектурных решений [19, 20]. Подобные вычислительные структуры здесь не рассматриваются, поскольку эти вопросы выходят за рамки данного пособия. Любой вычислительный процесс, выполняемый компьютером, можно разбить на три последовательных этапа: ввод информации в память компьютера, обработка и/или хранение введенной информации и вывод результатов обработки. Это схематично показано на рис. 1.4. В выполнение этой работы вовлекаются различные компоненты компьютера: устройства ввода (например, клавиатура, магнитный диск и другие), оперативная память, хранящая введенные данные и программу обработки этих данных, центральный процессор, вы-
19 полняющий арифметические и логические операции, предписываемые программой, и устройства вывода (например, дисплей, принтер и другие). Работа этих устройств более подробно рассмотрена ниже.
Ввод
Обработка и/или хранение информации
Вывод
Рис. 1.4 Общая схема вычислительного процесса
1.3.1 Центральный процессор ЦП является основным компонентом аппаратуры компьютера, координирующим движение потоков информации внутри компьютера и выполняющим вычисления по некоторой программе. ЦП “понимает” определенную систему команд (кодов), задающих ему выполнение вполне определенных операций (например, сложить два числа, проверить число на равенство нулю, переслать данные из одной ячейки памяти в другую и т.д.). Любая программа представляется в виде последовательности таких команд. Работая по заданной программе, ЦП в каждый момент времени выполняет одну из ее команд, причем делает это с высокой скоростью11. Существуют четыре основных типа команд: арифметические и логические команды, команды управления, команды внутренней пересылки данных и команды ввода-вывода. Арифметические и логические команды служат для выполнения четырех арифметических действий (сложение, вычитание, умножение и деление) и ряда логических операций (конъюнкция или “логическое И”, дизъюнкция или “логическое ИЛИ”, инверсия или “логическое НЕ”). Команды управления позволяют определять порядок выполнения команд других типов. Они обеспечивают переход из одной точки программы в другую, обход некоторой последовательности команд (по результатам выполнения предыдущих операций) и т.д. Команды внутренней пересылки данных дают возможность копировать данные из одного места памяти в другое и, кроме того, они позволяют выполнять сдвиговые операции над битами одного байта или слова (понятия “бит”, “байт” и “слово” объясняются ниже; см. п. 1.3.2). Команды ввода указывают устройству управления на необходимость передать информацию от некоторого внешнего устройства в память компьютера для хранения и возможной обработки. Команды вывода выполняют передачу 11
Как правило, в современных компьютерах выполнение одной команды ЦП совмещено по времени с подготовкой к выполнению (выборкой из памяти и дешифрацией) следующей команды программы, т.е. используется хорошо известный принцип "конвейера". Например, в микропроцессоре 80386 фирмы Intel реализована конвейерная (магистральная) обработка команд на 6 уровнях, что позволяет повысить быстродействие вычислительных систем, использующих этот микропроцессор.
20 информации в обратном направлении. Кроме того, команды ввода-вывода можно использовать для получения информации о состоянии устройства и передачи ему управляющих воздействий. Для выполнения своей работы ЦП использует ряд внутренних ячеек сверхбыстрой (или сверхоперативной) памяти − регистров ЦП. Доступ к регистрам ЦП осуществляется в 5…10 раз быстрее, чем к ячейкам оперативной памяти. Поэтому регистры часто используют как для хранения информации, требующейся ЦП для работы, так и для записи промежуточных результатов операций. Два регистра представляют особый интерес. Один из них, называемый регистром команд (IR - Instruction Register), содержит текущую команду, т.е. команду программы, выполняемую ЦП в текущий момент. Другой, называемый счетчиком команд или программным счетчиком (PC - Program Counter), содержит в это время адрес команды, которая будет выполняться следующей. Выборка команды из памяти и ее выполнение часто описывается с помощью так называемого цикла управления фон Неймана, графическое представление которого показано на рис. 1.5. 1
4
2
3
Рис. 1.5 Цикл управления фон Неймана На фазе выборки команды (1) содержимое ячейки, адресуемой счетчиком команд, выбирается из памяти и помещается в регистр команд. На фазе дешифрации (говорят также - декодирования) выбранной команды (2) определяется код операции, задаваемый в команде, и местоположение операндов, которые должны быть использованы в операции. После этого содержимое счетчика команд увеличивается на единицу (3). Если команда содержится в нескольких ячейках, то процесс (1-2-3) повторяется. Если же команда использует только одну ячейку, то она сразу выполняется (4). После этого описанный выше процесс повторяется. Помимо IR и PC в ЦП имеются также несколько регистров общего назначения (РОН), которые используются как накапливающие регистры (аккумуляторы), указатели данных, индексные регистры и т.д. Во время своей работы УУ активно использует специальный регистр, называемый регистром состояния
21 (или регистром признаков) программы (PSW − Program Status Word). Значения нескольких разрядов этого регистра зависят от результата последней операции, выполненной АЛУ. Существуют различные признаки (флажки), которые могут варьироваться от одного типа компьютера к другому, но среди них, как правило, имеются следующие: − признак переполнения (V), который устанавливается в 1, если в результате последней выполненной операции было получено число, превышающее максимально возможное для данного компьютера; − признак переноса, или заёма (C), который устанавливается в 1, если операция привела к переносу двоичной единицы в знаковый разряд или заёму единицы из знакового разряда; − признак нулевого результата (Z), который устанавливается в 1, если в ходе последней операции был получен нулевой результат; − признак отрицательного результата (N), который устанавливается в 1, если в ходе последней операции был получен отрицательный результат. Примечание. Для облегчения ссылок в тексте на признаки регистра состояния для них используются, как правило, следующие символические сокращения: V − oVerflow (переполнение), C − Carry (перенос), Z − Zero (нуль), N − Negative (отрицательный). Необходимо отметить важность использования регистра состояния для программирования компьютеров, поскольку каждая более или менее сложная программа, как правило, основывает свои дальнейшие действия на результате, полученном в ходе выполнения предшествующей операции.
1.3.2 Оперативная память Оперативная память компьютера состоит из множества ячеек, в которых может храниться информация, закодированная с помощью нулей и единиц. Для того чтобы компьютер мог обращаться к этой информации, каждая ячейка памяти ассоциируется с определенным числом - адресом ячейки. Адресацию ячеек памяти принято начинать с нуля, т.е. в ОЗУ, состоящем из N ячеек, первая ячейка имеет адрес 0, а последняя - N-1 (см. рис. 1.6). При записи информации в память по определенному адресу старая информация, находящаяся по этому адресу, пропадает. При считывании информации из памяти в ЦП пересылается копия значения, находящегося по указанному адресу, при этом исходное значение не меняется. Минимальной порцией информации в компьютере является один бит, т.е. двоичный разряд, который может принимать значение 0 или 1. Термин “бит” (bit) произошел от английских слов “binary digit”, переводимых как “двоичная цифра”.
22
N-2 • • • 2 1
Возрастание адресов
N-1
0 Рис. 1.6 Адресация ячеек ОЗУ Большинство команд компьютера ориентировано на работу с более крупными порциями информации, чем бит. В качестве таких единиц информации (и памяти соответственно) принимаются: байт − 8 последовательных бит, слово − 16 бит, или 2 смежных байта, двойное (длинное) слово − 32 бита, или 4 смежных байта и т.д. Графическое представление для бита, байта, слова и двойного слова показано на рис. 1.7. Бит Байт Слово Двойное слово
Рис. 1.7 Единицы памяти и информации Более крупные порции информации (и блоки памяти соответственно) измеряются, как правило, не в байтах, а в килобайтах (1 Кбайт равняется 1024 или 210 байтам), мегабайтах (1 Мбайт равняется 1024 Кбайтам или 220 байтам), гигабайтах (1 Гбайт равняется 1024 Мбайтам или 230 байтам), терабайтах (1 Тбайт равняется 1024 Гбайтам или 240 байтам) и т.д. Оперативную память иногда называют памятью с произвольной выборкой (RAM − Random Access Memory), подчеркивая этим тот факт, что доступ к любой ячейке памяти выполняется одинаково легко (по ее адресу) и за одинаковое время. Кроме того, работая с оперативной памятью нужно иметь в виду, что ее содержимое существует лишь в течение времени, пока компьютер находится во
23 включенном состоянии. При отключении напряжения питания содержимое ячеек ОЗУ теряется (стирается). В компьютерах 1950-70 гг. оперативная память строилась на магнитных сердечниках. Каждый бит информации, записанный в подобную память, хранится в небольшом тороидальном постоянном магните. Этот магнит может быть намагничен в одном из двух направлений. Направление намагниченности задается направлением тока, который протекает по пронизывающим память проводникам. В настоящее время такой способ построения оперативной памяти не применяется в силу присущих ему недостатков: громоздкость устройств памяти, большое энергопотребление и значительное рассеяние тепла. Современные компьютеры используют оперативную память полупроводникового типа. Для ее реализации, как правило, применяется либо биполярная технология, либо МОП-технология12. Память на биполярных транзисторах обладает бóльшим быстродействием, чем память на МОП-транзисторах. Однако, по сравнению с памятью на МОП-транзисторах, она потребляет значительную мощность, допускает размещение меньшего числа бит при одинаковом размере кристалла, существенно сложнее в изготовлении и, соответственно, дороже. В силу этих причин наибольшее распространение получила оперативная память на МОП-транзисторах. Существуют два способа построения интегральных микросхем памяти по МОП-технологии, в соответствии с которыми память на МОП-структурах может быть либо статической, либо динамической. Статическая память проще с точки зрения организации и управления доступом. Как правило, при построении ОЗУ небольшого объема используют микросхемы статической памяти. Микросхемы динамической памяти относительно дешевы, однако организация памяти такого типа требует привлечения множества дополнительных микросхем. Кроме того, содержимое динамической памяти необходимо периодически регенерировать (перезаписывать). Микросхемы динамической памяти используются в основном при построении ОЗУ большого объема.
1.3.3 Устройства ввода-вывода Устройства ввода-вывода (накопители на жестких магнитных дисках − НЖМД или НМД, накопители на гибких магнитных дисках − НГМД, накопители на магнитных лентах − НМЛ, алфавитно-цифровые печатающие устройства − АЦПУ, терминалы и другие), подключаемые к компьютеру, и без которых он не в состоянии полноценно реализовывать свои вычислительные возможности, часто называют внешними (периферийными) устройствами. Термин “внешние устройства” возник в то время, когда все устройства компьютера (включая и центральный процессор с оперативной памятью) представляли собой “многоуважаемые шкафы”, связанные друг с другом каналами связи. В настоящее 12
МОП − аббревиатура, образованная от слов "металл-окисел-полупроводник".
24 время этот термин относится, прежде всего, к области больших ЭВМ. Что касается мини- и микрокомпьютеров, то часто их “внешние” устройства оказываются заключенными в один корпус с основным устройством − центральным процессором, т.е. называть их “внешними” можно лишь с некоторой долей условности. Перечисленные выше устройства предназначены для выполнения операций ввода-вывода. И если АЦПУ (или принтер) выступает в роли только устройства вывода, то НМД, НГМД и НМЛ могут служить как устройствами ввода, так и устройствами вывода. Другими словами, информацию с них можно считать в оперативную память компьютера, если, конечно, предварительно эта информация была записана на магнитный диск или ленту. Чтобы подчеркнуть функциональное назначение НМД, НГМД и НМЛ, которое заключается в долговременном хранении записанной информации, эти устройства называют внешними запоминающими устройствами (ВЗУ) или внешней памятью13. Современный компьютер невозможно представить без ВЗУ, поскольку объем самого необходимого программного обеспечения, включающего операционную систему, редактор текстов, трансляторы с наиболее распространенных языков программирования, составляет сотни килобайт. Терминал также используется как устройство ввода-вывода: ввод осуществляется с клавиатуры, а вывод − на экран монитора (дисплея) или телетайп. Терминалы используются для того, чтобы обеспечить взаимодействие человека с компьютером (точнее, с программами, которые выполняет компьютер). Управление процессом ввода-вывода в компьютере может осуществляться тремя различными способами: по опросу состояния устройства ввода-вывода, по прерыванию и с использованием механизма прямого доступа к памяти (ПДП). В первом случае ЦП проверяет (опрашивает) регистры состояния устройств ввода-вывода, с целью определения, готово ли то или иное устройство к вводу или выводу информации. О готовности устройств ввода-вывода информируют одноразрядные флажки (биты готовности) регистров состояния. Способ опроса достаточно прост, но требует больших затрат времени ЦП, поскольку приходится каждый раз − через малые интервалы времени − прерывать выполнение основной программы, чтобы опросить регистры состояния всех устройств ввода-вывода − на тот случай, если потребуется отреагировать на определенное состояние какого-либо из устройств. Способ ввода-вывода по прерыванию требует более сложных аппаратных и программных средств, но обеспечивает более эффективную работу ЦП. При использовании этого способа ЦП сосредоточен на выполнении своей основной функции − обработке данных. Когда внешнее устройство готово к вводу или выводу, оно посылает соответствующий сигнал (сигнал прерывания) ЦП, который ненадолго прерывает процесс обработки данных, чтобы обслужить устройство, запросившее прерывание. Чтобы избежать путаницы при одновременном 13
ВЗУ иногда называют вспомогательной или вторичной памятью, имея в виду, что ОЗУ − это главная, или основная память (main memory).
25 поступлении нескольких запросов на прерывание, для различных устройств устанавливаются различные уровни приоритета. Пользователь имеет возможность “замаскировать” (т.е. игнорировать) прерывания, за исключением одного − вызванного внезапным отключением питания. Это немаскируемое прерывание сообщает ЦП, что у него есть в запасе несколько микросекунд на запоминание данных, пока не отключится вся система. Третий способ управления вводом-выводом описан ниже в п. 3.1 (см. информацию о контрóллере ПДП).
1.4 Программное обеспечение компьютера Современные компьютеры могут воспринимать и запоминать информацию, выполнять сложные вычисления, принимать определенные решения, основываясь на результатах этих вычислений, и, наконец, получив окончательное решение, передавать его результаты в окружающий мир. Однако, все эти “интеллектуальные” способности компьютера обусловлены тем, что он всего лишь предельно точно следует инструкциям (командам), разработанным для него человеком. Человек, предвидя каждый шаг компьютера и зная его ограниченные возможности (компьютер может выполнять сравнительно небольшое количество элементарных операций), создает для него программу, которая часто содержит длинную последовательность элементарных команд и которая заставляет компьютер выполнять полезную работу. Если провести аналогию между автомобилем и компьютером, то “горючим” (как впрочем и “шофером”) для последнего является именно программа, которая заставляет компьютер не только “двигаться”, но задает ему также нужное “направление”. (А может “горючее” − это все же электрический ток, питающий электронные схемы компьютера?) Компьютеры понимают лишь язык двоичных цифр, который мало пригоден для использования человеком. Поэтому программы составляются (говорят также кодируются или пишутся) на языках программирования низкого (ассемблер) или высокого уровня (например, Паскаль или Фортран). Затем программа, называемая транслятором (в случае языка высокого уровня − компилятором), переводит человекодоступный (символьный) код программы в код, использующий язык двоичных цифр, хорошо понимаемый компьютером. Как правило, распространенные компьютеры имеют несколько таких программ-переводчиков с различных языков программирования. В некоторых языках программирования (например, в Бейсике) предпочтение отдается интерпретирующей схеме, когда программа, называемая интерпретатором, поочередно считывает операторы программы, распознает их смысл и выполняет предписываемые операторами действия. В других языках (и таких большинство, например, Паскаль, Фортран, Си и т.д.) программа сначала транслируется в машинный код, который затем может многократно выполняться компьютером. Каждая из рассмотренных схем обработки программ имеет свои преимущества и свои недостатки, здесь мы лишь
26 отметим, что транслирующая схема все же используется чаще и все так называемые профессиональные языки программирования реализованы в виде трансляторов, а не интерпретаторов. Работая на компьютере, все пользователи выполняют более или менее однотипную работу, связанную с вводом информации в компьютер, созданием файлов, содержащих введенную информацию, обработкой этих файлов с помощью одной из имеющихся программ, выводом результатов этой обработки на экран дисплея или печатающее устройство. В выполнение перечисленных выше действий вовлекаются различные устройства компьютера (клавиатура и экран дисплея, магнитные диски и ленты, оперативная память, центральный процессор и другие). Непосредственное управление этими устройствами является занятием кропотливым и утомительным и, главное, далеким от той задачи, которую решает пользователь. Поэтому в качестве посредника между любым устройством ввода-вывода, подключенным к компьютеру, и программой пользователя выступают специально разработанные системные программы, называемые драйверами14. Вообще, системные программы, установленные на компьютере, не ограничиваются только драйверами устройств ввода-вывода. Как правило, есть головная управляющая программа, в простейшем случае называемая монитором (не путать с дисплеем!), которая принимает запросы программы пользователя на выполнение тех или иных операций ввода-вывода, формирует список параметров для передачи его драйверу, а лишь затем передает управление соответствующему драйверу. Более сложные варианты управляющих системных программ получили название операционных систем (ОС). Помимо системных программ (модулей операционной системы, трансляторов, текстовых редакторов и т.д.) компьютер может оснащаться проблемноориентированными пакетами прикладных программ (ППП), предназначенными для решения задач из какой-либо предметной области (например, статистического анализа, бухгалтерского учета, логического моделирования интегральных схем и других). Если необходимая прикладная программа отсутствует, то пользователь может либо прибегнуть к услугам профессиональных программистов, либо попробовать разработать ее своими силами (в этом случае ему, по всей видимости, придется освоить один из языков программирования высокого уровня, реализованных на компьютере). Разработка более или менее серьезной программы представляет собой нетривиальную задачу, решение которой складывается из следующих этапов: − формализация поставленной задачи (выработка математической постановки);
14
Транслитерация английского слова driver, которое буквально переводится как "шофер", т.е. человек, управляющий автомобилем.
27 − разработка алгоритма решения задачи (могут использоваться существующие наглядные способы для записи алгоритмов: блок-схемы, таблицы решений и т.д.); − написание программы на одном из имеющихся языков программирования; − ввод исходного текста программы в компьютер (например, с помощью текстового редактора) и трансляция его в машинные коды с помощью компилятора; − отладка программы и ее тестирование (на ряде хорошо подобранных тестовых примеров); − разработка программной документации (например, руководства пользователя, подробно описывающего правила эксплуатации программы). Как и всякий сложный вид человеческой деятельности, разработка программы носит итеративный характер. Другими словами, ошибка, допущенная, на одной из ранних стадий и обнаруженная на поздней стадии, приводит к необходимости возврата назад для ее устранения. Затем процесс разработки повторяется. Например, логическая ошибка, допущенная на стадии разработки алгоритма решения задачи, обнаружена лишь на стадии тестирования программы. В этом случае разработчику программы ничего более не остается, как снова вернуться к разработке алгоритма, затем модифицировать исходный текст программы в соответствии с изменениями, сделанными в алгоритме, и оттранслировать его в машинные коды компьютера. После этого снова выполняется этап отладки и тестирования. В заключение отметим, что программирование − чрезвычайно интересный вид интеллектуальной деятельности человека, требующий хорошей математической подготовки, умения мыслить логически (и подчас нетривиально), а также таких высоко ценимых человеческих качеств, как упорство и целеустремленность.
Вопросы для самопроверки 1. Когда был разработан первый компьютер? Кто был его создателем? 2. В чем заключается принцип хранимой программы и принцип программного управления, сформулированные фон Нейманом? 3. Перечислить основные блоки, входящие в состав компьютера с “традиционной” архитектурой. Каково их назначение? 4. Каков основной недостаток компьютера с “традиционной” архитектурой? Каким образом он был преодолен? 5. Объяснить принцип работы центрального процессора компьютера с традиционной архитектурой (использовать для этого графическое представление “цикла управления фон Неймана”, показанное на рис. 1.5). 6. Назвать известные вам внешние устройства компьютера. Какие из них являются устройствами ввода, а какие − устройствами вывода информации?
28 7. В чем заключается основная роль программного обеспечения, которым оснащаются компьютеры? Какие классы программ составляют программное обеспечение компьютера?
Глава 2 Двоичная арифметика и представление информации в компьютере Как отмечалось выше, информация хранится и обрабатывается в компьютере в двоичном виде. Это связано с тем, что компьютеры построены на электронных элементах с двумя устойчивыми состояниями. Ниже рассмотрены двоичная система счисления, получившая наибольшее распространение в вычислительной технике, восьмеричная и шестнадцатеричная системы − как удобный альтернативный способ для компактной записи длинных двоичных чисел, а также элементы двоичной арифметики и формы кодирования числовой и символьной информации.
2.1 Двоичная, восьмеричная и шестнадцатеричная системы счисления Вынесенные в заголовок раздела названия систем счисления, наряду с общеизвестной десятичной системой, представляют так называемые позиционные системы счисления [21]. В позиционных системах счисления положение (позиция) каждой цифры в числе определяет ее значение, или вес15. Например, десятичное число 123.456 является, по сути, сокращенной записью следующего выражения: (1 × 102)+(2 × 101)+(3 × 100)+(4 × 10-1)+(5 × 10-2)+(6 × 10-3) Положение любой цифры определяет степень числа с основанием 10, на которую эта цифра умножается. В данном примере цифра 1 находится в разряде сотен (102), 2 − десятков (101), 3 − единиц (100), 4 − десятых долей (10-1), 5 − сотых долей (10-2) и 6 − тысячных долей (10-3). Наиболее важными особенностями позиционных систем счисления являются следующие: 1. Количество цифр системы равно ее основанию. 2. Наибольшая цифра на единицу меньше основания.
15
Существуют непозиционные системы счисления, в которых значение цифры в записи числа не зависит от ее местоположения. Примером непозиционной системы счисления, применяющейся в настоящее время, может служить так называемая римская система.
29 3. Каждая цифра числа умножается на основание в степени, значение которой определяется положением цифры. В позиционном представлении целая часть дробного числа (выражений, имеющих положительный показатель степени) отделяется от дробной части (выражений, имеющих отрицательный показатель степени) с помощью десятичной точки16. Поэтому число N можно представить в виде N = NI + NF , где NI и NF − соответственно целая и дробная часть числа. В приведенном выше примере NI = 123, а NF = 0.456. Двоичная система счисления является простейшей среди позиционных систем, так как имеет всего две цифры − 0 и 1. Основанием двоичной системы счисления является 2. Например, двоичное число 101.101 эквивалентно десятичному числу17 (1 × 22) + (0 × 21) + (1 × 20) + (1 × 2-1) + (0 × 2-2) + (1 × 2-3) = 5.62510 Преобразование десятичного числа в двоичное производится с помощью последовательного деления преобразуемого числа на 2 с одновременным слежением за получающимися остатками. Например, десятичное число 37 эквивалентно двоичному числу 100101, которое получается в результате выполнения следующих операций целочисленного деления и соответствующей записи полученных остатков от деления: 37 : 2 = 18 18 : 2 = 9 9:2= 4 4:2= 2 2:2= 1 1:2= 0
(остаток (остаток (остаток (остаток (остаток (остаток
1) 0) 1) 0) 0) 1)
100101 Работа с двоичными числами неудобна для человека, поскольку двоичные числа представляются длинными последовательностями нулей и единиц (так, например, двухзначное число 37 в двоичной системе счисления записывается уже шестью двоичными цифрами). Чтобы представить двоичные числа в
16
17
Так принято в США, Канаде и ряде других стран. В Европе формат записи дробных чисел предусматривает использование для этой цели десятичной запятой. Подстрочные символы в записи числа используют для обозначения основания системы счисления; их опускают, если известно, о каком основании идет речь.
30 более компактной форме, используются восьмеричная (с основанием 8) или шестнадцатеричная (с основанием 16) система счисления. В восьмеричной системе счисления двоичное число разбивается на группы бит, по три в каждой, считая справа. Далее каждая триада (тройка) бит заменяется восьмеричной цифрой в соответствии со следующим соотношением: Двоичное Восьмеричная представление цифра 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 Таким образом, двоичное число 100 101 может быть легко преобразовано в восьмеричное 45. Процесс обратного преобразования заключается в замене каждой восьмеричной цифры числа соответствующей триадой бит. Например, восьмеричное число 101 представляется двоичным числом 1 000 001. Другой компактной формой представления двоичных чисел является шестнадцатеричная система счисления. Для записи двоичного числа в шестнадцатеричной системе счисления оно разбивается на группы бит, по четыре в каждой, считая справа. Далее каждая тетрада (четверка) бит заменяется шестнадцатеричной цифрой в соответствии со следующим соотношением: Двоичное представление 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Шестнадцатеричная цифра 0 1 2 3 4 5 6 7 8 9 A B C D E F
31 Таким образом, двоичное число 0110 1111 запишется в шестнадцатеричной системе счисления как 6F. Процесс обратного преобразования заключается в замене каждой шестнадцатеричной цифры числа соответствующей тетрадой бит. Например, шестнадцатеричное число ABCD представляется двоичным числом 1010 1011 1100 1101. Шестнадцатеричная запись числа предпочтительнее восьмеричной, поскольку она компактнее; например, 8-разрядное двоичное число может быть представлено двумя шестнадцатеричными цифрами, в то время как восьмеричных цифр для той же цели требуется три.
2.2 Двоичная арифметика Выполнение арифметических операций с двоичными числами отличается чрезвычайной простотой (на это указывали еще Паскаль и Лейбниц). Рассмотрим правила выполнения арифметических операций (сложение, вычитание, умножение и деление) с двоичными числами, т.е. двоичную арифметику.
2.2.1 Сложение Для сложения двух чисел, записанных в двоичной системе счисления, достаточно знать следующую простейшую таблицу сложения: 0 0 1 1
+ + + +
0 1 0 1
= = = =
0 1 1 10 (перенос в старший разряд)
Последняя сумма представляет собой двузначное число, полученное в результате переноса одной двоичной единицы в соседний старший разряд. Сложение нескольких двоичных чисел выполнять немного сложнее, так как в результате поразрядного сложения могут получиться переносы, превышающие единицу. В таких случаях приходится учитывать переносы не только в соседний, но и другие старшие разряды. Например, сложение двоичных вещественных чисел 110.1011 и 10111.10101 выполняется следующим образом: + 1 1 + 1 + 1
0 0 1 1 1
1 1 0 1 1
1 0 . 1 1 1 . 1 0 1 . 0 1 0 0 . 0 l 1 1 0 . 0
0 0 0 1 1
1 1 1 0 1 0 1 1 (поразрядная сумма без учета переносов)
(переносы) 0 1 1 (поразрядная сумма без учета повторных переносов) (повторные переносы) 1 0 1 1 (окончательная сумма)
32
2.2.2 Вычитание Для вычитания одного двоичного числа из другого необходимо знать следующую простейшую таблицу вычитания: 0 1 1 10
− − − −
0 0 1 1
= = = =
0 1 0 1 (заём из старшего разряда)
Вычитание в двоичной системе счисления выполняется аналогично вычитанию в десятичной системе. При необходимости, когда в некотором разряде приходится вычитать единицу из нуля, занимается единица из следующего старшего разряда. Если в следующем старшем разряде находится нуль, то заём делается в ближайшем старшем разряде, содержащем единицу. При этом следует помнить, что занимаемая единица равна двум единицам данного разряда, т.е. вычитание выполняется согласно последней строки таблицы. Например, вычитание числа 1101.01111 из числа 11010.1011 выполняется следующим образом: 1 1 0 1 0 . 1 0 1 1 1 1 0 1 . 0 1 1 1 1 1 1 0 1 . 0 0 1 1 1
−
2.2.3 Умножение Для того чтобы выполнить умножение одного двоичного числа на другое, необходимо знать следующую простейшую таблицу умножения: × × × ×
0 0 1 1
0 1 0 1
= = = =
0 0 0 1
Кроме того, необходимо уметь складывать двоичные числа (см. выше “Сложение”). Например, перемножение двоичных чисел 1001 и 1101 выполняется следующим образом:
+
+ 1 1 0 1 1
1 × 1 1 0 0 0 0 0 1 1 0
0 1 0 0 1
0 1 − множимое 0 1 − множитель 0 1 − первое частичное произведение − второе частичное произведение 0
− третье частичное произведение − четвертое частичное произведение 1 0 1 − произведение
33 Следует отметить, что в процессе перемножения применяются следующие два правила умножения одного двоичного числа на двоичную цифру: 1. Если эта двоичная цифра (множитель) равна 1, то двоичное число (множимое) просто копируется. 2. Если этот множитель равен 0, то частичное произведение равно 0. Пример перемножения дробных двоичных чисел приведен ниже.
+ 1 0 0 + 1 1 0 1 0 0 0
1 × 1 1 1 1 1 0 0 0 0 1 1 1
1 0 1 0 0 0
0 . 0 1 1 . 1 1 0 0 1 0 1 1
1 1
1 0 0 0 1 1 .
1 1 Промежуточный результат (без указания “двоич-
ной” точки, отделяющей дробную часть двоичного числа от целой) 1 1 1 1 Окончательный результат
2.2.4 Деление Деление двоичных чисел производится аналогично делению десятичных чисел, т.е. путем повторяющихся операций вычитания. Чтобы продемонстрировать выполнение операций двоичного деления, достаточно рассмотреть деление двух целых двоичных чисел, поскольку делимое и делитель всегда могут быть приведены к такому виду путем переноса “двоичной” точки в делимом и делителе на одинаковое число разрядов и записи 0 в недостающие справа разряды. Например, деление дробного двоичного числа 1100.011 на дробное двоичное 10.01 равносильно делению двух целых двоичных чисел 1100011 и 10010, которое выполняется следующим образом: 1 1 0 − 1 0 0 1 − 1
0 1 1 0 1 − 1 0
0 0 0 0 0 0 0
1 1 1 1 0 0 0
1 0 0 1 0 1 0 1 . 1
1 0 1 0 1 0 0 0
2.3 Представление числовых данных Двоичный разряд, или бит, представляется в компьютере с помощью некоторого физического устройства (например, триггера). Это устройство может находиться в одном из двух различных состояний, которым приписываются два различных значения: “двоичный 0” или “двоичная 1”. Набор соответствующего
34 количества таких устройств используется для представления многоразрядных двоичных чисел. В компьютере все числа могут быть представлены в одной из двух основных форм: с фиксированной точкой (естественная форма) или с плавающей точкой (полулогарифмическая форма).
2.3.1 Представление целых чисел В форме представления чисел с фиксированной точкой положение точки фиксируется в определенном месте: либо перед старшим разрядом, либо после младшего разряда числа. В первом случае могут быть представлены только те числа, модуль которых не превышает 1. Во втором случае могут быть представлены только целые числа (именно этот случай мы и рассмотрим). На рис. 2.1 показана так называемая разрядная сетка для представления 16-разрядных целых двоичных чисел. 1 5
1 4
1 3
1 2
1 1
1 0
9
8
7
6
5
4
3
2
1
0
Номер бита
Точка
Знак числа
Значение бита
214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
Рис. 2.1 Представление целых двоичных чисел В компьютере, как правило, имеются несколько форматов для представления целых чисел, различающихся количеством используемых бит (см. табл. 2.1). Таблица 2.1 Диапазон представления целых чисел Разрядность Типы данных Целое без знака в байте Целое со знаком в байте Целое без знака в слове Целое со знаком в слове Целое без знака в двойном слове Целое со знаком в двойном слове
Диапазон
0 … 255 -128 … 127 0 …65535 -32768 … 32767 0 … 232 -1
двоичная (бит) 8 8 16 16 32
десятичная (цифр) 3 3 5 5 9
-231 … 231 -1
32
9
35
2.3.2 Представление вещественных чисел В общем случае представление числа с плавающей точкой имеет следующий вид: x = q×sp; |q| < 1, где q − мантисса числа (правильная дробь); sp − так называемая характеристика числа x; s − основание характеристики; p − порядок, определяющий положение точки в числе x (может быть как положительным, так и отрицательным). Примечание. Поскольку часть представления числа (порядок) выражена в логарифмической форме, это представление, как отмечалось выше, называется полулогарифмическим. Напоминаем, что если имеется показательная функция y = f(x) = ax, то обратная к ней функция называется логарифмической и обозначается x = f(y) = logay. Применительно к двоичной системе счисления представление с плавающей точкой имеет вид: x = q×2p; |q| < 1. На рис. 2.2 показан пример разрядной сетки (32 бита) для представления чисел с плавающей точкой. Поскольку порядок (также как и мантисса) может быть как положительным, так и отрицательным, то под его знак следовало бы отвести один бит. Наличие двух знаков в представлении числа усложняет выполнение арифметических операций с вещественными числами. Поэтому для порядка (р) часто используют так называемое представление со смещением (или с избытком). В этом случае порядок всегда представляется положительным числом, а диапазон возможных его значений (например, от 0 до 255) делится на две части. Одна часть (от 0 до 127) отводится под представление отрицательных порядков, другая (от 129 до 255) − под представление положительных порядков, а “пограничное” значение 128 означает нулевой порядок (пример записи порядка с “избытком 128”). 3 3 1 0
8
Знак числа
7
0 № бита
Порядок − биты 0-7 Мантисса − биты 8-30 Знак числа − бит 31
Рис. 2.2 Представление чисел с плавающей точкой
2.3.3 Представление отрицательных чисел Существуют три основных формы представления отрицательных чисел:
36 1. Прямой код. Отрицательное число, записанное в прямом коде, хранится в виде знака и абсолютной величины числа. Например, двоичное число 11 представляется в прямом коде как 10000011, где крайняя левая единица указывает на то, что это отрицательное число; 00000011 обозначает абсолютную величину числа. 2. Обратный код. Обратный код отрицательного числа образуется путем инвертирования бит, представляющих абсолютное значение числа в записи прямого кода. Например, двоичное число -11 представляется в обратном коде как 11111100, где крайняя левая единица указывает на то, что это отрицательное число, а 11111100 является дополнением его абсолютной величины до 1. 3. Дополнительный код. Дополнительный код отрицательного числа образуется прибавлением 1 к младшему биту обратного кода этого числа. Другими словами, если i − положительное двоичное число, то -i − двоичный результат выражения 2n-i, где n − количество бит в байте или машинном слове. Например, число -11 представляется в дополнительном коде как 11111101. В компьютерах для представления отрицательных чисел преимущественно используется дополнительный код. Это связано с тем, что дополнительный код позволяет избежать так называемой “проблемы двух нулей”, имеющей место в представлении как с прямым, так и с обратным кодом. Кратко суть этой проблемы состоит в следующем. При выполнении вычислений на компьютере может возникнуть как “положительный”, так и “отрицательный” нуль. В прямом коде положительный нуль представляется как 000...0, а отрицательный нуль − как 100...0. Например, следующие простые вычисления, выполненные в прямом коде: (-1) - (-1) =
1 0 0 0 0 0 0 1 - 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
(-1) - (+1) =
1 0 0 0 0 0 0 1 - 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
приводят к возникновению ситуации положительного и отрицательного нулей. В обратном коде положительный нуль представляется как 011...1, а отрицательный − как 111...1. В качестве упражнения для самопроверки придумать примеры, аналогичные приведенным выше, которые иллюстрируют наличие двух различных представлений нуля для обратного кода. Таким образом, в любой из рассмотренных двух систем кодов имеются по два различных (!) представления нуля. С математической точки зрения это некорректно, поскольку известно, что +0 = -0 = 0. Использование системы с дополнительным кодом “снимает” эту проблему, так как в этом случае отрицательный нуль отсутствует (-0)доп = 111...1+1 = 000...0
Возникающий при этом перенос единицы из бита знака (выход за пределы разрядной сетки) игнорируется. Таким образом, если представлять положи-
37 тельные числа прямым кодом, а отрицательные − дополнительным, то положительный и отрицательный нули будут иметь одинаковое представление. При выполнении алгебраического сложения двоичных чисел с использованием дополнительного кода положительные слагаемые представляются в прямом коде, а отрицательные − в дополнительном. Затем производится арифметическое суммирование этих кодов, включая биты знаков, которые рассматриваются как старшие биты. При возникновении переноса из бита знака единица переноса отбрасывается. Если полученная сумма положительна, то она рассматривается как число, записанное в прямом коде, в противном случае − как число, записанное в дополнительном коде. Применение дополнительного кода для представления отрицательных чисел упрощает операцию алгебраического сложения. Алгебраическое сложение чисел с разными знаками заменяется арифметическим сложением кодов (включая биты знаков), при этом автоматически формируется код знака результата.
2.4 Кодирование символьной информации Современный компьютер является универсальным устройством для обработки информации. Он обрабатывает не только числовую, но и символьную информацию (буквы, цифры, синтаксические знаки, математические и другие символы). Именно такой характер имеет экономическая, бухгалтерская, статистическая и другая информация, содержащая наименования предметов, фамилии и имена людей, род их занятий и т.д. Для того чтобы компьютер мог обрабатывать разнообразную символьную информацию, все символы, представляющие эту информацию, должны быть заменены соответствующими кодами, т.е. закодированы. Для представления символьной информации в компьютерах наиболее часто используется 7-разрядный код ASCII (произносится “Эз-ки”). ASCII − это аббревиатура, образованная от слов “American Standard Code for Information Interchange” (переводится с английского как “американский стандартный код для обмена информацией”). В отечественной практике широко распространен аналог ASCII − код КОИ-7 (код для обмена информацией, 7-разрядный). Код ASCII ставит в соответствие каждому символу уникальную комбинацию из семи бит (разрядов). Поскольку значащих бит всего семь, то таких комбинаций будет 27, т.е. 128 (начиная с 0000000 и заканчивая 1111111). Этого количества комбинаций бит вполне хватает, чтобы закодировать все прописные и строчные буквы алфавита (в случае ASCII − английского), все цифры десятичной системы счисления, все знаки препинания и специальные символы (например, $, &, @ и другие). Первые 32 комбинации бит зарезервированы под так называемые управляющие символы, такие, как “звонок”, “перевод строки” “возврат каретки” и другие, которые используются для управления экраном дисплея и печатающим устройством. Остальные 96 комбинаций относятся к так называемым печатным кодам и все они − за исключением первого (пробел) и по-
38 следнего (забой символа) − соответствуют каким-то символам. Коды ASCII для печатных символов приведены в табл. 2.2. Таблица 2.2 Коды ASCII для печатных символов Система счисления 8 10 16 40 32 20 41 33 21 42 34 22 43 35 23 44 36 24 45 37 25 46 38 26 47 39 27 50 40 28 51 41 29 52 42 2A 53 43 2B 54 44 2C 55 45 2D 56 46 2E 57 47 2F 60 48 30 61 49 31 62 50 32 63 51 33 64 52 34 65 53 35 66 54 36 67 55 37 70 56 38 71 57 39 72 58 3A 73 59 3B 74 60 3C 75 61 3D 76 62 3E 77 63 3F
Символ Пробел ! “ # $ % & ‘ ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
Система счисления 8 10 16 100 64 40 101 65 41 102 66 42 103 67 43 104 68 44 105 69 45 106 70 46 107 71 47 110 72 48 111 73 49 112 74 4A 113 75 4B 114 76 4C 115 77 4D 116 78 4E 117 79 4F 120 80 50 121 81 51 122 82 52 123 83 53 124 84 54 125 85 55 126 86 56 127 87 57 130 88 58 131 89 59 132 90 5A 133 91 5B 134 92 5C 135 93 5D 136 94 5E 137 95 5F
Символ @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
Система счисления 8 10 16 140 96 60 141 97 61 142 98 62 143 99 63 144 100 64 145 101 65 146 102 66 147 103 67 150 104 68 151 105 69 152 106 6A 153 107 6B 154 108 6C 155 109 6D 156 110 6E 157 111 6F 160 112 70 161 113 71 162 114 72 163 115 73 164 116 74 165 117 75 166 118 76 167 119 77 170 120 78 171 121 79 172 122 7A 173 123 7B 174 124 7C 175 125 7D 176 126 7E 177 127 7F
Символ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ Забой
Для хранения одного символа информации в большинстве компьютеров используется один байт памяти. Как было показано в табл. 2.1, в байте может храниться 256 различных двоичных комбинаций (от 00000000 до 11111111). Если учесть содержимое табл. 2.2, остается еще 127 двоичных комбинаций (от 10000000 до 11111111) для представления других графических обозначений (символов псевдографики, букв национальных алфавитов и т.д.). Таким образом, одна половина таблицы кодов ASCII (см. табл. 2.2) остается фиксирован-
39 ной, а другая − может быть наполнена различными символами, которым соответствуют коды в диапазоне от 128 до 255. Примечание. Имеются серьезные исследовательские работы, посвященные теории информации, различным способам кодирования информации и защиты информации от искажения при ее передаче. В качестве основополагающих источников при изучении данных вопросов можно рекомендовать классические научные труды [22, 23].
Вопросы и задания для самопроверки 1. Записать число 199410 в двоичной, восьмеричной и шестнадцатеричной системах счисления. 2. Записать число -199410 в прямом, обратном и дополнительном кодах. 3. Даны три числовых значения: 3778, 25510 и FF16. Расположить их в порядке убывания величины. 4. Даны два числа: ABBA16 и BABA16. Какое из них больше и на сколько? 5. Сложить два числа BABA16 и DED16. Полученный результат представить в двоичной, восьмеричной и десятичной системах счисления. 6. Какое сообщение закодировано следующей последовательностью двоичных нулей и единиц, сгруппированных по байтам (при чтении групп байт использовать естественный порядок − слева направо и сверху вниз, а при декодировании каждого байта − группировать биты, начиная справа): 01001001 01000101
00100000 00100000
01001100 01011001
01001111 01001111
01010110 01010101
7. Закодировать сообщение “Good bye, my love!” в виде последовательности побайтно сгруппированных двоичных нулей и единиц (см. выше).
Глава 3 Технические средства персонального компьютера 3.1 Основные понятия микропроцессорной техники Одним из выдающихся достижений эволюционного развития вычислительной техники явилось создание первого микропроцессора фирмой Intel в 1971 году. Этот микропроцессор, состоящий из 2250 транзисторов в кристалле (чипе) площадью менее 1 см2, получил наименование 4004. Он позволяет выполнить сложение двух 4-битных чисел за 11 микросекунд (1 мкс = 10-6 с). В 1972 году фирма Intel выпустила 8-битный микропроцессор 8008, а в 1974 году − микропроцессор 8080 (4500 транзисторов, 8-битный), который на несколько лет стал фактическим стандартом микрокомпьютерной технологии. С тех пор фирма Intel (Integrated Electronics − интегральная электроника) является признанным лидером в области микроэлектроники.
40
Интерфейс
Микропроцессор представляет собой центральный процессор, выполненный в виде интегральной микросхемы, с собственной системой команд. В сочетании с другими микросхемами (память, математический сопроцессор, сопроцессор ввода-вывода) микропроцессор образует так называемый микрокомпьютер, часто не уступающий по производительности многим моделям больших машин 1950-60 гг. Помимо микропроцессора, микрокомпьютер содержит также ряд компонентов, обеспечивающих его работу (рис. 3.1). Краткое описание функционального назначения этих компонентов представлено ниже. Более подробную информацию можно найти в [24].
Модуль памяти
Оперативная память
Микропроцессор
Логика управления шиной
Системная шина
Генератор синхронизации
Интерфейс
••• Модуль памяти
Подсистема ввода-вывода память Интерфейс
Внешняя память
•••
Интерфейс
Устройство вводавывода
Рис. 3.1 Общая структурная схема типичного микрокомпьютера Шины (или магистрали) связывают различные устройства компьютера. Шина (bus) − это совокупность токопроводящих соединений (линий); она может быть выполнена в виде многожильного кабеля (шлейфа) или в виде специальной печатной платы. По своему функциональному назначению шины подразделяются на три группы: шину управления (для передачи управляющих сигна-
41 лов), шину адреса (для передачи адресных сигналов) и шину данных (для передачи сигналов, представляющих данные). Причем адресная шина и шина данных могут быть выполнены в виде мультиплексной шины, когда одни и те же проводники шины в разные моменты времени используются для передачи как адресных сигналов, так и сигналов данных. Иногда микропроцессор образно сравнивают с “сердцем” компьютера и в этом случае шины уместно сравнить с его “кровеносными артериями”. Генератор тактовых импульсов синхронизирует внутренние операции компьютера путем посылки регулярных электрических сигналов по шине управления. Генератор тактовых импульсов может быть выполнен либо в виде специальной интегральной схемы, либо “встроен” в кристалл микропроцессора. Некоторые генераторы вырабатывают импульсы нескольких частот, координируя работу компонентов компьютера с различным быстродействием. Это достигается путем использования специальных электронных схем − умножителей и делителей частоты, выполняющих кратное некоторой целой константе умножение и деление опорной тактовой частоты соответственно. Опорная тактовая частота, использующаяся генератором тактовых импульсов, вырабатывается кварцевым резонатором (“кварцем”), находящимся вне генератора и “запускающимся” при подаче напряжения на него. Кристалл кварца под воздействием электрического поля начинает вибрировать с постоянной частотой 14.31818 МГц (1 МГц равняется 106 колебаний в секунду). При каждом колебании кристалл генерирует импульс напряжения. Именно эти регулярно повторяющиеся импульсы вместе с другими сигналами задают темп работы устройств компьютера и обеспечивают срабатывание различных электронных компонентов. Порты ввода-вывода используются компьютером для обмена информацией с “окружающей средой”. Существуют порты ввода (через которые информация поступает в компьютер), порты вывода (через которые информация выводится из компьютера) и универсальные порты, совмещающие в себе обе эти функции. Кроме того, все порты подразделяются на последовательные и параллельные в зависимости от способа передачи байта (слова) данных: либо побитно (с разборкой байта на составляющие его биты и поочередной передачей всех бит по одному “каналу”), либо целиком всего байта (в этом случае каждый бит передается по отдельному “каналу”). Постоянное запоминающее устройство (ПЗУ)18 предназначено для хранения наиболее часто используемых программ. В настоящее время существуют четыре различных типа ПЗУ: масочное ПЗУ, программируемое ПЗУ (ППЗУ), стираемое программируемое ПЗУ (СППЗУ), электрически стираемое программируемое ПЗУ (ЭСППЗУ).
18
ПЗУ, в отличие от ОЗУ, сохраняет записанную в него информацию и после отключения питания компьютера. В англоязычной литературе для обозначения ПЗУ используется аббревиатура ROM (Read Only Memory − память только для чтения).
42 Запись информации в масочное ПЗУ выполняется в ходе технологического процесса изготовления микросхем ПЗУ с использованием масокфотошаблонов. Информация, записанная в масочное ПЗУ, может только считываться и изменение ее пользователем невозможно. Запись информации в ППЗУ может быть выполнена пользователем лишь однократно. Наибольшее распространение среди пользователей получили микросхемы ПЗУ с пережигаемыми перемычками. Запись информации в ПЗУ данного типа выполняется с помощью специального устройства, называемого программатором. После того, как перемычки в микросхеме ППЗУ разрушены, информацию в ней уже невозможно изменить. Программирование СППЗУ также выполняется с помощью программатора путем подачи на микросхему импульсов высокого напряжения. Информацию, записанную в СППЗУ, можно стереть, если воздействовать на кристалл интенсивным ультрафиолетовым излучением через специальное кварцевое окошко в корпусе микросхемы. После этого микросхема СППЗУ становится пригодной для записи новой информации. В последнее время все большее распространение получают микросхемы ЭСППЗУ. Их использование аналогично использованию СППЗУ с той лишь разницей, что стирание информации в случае ЭСППЗУ производится путем подачи специальных электрических импульсов в течение определенного времени. Современная технология флэш-памяти (flash memory), разработанная фирмой Intel, позволяет создавать микросхемы ЭСППЗУ высокой емкости, которые обладают очень хорошими характеристиками (применительно к ПЗУ): время считывания информации из ячейки − 10 микросекунд, время записи − 1 миллисекунда (1 мс = 10-3 c), допустимое количество циклов “очистка-запись” − 100000. Контрóллер прямого доступа к памяти (ПДП, DMA − Direct Memory Access) позволяет обеспечить высокоскоростной обмен информацией между оперативной памятью и устройствами ввода-вывода компьютера, минуя основной микропроцессор. В отличие от микропроцессора, который является универсальным устройством и рассчитан на широкий класс задач, контроллер ПДП выполняет всего лишь одну функцию, но очень быстро. Получив запрос на прерывание от устройства ввода-вывода, контроллер ПДП посылает сигнал микропроцессору, предлагая ему сделать “кратковременный” перерыв. Микропроцессор, ответив сигналом, подтверждающим “согласие” на перерыв, временно уступает управление шинами контроллеру ПДП, а сам переходит в состояние ожидания. Получив в свое распоряжение шины компьютера, контроллер ПДП быстро прогоняет данные между ОЗУ и устройством ввода-вывода и возвращает управление микропроцессору. Таким образом, использование механизма ПДП существенно повышает производительность вычислительных систем в тех случаях, когда велик объем операций ввода-вывода. Иногда основной микропроцессор не рассчитан на выполнение арифметических операций над дробными числами (числами с плавающей точкой). В
43 таких случаях эти операции либо эмулируются (моделируются) с помощью программного обеспечения (при этом скорость вычислений резко снижается), либо используется специальный (математический) сопроцессор, ориентированный на работу с дробными числами. Во втором случае осуществляется своего рода разделение труда между основным микропроцессором и сопроцессором, которое существенно повышает скорость вычислений с плавающей точкой.
3.2 Фенóмен19 персонального компьютера Когда видишь сегодня “персоналку” стоимостью менее 500 долларов, скрывающую в своем элегантном металлическом (иногда пластмассовом) корпусе мощный 32-разрядный процессор, работающий с тактовой частотой в несколько сотен мегагерц, 128-ми и более мегабайтную оперативную память, магнитные диски емкостью в несколько десятков гигабайт, невольно поражаешься тому, как сравнительно быстро “гадкий утенок” превратился в могучего “красавца-лебедя” (помните эту сказку Андерсена?). А началось все с того, что в 1975 году в январском номере американского журнала “Popular Electronics” (Популярная электроника) была опубликована статья с описанием микрокомпьютера “Альтаир-8800”, который мог собрать каждый желающий из набора деталей, изготавливаемых фирмой MITS (Micro Instrumentation and Telemetry System − произносится “Майкроинструментейшн энд телеметри системс”). В собранном виде этот компьютер представлял собой небольшой металлический ящик, окрашенный в голубой цвет, на передней панели которого располагались ряды переключателей и индикаторных лампочек. Внутри ящика находилась электронная “начинка”, основу которой составляла интегральная схема микропроцессора 8080 фирмы Intel. Объем оперативной памяти первого “Альтаира” составлял всего 256 байт. Ввод программы и данных для обработки в оперативную память осуществлялся в двоичном виде (побайтно) с помощью переключателей (по одному переключателю на каждую двоичную цифру байта). Результат вычислений высвечивался на панели с помощью индикаторных лампочек (также в двоичном виде, который нужно было расшифровывать: если лампочка горит, то двоичная 1, в противном случае − двоичный 0). Как видим, “Альтаир”, который принято считать первым персональным (бытовым?) компьютером, предназначался для людей отнюдь не робкого десятка. Отчаянные энтузиасты электронной и компьютерной техники, получив возможность купить компьютер за четыреста долларов, сразу же воспользовались ею. Среди них оказались и два друга − молодой программист фирмы Honeywell Пол Аллен и студент-второкурсник Гарвардского университета Билл Гейтс, которые за три недели написали и отладили компактный интерпретатор языка Бейсик для “Альтаира”, используя в качестве инструментальной машины 19
От греч. phainomenon − исключительное, редкое, необычное явление.
44 большой компьютер. После получения перфоленты с интерпретатором Бейсика Пол Аллен сразу же отправился в городок Альбукерке (штат Нью-Мексика), чтобы показать программу Эду Робертсу, владельцу фирмы MITS. Программу загрузки (загрузчик) интерпретатора с перфоленты в память компьютера Аллену пришлось писать уже в самолете. Испытания интерпретатора прошли успешно, и фирма MITS стала продавать интерпретатор Бейсика по цене 500 долларов за экземпляр (сумма, превышающая стоимость самого компьютера!). Вслед за фирмой MITS к выпуску микрокомпьютеров приступил и ряд других фирм. Среди них наибольшего успеха добились такие фирмы, как Apple Computers (произносится “Эпл компьютерс”), Commodore International (“Коммодоре интернэшнл”) и Tandy Radio Shack (“Тэнди рэдио шэк”). Однако настоящий успех пришел к фирме IBM после выпуска ею в 1981 году своего персонального компьютера − IBM PC. Именно с этого момента начинается новая эпоха в истории микрокомпьютеров − “эра IBM PC-совместимых компьютеров” [25].
3.3 “Открытая” архитектура, или все дело в принципе До 1981 года фирма IBM была известна во всем мире как крупнейший производитель больших компьютеров20 (в настоящее время компьютеры подобного класса называют мэйнфреймами). В августе 1981 года она вступила в конкурентную борьбу на недавно открытом рынке персональных компьютеров (ПК), выпустив свою первую “писишку” (IBM PC произносится как “Ай-Би-Эм Пи-Си”). К этому времени на рынке ПК уже обосновались и “правили бал” такие компьютерные фирмы, как Tandy Corporation (микрокомпьютер “Tandy TRS-80”), Apple Computers (микрокомпьютер “Apple II”) и некоторые другие. Однако компьютеры этих фирм имели так называемую “закрытую” архитектуру, т.е. аппаратные средства ПК оставались для конечных пользователей, философски выражаясь, “вещью в себе” и любая их модификация требовала профессиональных знаний в области электроники. IBM PC, построенный по принципу “открытой” архитектуры, оказался именно тем персональным компьютером, которого ждал рынок: гибким, легко адаптируемым, способным использовать разнообразные дополнительные устройства других фирм-производителей. Хотя компоненты первых “писишек” были весьма далеки от совершенства, эти компьютеры, благодаря реализованному в них принципу “открытой” архитектуры, одержали победу в жесткой конкурентной борьбе. Приступая в 1980 году к разработке ПК, фирма IBM отказалась от своего кредо, которому следовала до сих пор и которое можно сформулировать следующим образом: разрабатывая новый компьютер, делать все необходимое “своими руками”. Это объясняется, по-видимому, тем, что руководство фирмы 20
В нашей стране фирма IBM получила известность в 70-е годы как производитель компьютеров IBM/360 (а затем и IBM/370), послуживших прототипами отечественных ЕС ЭВМ.
45 сомневалось в перспективности рынка ПК и не особенно надеялось на коммерческий успех своего “мероприятия”. Средства, отпущенные на разработку ПК, были небольшими, да и сама группа инженеров-разработчиков, обосновавшаяся в городке Бока-Рейтон (штат Флорида), состояла всего из дюжины человек. Задача, поставленная перед руководителем проекта, была предельно краткой − выпустить на рынок как можно быстрее персональный компьютер. Чтобы решить эту задачу разработчики использовали готовый микропроцессор (МП) i8088 фирмы Intel, готовые дисководы фирмы Tandon Magnetics, готовый монитор и т.д. Именно стесненность в средствах и жесткие сроки привели к решению использовать “открытую” архитектуру ПК, а также аппаратные и программные средства, разработанные вне стен IBM. В частности, контракт на создание операционной системы (ОС) для разрабатываемого ПК был заключен с фирмой Microsoft Corporation (произносится “Майкрософт корпорейшн”), которую основали упомянутые выше Билл Гейтс и Пол Аллен [26]. Фирма IBM использовала при создании своего ПК принцип модульности (хорошо известный разработчикам больших машин) и, кроме того, ввела в конструкцию системной платы ПК гнезда (разъемы, слоты) расширения, которые позволили подключать дополнительные устройства непосредственно к шине компьютера. На платах, вставляемых в гнезда расширения, могут содержаться дополнительная память, контроллеры дисководов, видеоадаптеры, адаптеры локальной сети, модемы, различные приборные интерфейсы и многое другое. Наличие у IBM PC гнезд расширения позволяет сравнительно просто производить замену устаревших дополнительных устройств новыми − с улучшенными характеристиками. Достаточно смены плат управления (контроллеров) в гнездах расширения и подключения нового устройства к компьютеру. Все операции по смене плат и подключению устройства к ПК может выполнить даже неспециалист. Такой подход позволяет замедлить процесс морального старения ПК, позволяя пользователю в течение пяти и более лет поддерживать свой ПК “на должном уровне”. Принцип “открытой” архитектуры заключается не только (и не столько!) в том, что фирма IBM открыла доступ к системной шине компьютера путем введения гнезд расширения (аналогичный подход был использован и в Apple II), но и в том, что она предоставила полную техническую документацию на созданный ею ПК. Более того, после окончания разработки операционной системы DOS для IBM PC широким тиражом были изданы ее полные листинги. Такой нетипичной для западного рынка манерой поведения фирма IBM как бы предлагала другим электронным и программным фирмам принять участие в дооснащении созданного ею ПК. IBM PC, завоевав успех на рынке ПК, очень скоро стал примером для подражания. Ряд фирм-производителей микроэлектронной техники и среди них, уже упоминавшаяся Tandy Corporation, быстро освоили производство ПК, совместимых с IBM PC. Уже к 1984 году около 50 различных компаний предлагали свои персональные компьютеры, совместимые с IBM PC. Такие копируемые
46 компьютеры стали называться “клонами” IBM PC. Как правило, они полностью функционально совместимы со своим прототипом, но стоят дешевле и, кроме того, часто превосходят его по таким параметрам, как быстродействие, дизайн и т.д. Поэтому нет ничего удивительного в том, что к настоящему моменту фирма IBM, обладающая полным арсеналом современных технологий, является хоть и самым крупным, но не самым популярным производителем ПК своей собственной архитектуры. Довольно часто оказывалось, что первые места в рейтинге ПК занимали модели фирм-копировщиков, а не модели фирмы IBM. На сегодняшний день в ряду крупнейших производителей IBM PC-совместимых компьютеров можно выделить такие фирмы, как Compaq, Dell, Gateway 2000, HewlettPackard, Packard Bell, Zeos и некоторые другие.
3.4 Хронология важнейших событий Хронологию “появления на свет” различных базовых моделей ПК фирмы IBM можно представить следующими датами: • август 1981 года − IBM PC на базе микропроцессора 8088 фирмы Intel с 8-разрядной шиной данных и 20-разрядной адресной шиной, что позволяет обращаться к 1M (220) адресов. • март 1983 года − IBM PC/XT (Personal Computer/eXTended version − “расширенный” ПК) на базе микропроцессора 8088 (оснащен винчестерским диском емкостью 10 Мбайт). • август 1984 года − IBM PC/AT (Personal Сomputer/Advanced Technology − “усовершенствованный” ПК) на базе микропроцессора 80286 с 16-разрядной шиной данных и 24-разрядной адресной шиной (16М или 224 адресов). • конец 1986 года − PC на базе процессора 80386 (PC/386) с 32разрядными шиной данных и адресной шиной, что позволяет обращаться к 4Г (232) адресов (т.е. более чем к 4 млрд. байт). • 1989 год − PC на базе процессора 80486 (PC/486) со встроенным математическим сопроцессором и внутренней кэш-памятью (8 Кбайт), предназначенной для промежуточного хранения часто используемых команд и данных. • март 1993 год − PC на базе процессора Pentium c 64-разрядной шиной данных и 32-разрядной адресной шиной, двумя блоками внутренней кэшпамяти по 8 Кбайт для раздельного хранения команд и данных. • ноябрь 1995 год и позднее − PC на базе процессоров Pentium Pro, Pentium MMX, Pentium II, Pentium III и т.д. Приведенный выше перечень дат нуждается в нескольких комментариях. Прежде всего, популярную некогда модель PC/386 впервые выпустила фирма Compaq Computer, а не фирма IBM. По-видимому, “самолюбие” достопочтенной IBM было сильно задето этим событием, да и материальный урон, наносимый фирмами-копировщиками, год от года становился все более и более ощутимым. Так или иначе, но уже весной 1987 года IBM объявила о создании со-
47 вершенно нового семейства микрокомпьютеров, получившего название PS/2 (Personal System/2 − Персональная Система/2). По замыслу руководства фирмы компьютеры этого семейства должны были заменить все предыдущие модели IBM PC. При разработке компьютеров этого семейства IBM постаралась избежать своих прежних просчетов, позволивших другим фирмам “беззастенчиво” копировать предыдущие модели IBM PC. На этот раз разработчики фирмы IBM готовых компонентов не применяли. В новых компьютерах были использованы принципиально новые основные компоненты, на которые IBM имела авторские права. Кроме того, почти во всех моделях семейства PS/2 была использована совершенно иная, улучшенная структура системной шины (Micro Channel Architecture − микроканальная архитектура). Теперь, чтобы получить право на изготовление клона PS/2, конкуренты должны были купить у фирмы IBM лицензию и выплачивать “ройялти” (отчисления, зависящие от объема продаж). Таким образом, фирма IBM получила возможность контролировать цены, устанавливаемые на аналоги PS/2, т.е. проводить, как говорится, “свою политику” на рынке персональных систем. Рынок отреагировал соответственно. В итоге − компьютеры “Пи-Эс пополам или половинка системы”, несмотря на ряд архитектурных преимуществ, так и не получили столь же массового распространения как IBM PC. Микропроцессоры 80386 и 80486 выпускались также с 16-разрядной шиной данных (80386SX и 80486SX), что позволило удешевить использующие их компьютеры за счет использования сравнительно недорогих 16-разрядных устройств ввода-вывода. Для повышения производительности компьютера предпринимались попытки увеличения тактовой частоты процессора, т.е. осуществления так называемого разгона. В результате, не меняя архитектуру процессоров и технологию их изготовления, были получены хорошие показатели (386DX2 − повышение стандартной тактовой частоты 25 МГц вдвое, 486DX2 и 486DX4 − повышение стандартной тактовой частоты 33 МГц в два и четыре раза соответственно). Фирма Intel − первый и основной разработчик микропроцессоров для IBM PC − также как и фирма IBM стала объектом пристального внимания со стороны конкурирующих фирм (Advanced Micro Devices − AMD, Cyrix и других), производящих интегральные схемы для цифровой электроники. Чтобы избежать проблем с защитой авторского права на новые архитектурные решения при создании процессоров, руководство Intel зарегистрировало название Pentium в качестве своей торговой марки. В итоге − “наступающие на пятки” конкуренты вынуждены были называть свои процессоры как угодно, но только не Pentium (например, фирма AMD присвоила своим изделиям названия K5, K6, K7 − Athlon). Интересно, что буква K в наименованиях процессоров фирмы AMD, часто рассматривается как начальная буква в слове “killer” − имеется в виду “убийца Pentium’ов” (своеобразная рекламная акция конкурента!). В настоящее время тысячи фирм во всем мире тем или иным образом связаны с IBM PC (выпуск ПК, комплектующих и средств коммуникации, разра-
48 ботка программного обеспечения и т.д.). Для многих известных ныне в компьютерном мире людей именно IBM PC стал “путеводной звездой” к успеху. Так, например, Билл Гейтс, один из основателей и нынешний президент фирмы Microsoft Corporation, специализирующейся на разработке программного обеспечения для персональных компьютеров, начал свое “дело” с нескольких тысяч долларов, а спустя десятилетие стал одним из самых богатых (и молодых − сейчас ему чуть больше сорока пяти лет) людей Америки. Другие (например, Питер Нортон − бывший президент ранее существовавшей фирмы Peter Norton Computing, а ныне исполнительный директор фирмы Symantec, Филипп Кан − бывший президент фирмы Borland International) также стали “живой легендой” благодаря появлению IBM PC.
3.5 Аппаратная организация IBM PC В состав современных моделей компьютеров, совместимых с IBM PC, входят следующие устройства: − системный (процессорный) блок; − монитор; − клавиатура; − манипулятор “мышь”. Дополнительно к компьютеру могут быть подключены: − принтер; − сканер; − графопостроитель (плоттер); − аудиоустройства (например, звуковые колонки); − манипулятор “джойстик” (используется в некоторых компьютерных играх, таких как авиационные симуляторы, автомобильные гонки и т.п.); − дигитайзер (устройство для кодирования аналоговой информации); − устройства резервного копирования информации (например, называемый стримером накопитель на кассетных магнитных лентах − НКМЛ); − другие устройства, имеющие возможности сопряжения с компьютером. Ниже основные из перечисленных устройств рассмотрены подробнее. Рамки данного пособия не позволяют дать их более полное описание, автору пришлось использовать функциональный подход, “сдобренный” в ряде случаев перечислением некоторых технических параметров. Следует отметить, что существует множество источников, описывающих аппаратное обеспечение IBM PC-совместимых компьютеров с разной степенью детализации; среди них выделим лишь некоторые [27-30].
3.5.1 Системный блок
49 Системный блок − основное устройство персонального компьютера, предназначенное для ввода-вывода информации, ее обработки, хранения, передачи и тиражирования (размножения). В состав системного блока входят следующие основные компоненты: − материнская (системная) плата; − центральный процессор; − оперативная память; − видеоадаптер (видеокарта); − накопители на магнитных дисках; − последовательные и параллельные порты ввода-вывода. Дополнительно в состав системного блока могут быть включены: − накопители на компакт-дисках (приводы CD-ROM, CD-RW, CD-DVD); − накопители на кассетных магнитных лентах (стримеры); − звуковая карта; − сетевая карта (сетевой контроллер или адаптер); − внутренний модем; − различные интерфейсные платы, использующиеся для сопряжения внешних устройств с компьютером. Указанные выше компоненты заключены в металлический корпус с пластмассовой передней панелью и источником питания, обычная мощность которого составляет 200…250 Вт. Источник питания предназначен для преобразования переменного напряжения 220 В (или 110 В, так как в США, например, это номинальное напряжение сети) в постоянное напряжение различного номинала (±3.3 В, ±5 В, ±12 В), предназначенное для питания различных компонентов компьютера (процессора, материнской платы и плат расширения, накопителей, клавиатуры и мыши). Кроме того, в ряде случаев к источнику питания системного блока подключается сетевой кабель монитора. Материнская плата (motherboard) − большая печатная плата, на которой установлены основные электронные компоненты компьютера, включая центральный процессор, память, видеоадаптер и т.д. Основными характеристиками материнской платы являются: − тип поддерживаемых процессоров; − спецификация системной и локальных шин компьютера и их организация; − тип устанавливаемой оперативной памяти; − тип разъема для установки центрального процессора; − частота, на которой работает системная шина. Центральный процессор (ЦП) − главный компонент компьютера, выполненный в виде СБИС (сверхбольшая интегральная схема − имеется в виду высокая степень интеграции элементов в кристалле, а не сами размеры схемы), и размещенный в специальном “гнезде” на системной плате. Как правило, основной характеристикой ЦП является его внутренняя тактовая частота, от которой
50 зависит скорость выполнения команд. В настоящее время некоторые типы процессоров имеют тактовую частоту свыше 1 ГГц (109 Гц). Следует отметить, что при сравнении производительности различных типов процессоров используются так называемые “смеси” команд, а не только простейшие команды типа пересылки или сложения “регистр-регистр”. Кроме того, общая производительность компьютера зависит также от производительности всех без исключения его компонентов, среди которых особо следует выделить системную шину. Связь между собственными и подключаемыми (внешними) устройствами материнской платы осуществляют ее шины и логические устройства для их управления, выполненные в виде микропроцессорного набора (chip set). Различают синхронные и асинхронные шины − в зависимости от того, передаются ли данные в соответствии с задающей тактовой частотой или в произвольные моменты времени. Системная шина IBM PC и PC/XT, иногда называемая XT-bus, обеспечивает одновременную передачу 8 бит данных и позволяет обращаться к 1М адресов памяти, т.е. имеет 8 бит данных/20 бит адреса (поскольку это разрядность базового МП 8088). Кроме того, для работы с внешними устройствами шина предоставляет по 4 линии для запросов обслуживания аппаратных прерываний (IRQ − Interrupt Request) и прямого доступа к памяти (DMA). Как системная шина, так и базовый МП, синхронизируются от одного тактового генератора с частотой 4.77 МГц, равной 1/3 опорной частоты, что теоретически позволяет достигать скорости передачи около 5 Мбайт/c. Системная шина PC/AT, использованная в компьютерах с МП 80286 (16 бит данных/24 бита адреса), реализована в соответствии со стандартом ISA (Industry Standard Architecture − промышленная стандартная архитектура). Теоретически максимальная пропускная способность такой шины, работающей в асинхронном режиме на частоте 8 МГц, составляет 16 Мбайт/с. Шина EISA (Extended ISA − расширенная ISA) реализована в компьютерах на базе 32-разрядных МП 80386/486. Пропускная способность этой шины может достигать 32 Мбайт/c. При появлении микропроцессоров 80386 и 80486 стало очевидно, что частоты основной шины недостаточно для организации эффективного обмена данными между процессором и оперативной памятью. Поэтому была разработана спецификация 32-разрядной локальной шины VLB (VESA Local Bus − локальная шина стандарта VESA) с тактовой частотой до 50 МГц, что позволяет обеспечить пропускную способность до 130 Мбайт/c. В дальнейшем к VLB стали подключать высокоскоростные внешние устройства. В частности, первым внешним устройством, использующим эту шину для своих целей, стал видеоадаптер (см. ниже). Основным недостатком VLB, повлекшим к отказу от ее дальнейшего использования, является сильная зависимость предельной частоты шины от количества подключенных к ней устройств (при наличии двух устройств − 40 МГц, трех устройств − 33 МГц и т.д.).
51 С появлением процессоров Pentium разработчиками компьютеров была предложена 32- или 64-разрядная синхронная локальная шина PCI (Peripheral Component Interconnect − подключение внешних компонентов), обеспечивающая максимальную пропускную способность 132 Мбайт/c (32 разряда/33 МГц) или 528 Мбайт/с (64 разряда/66 МГц). Для связи PCI с основной шиной компьютера (ISA/EISA) используется специальный интерфейсный преобразователь, получивший название “моста PCI” (PCI Bridge). Важной особенностью PCI является поддержка режима “plug-and-play” (буквально переводится с англ. как “вставляй и играй”). Суть его состоит в том, что после установки адаптера устройства в разъем PCI происходит обмен информацией с материнской платой, позволяющий операционной системе выполнить автоматическое определение и конфигурирование устройства, т.е. задать для него номер используемого прерывания, адрес порта ввода-вывода, номер канала ПДП, установить соответствующий драйвер. В современных IBM PC-совместимых компьютерах шина PCI используется только для подключения внешних устройств, а для связи процессора и оперативной памяти используется специальная шина FSB (Front Side Bus − шина переднего плана), работающая с частотой свыше 100 МГц, что позволяет осуществлять передачу данных со скоростью 800 Мбайт/c. Рабочая частота FSB является одной из важнейших потребительских характеристик и обязательно приводится в спецификации материнской платы. Оперативная память (ОЗУ, RAM) в современных микрокомпьютерах представлена совокупностью микросхем, монтируемых на отдельных платах (модулях) и устанавливаемых в специальные гнезда (слоты). Основными характеристиками оперативной памяти является ее объем (измеряется в Мбайтах) и время доступа (измеряется в наносекундах, 1 нс = 10-9 с). В настоящее время типичными значениями для этих характеристик являются 64−256 Мбайт и 50−70 нс. Видеоадаптер − электронная печатная плата, генерирующая видеосигнал, посылаемый монитору. Фактически видеосигнал формируется в результате сканирования содержимого видеопамяти. Видеоадаптер, монитор и комплект графических драйверов в совокупности образуют так называемую видеосистему персонального компьютера. Основными характеристиками видеоадаптера являются: − тип видеопамяти и ее объем; − тип и спецификация шины (интерфейсного порта); − наличие дополнительных графических ускорителей. Видеопамять − это динамическое ОЗУ, имеющее ряд особенностей, главная из которых заключается в возможности одновременного выполнения операций чтения и записи за счет наличия двух портов (входов) доступа к данным. Объем видеопамяти определяет разрешение экрана, т.е. количество отображаемых по горизонтали и вертикали экрана точек, или пикселей (pixel − picture element, что переводится с англ. как “элемент изображения”). Кроме того, от
52 имеющегося объема видеопамяти напрямую зависит цветовое разрешение (глубина цвета), т.е. количество оттенков основных цветов, отображаемых на на экране монитора (16, 256, 65536 и более). Формула, показывающая зависимость объема видеопамяти (в байтах) от разрешения экрана и глубины цвета, имеет следующий вид [31]: P=
m⋅n⋅b , 8
где P − необходимый объем видеопамяти (байт); m − горизонтальное разрешение экрана (точек); n − вертикальное разрешение экрана (точек); b − разрядность кодирования цвета (бит). Наиболее известны несколько стандартов видеоадаптеров для IBM PCсовместимых компьютеров: − MDA (Monochrome Display Adapter) − адаптер монохромного дисплея (исторически первый видеоадаптер IBM PC), обеспечивающий работу в текстовом режиме с разрешением 720×348 точек; − CGA (Color Graphics Adapter) − цветной графический адаптер, обеспечивающий работу в трех различных режимах: текстовый (640×200 точек, 8 цветов двух градаций яркости каждый), графический низкого (320×200 точек, 4 цвета) и графический высокого (640×200 точек, монохромный) разрешения; − EGA (Enhanced Graphics Adapter) − улучшенный графический адаптер, обеспечивающий работу в текстовом и нескольких графическом режимах с максимальным разрешением 640×350 точек и поддержкой 16 цветов (64 оттенков); − VGA (Video Graphics Adapter) − видеографический адаптер, обеспечивающий работу в нескольких графических режимах с максимальным разрешением 640×480 точек и поддержкой 16 цветов; − SVGA (Super VGA) − видеографический адаптер c улучшенными характеристиками, обеспечивающий работу в нескольких графических режимах с разрешением 800×600 точек при 256 цветной палитре и выше. Скорость обмена информацией между видеоадаптером и оперативной памятью является критичной для эффективной работы пользователей ПК. Поэтому исторически видеоадаптер всегда являлся первым внешним устройством, получающим доступ к высокоскоростным локальным шинам доступа к памяти (VLB, PCI). В настоящее время он имеет собственную локальную шину AGP (Accelerated Graphic Port − ускоренный графический порт), работающую на частоте 33 или 66 МГц в трех режимах передачи: AGP 1x − обычный, 266 Мбайт/с; AGP 2x − двукратное умножение, 532 Мбайт/с; AGP 4x − четырехкратное умножение, 1064 Мбайт/с. Графический (видео) ускоритель − специализированный процессор, ориентированный на выполнение сложных вычислений для построения плоских (2D) и трехмерных (3D) изображений. Ускоритель может входить в состав видеоадаптера или поставляться в виде отдельной платы, устанавливаемой на материнской плате и подключаемой к видеоадаптеру с помощью плоских кабелей.
53 Использование видео-ускорителя обеспечивает существенное увеличение скорости прорисовки сложных изображений на экране монитора. Накопители информации обычно представлены в ПК так называемыми дисководами − жестким магнитным (винчестерским) диском (Hard Disk Drive − HDD) и приводом гибкого магнитного диска (Floppy Disk Drive − FDD) [32]. Носителем информации в дисковых устройствах является диск − вращающаяся круглая пластина с намагничиваемой поверхностью, способной хранить записанную на нее цифровую информацию. Для считывания и записи информации на диск в дисковых устройствах имеются специальные головки чтения-записи. В противоположность магнитной ленте, обеспечивающей последовательный доступ к записанной на ней информации, диск иногда называют устройством прямого (произвольного) доступа, поскольку его головка чтения-записи может быть независимо позиционирована в любое место на диске. Как отмечалось выше, существуют два основных вида магнитных дисков: гибкий диск, или дискета, и жесткий диск. Дискета − это съемный носитель информации, ее можно поместить в привод НГМД (дисковод) перед записью и/или чтением информации и удалить из привода после окончания работы с нею. Жесткий диск − это несъемный носитель информации, являющийся элементом конструкции привода винчестерского диска, он не подлежит удалению из дисковода и его замена обычно означает замену всего дисковода. Дискета изготавливается из гибкого материала (пластика), на поверхность которого наносится слой намагничиваемого вещества (например, в первых дискетах это были частицы оксида железа, т.е. ржавчины, связанные с поверхностью специальным лаком). Как правило, производится магнитное покрытие обеих сторон (поверхностей) гибкого диска. Затем гибкий диск помещается в пластиковый конверт или в пластмассовый корпус. Гибкие диски, используемые в настоящее время в IBM PC-совместимых компьютерах, имеют диаметр 3.5 дюйма или 89 мм (ранее использовались также диски диаметром 5.25 дюйма или 133 мм). Хотя размеры дискет могут и совпадать, количество хранящейся на них информации, может различаться. Это объясняется тем, что не все магнитные материалы имеют одинаковые параметры. В результате зоны остаточной намагниченности, с помощью которых и представляется записанная на диске информация, могут иметь различные размеры. Чем меньше размер такой зоны, тем больше информации удается записать на дискете. Кроме того, дисководы могут различаться характеристиками головки чтения-записи (широкая или узкая), что, в конечном итоге, может привести к несовместимости дисков, записанных на различных дисководах. Для ликвидации этой проблемы приходится прибегать к специальным мероприятиям [33]. Исторически различают дискеты (и дисководы) обычной, двойной и высокой (учетверенной) плотности записи (обозначаются как SD − Single Density, DD − Double Density и HD − High Density соответственно). В настоящее время используются в основном двусторонние (Double Sided − DS) дискеты высокой
54 плотности (HD), позволяющие хранить до 1.44 Мбайта полезной информации на дискете размером 3.5 дюйма и 1.2 Мбайта на дискете 5.25 дюйма. Жесткие диски состоят из одной или, что бывает гораздо чаще, нескольких алюминиевых (иногда керамических) круглых пластин, смонтированных на оси (шпинделе), вращаемой небольшим электромотором. Обе стороны каждой из пластин покрыты слоем (пленкой) намагничиваемого вещества. У каждой стороны пластины имеется своя головка чтения-записи. Все головки чтениязаписи винчестерского диска смонтированы на позиционерах, объединенных в блок, называемый кареткой, и перемещаемый с помощью другого электромотора (рис. 3.2). Угловая скорость вращения пластин жесткого диска очень высока: в первых моделях она составляла около 3600 оборотов/мин., в настоящее время − 5400 оборотов/мин., 7200 оборотов/мин. и более. Для сравнения − скорость вращения гибкого диска составляет всего 300 оборотов/мин. 0-я поверхность диска
Головка чтения-записи
Каретка
Пластины дискового пакета
5-я поверхность диска Электромотор, вращающий ось дискового пакета
Электромотор, позиционирующий головки чтения-записи
Рис. 3.2 Схематичное изображение устройства винчестерского диска Дисководы управляются с помощью электрических сигналов, поступающих от контроллера диска, который представляет собой специальную электронную печатную плату, вставляемую в разъем (слот) на материнской плате (в последнее время используются материнские платы с интегрированными контроллерами дисков). В разъеме плата контроллера диска электрически подсоединяется к шине компьютера, по которой ей передаются электрические сигналы от ЦП. Следуя этим сигналам, контроллер управляет обменом данных с диском и позиционированием головок чтения-записи. Физическая организация данных на диске. Информация, записанная на диске, располагается на концентрических окружностях, называемых дорожками. Перед выполнением операции считывания или записи данных головка чтения-записи перемещается (позиционируется) к одной из дорожек диска.
55 Большинство дискет, использующихся в настоящее время, имеют высокую плотность записи (HD) и содержат по 80 дорожек. На жестких дисках количество дорожек во много раз больше, поскольку они имеют твердую поверхность, покрытую слоем высококачественного намагничивающегося материала, позволяющего плотнее “упаковывать” записываемую информацию, и небольшие головки чтения-записи, которые могут управляться с высокой точностью. Так, например, первый жесткий диск емкостью 10 Мбайт, которым оснащались когда-то IBM PC/XT, имел 305 дорожек. В настоящее время жесткие диски, уменьшившись в размерах, увеличили количество дорожек, находящихся на поверхности их пластин (более 1000). Современные жесткие диски состоят, как правило, из двух или более пластин, образующих так называемый дисковый пакет. Поверхности пластин пакета нумеруются, начиная с 0. Нумерация дорожек на каждой из поверхностей также начинается с 0 в направлении от внешнего края диска к его центру. Для обозначения всех дорожек с одинаковыми номерами, расположенных на различных поверхностях дискового пакета, используется термин “цилиндр”. Дорожки обычно разбиваются на более мелкие сегменты, называемые секторами, которые являются основной единицей хранения информации на диске (рис. 3.3). В DOS, исторически первой операционной системе для IBM PC, стандартный размер сектора составляет 512 байт. Количество секторов на дорожке может быть разным и зависит от емкости диска. Для дискет высокой плотности это значение равняется 15 (для размера 5.25 дюйма) или 18 (для размера 3.5 дюйма). Жесткие диски имеют обычно 17 секторов на дорожке. Решение о разбиении каждой из дорожек диска на одинаковое количество секторов привело к необходимости неравномерной плотности записи информации на диск. Действительно, длина сектора на внутренней дорожке меньше длины сектора на внешней дорожке, а хранить они должны одинаковое количество информации − 512 байт. Чтобы разрешить это противоречие, требуется записывать информацию более плотно на внутренних и менее плотно на внешних дорожках. Технически это возможно, если при записи варьировать мощность магнитного поля по мере продвижения головки к центру диска, что позволяет создавать зоны остаточной намагниченности меньшего размера, чем у края диска. Использование секторов дает возможность пользоваться общим методом хранения данных на дисках различной емкости. Секторы на дорожке нумеруются, начинаются с 1. Таким образом, полный номер (адрес) сектора, используемый обычно в программах ROM-BIOS (Basic Input Output System − базовая система ввода-вывода), складывается из номера поверхности (головки чтениязаписи), номера дорожки на поверхности и номера сектора на дорожке. Например, физический адрес 0-0-1 идентифицирует 1-й сектор 0-й дорожки на 0-й поверхности диска. В сервисных программах DOS используются, как правило, логические номера секторов. Логическая нумерация секторов диска является сквозной и начинается с 0, что соответствует 1-му сектору 0-й дорожки на 0-й
56 поверхности, и заканчивается последним сектором последней дорожки на последней поверхности диска. Сектор
Сектор
Дорожка
Сектор
Сектор
Рис. 3.3 Упрощенная иллюстрация понятий “сектор” и “дорожка” для магнитного диска Выполняя запись информации на диск, операционная система оптимизирует свою работу следующим образом. Сначала записывается дорожка на 0-й поверхности диска, затем − дорожка с тем же номером на 1-й поверхности и т.д. Этот прием позволяет произвести запись цилиндра без смещения блока головок чтения-записи, а лишь путем их переключения, что позволяет сэкономить время. Следует также иметь в виду, что при работе с дисковыми устройствами на уровне ROM-BIOS их принято нумеровать (1, 2, 3 и т.д.), а на уровне операционной системы − именовать, используя буквы латинского алфавита и двоеточие (A:, B:, C: и т.д.).
3.5.2 Монитор Важнейшей частью видеосистемы современного ПК является монитор, представляющий устройство визуального отображения информации. В настоящее время наиболее распространены мониторы на основе ЭЛТ − электроннолучевой трубки (по англ. CRT − Cathode Ray Tube).
57 ЭЛТ − это стеклянная колба, в горловине которой размещена нак называемая электронная пушка (для цветного монитора − блок из трех электронных пушек), а широкая часть (основание) имеет изнутри люминафорное покрытие в виде точек или полос. Из колбы откачивается воздух, она заполняется инертным газом под низким давлением и ее горловина (узкий конец) запаивается. Электроны, испущенные электронной пушкой, разгоняются внутри ЭЛТ и попадают на люминафорное покрытие, вызывая его свечение. Для получения цветного изображения точки или полоски должны трех типов, обеспечивающих получение красного (Red), зеленого (Green) и синего (Blue) цвета. Это так называемые основные цвета (RGB), смешением и изменением интенсивностей которых можно добиться получения других цветов палитры и множества их оттенков. Внутри ЭЛТ имеются так называемые магнитные линзы, фокусирующие испущенные электронные лучи, и, кроме того, перед люминафорным покрытием находится теневая маска − панель из специального сплава (инвара) с регулярно расположенными отверстиями или щелями. Это обеспечивает точное схождение электронных лучей в одну точку и способствует получению более четкого изображения на экране. Расстояние между центрами соседних отверстий или щелей на маске определяет так называемый шаг маски, измеряемый в миллиметрах. Чем меньше шаг маски, тем более четким получается изображение. В настоящее время используются мониторы, у которых шаг маски лежит в диапазоне от 0.21 до 0.28 мм. Другой важной потребительской характеристикой монитора является частота регенерации (обновления) изображения, которую также называют частотой кадровой развертки, или просто частотой кадров. Она измеряется в герцах (Гц) и чем выше ее величина, тем более четким и устойчивым будет изображение. В настоящее время используются мониторы с величиной частоты кадров, лежащей в диапазоне от 75 Гц до 100 Гц и выше. Кроме того, иногда для мониторов приводят такую характеристику, как частота горизонтальной развертки, показывающая с какой частотой электронный луч пробегает горизонтальный ряд точек люминофора. Эта величина измеряется в килогерцах (КГц) и для современных мониторов составляет многие десятки КГц. Сегодня все больше персональных компьютеров оснащаются LCDмониторами (Liquid Crystal Display − жидкокристаллический дисплей). Ранее жидкокристаллические дисплеи использовались в основном в портативных персональных компьютерах − ноутбуках (notebook). Существуют, по меньшей мере, три причины, по которым применение LCD-мониторов становится все шире. Во-первых, для них характерна высокая четкость изображения, обусловленная тем, что каждый пиксель экрана отображается в отдельной ячейке жидкокристаллической матрицы, конструктивно отделенной от соседних. В обычных же мониторах, где пиксель формируется из нескольких точек, границы изо-
58 бражения оказываются слегка размытыми, что особенно заметно при работе с контрастными объектами. Во-вторых, у LCD-мониторов практически отсутствуют вредные для здоровья человека излучения. В мониторах с ЭЛТ для формирования изображения используется сфокусированный пучок электронов, направленный из глубины устройства к экрану. Столкновение заряженных частиц с экраном приводит к появлению так называемого тормозного излучения, которое отрицательно воздействует на здоровье человека и может стать причиной различных заболеваний. В современных мониторах (Low Radiation) ограничивают мощность пучка электронов и используют специальные защитные покрытия экрана, что позволяют уменьшить эту опасность, но не исключить ее вовсе. В третьих, компактность и больший размер видимой области экрана. Для работы монитора с ЭЛТ требуется, чтобы электронная пушка находилась на определенном расстоянии от поверхности экрана. Таким образом, уменьшить габаритные размеры обычных мониторов достаточно сложно (существуют, правда, дорогостоящие технологии, позволяющие использовать укороченные ЭЛТ). LCD-монитор в этом отношении намного удобнее, поскольку толщина самой LCD-панели всего 2…3 см, а вместе с корпусом толщина не превышает 10 см. Кроме того, вся поверхность LCD-панели является рабочей, тогда как по краям ЭЛТ имеются неиспользованные участки. К основным недостаткам LCD-мониторов можно отнести следующие: 1) достаточно высокая цена (как минимум на 250 долларов дороже, чем монитор на основе ЭЛТ с таким же размером экрана); 2) ограничение на выбор разрешения экрана. LCD-панель, содержащая фиксированная число элементов, демонстрирует наивысшее качество в случае, когда используются все эти элементы. Однако при использовании графического режима с более низким разрешением ухудшается качество изображения; 3) проблема цветопередачи (точность цветопередачи недостаточна для профессиональной работы с цветными изображениями). Кроме того, функции калибровки цвета у LCD-мониторов ограничены. Поэтому художники и дизайнеры пока предпочитают использовать высококачественные мониторы с ЭЛТ; 4) некоторая инерционность изображения, проявляющаяся при просмотре высококачественных видеозаписей (например, DVD) и отображении динамических объектов в некоторых играх (например, в Quake III).
3.5.3 Клавиатура Клавиатура − клавишное устройство, подключаемое к ПК и предназначенное для ручного ввода алфавитно-цифровых данных. Комбинация монитора и клавиатуры обеспечивает простейший интерфейс пользователя, обеспечивающий подачу команд системе и получение отклика на них.
59 Внутри клавиатуры находятся электронные схемы дешифрации и своеобразная решетка из проводников, причем места пересечения этих проводников (контактные площадки) расположены непосредственно под клавишами. Всем клавишам клавиатуры присвоены идентификационные номера, при этом любым двум дублирующимся клавишам (например, Shift, Ctrl и Alt) соответствуют различные номера. Нажатие какой-либо клавиши на клавиатуре приводит к замыканию соответствующих проводников, а отпускание клавиши − к их размыканию. На материнской плате расположен контроллер клавиатуры − 8-разрядный МП Intel 8048 со встроенным ПЗУ емкостью 2 Кбайта, выполняющий специальную программу, которая каждые 5 мс (1 мс = 10-3 с) сканирует решетку проводников с целью обнаружения нажатия или отпускания клавиши. По результатам сканирования программой формируется так называемый скан-код (scan code) клавиши − целое число в байте, младшие 7 бит которого представляют идентификационный номер клавиши. Если клавиша нажата, то программа сканирования в дальнейшем игнорирует ее − вплоть до ее отпускания. В зависимости от типа клавиатуры (XT − 83 клавиши или AT − 101 клавиша) состояния нажатой и затем отпущенной клавиши представляются по-разному. Для клавиатуры PC/XT нажатая клавиша представляется 1 в старшем бите скан-кода, а отпущенная клавиша − соответственно 0. Для клавиатуры PC/AT передача скан-кода отпущенной клавиши предваряется посылкой байта, содержащего F0. Если клавиша удерживается в нажатом состоянии дольше полсекунды, то программа, выполняемая МП 8048, начинает вырабатывать соответствующий скан-код 10 раз в секунду. Передача скан-кода сопровождается генерацией сигнала прерывания от клавиатуры (номер прерывания − 9), что приводит к приостановке текущей работы ЦП и передаче управления драйверу клавиатуры. Драйвер анализирует полученный скан-код и, если он соответствует нажатой клавише, помещает в буфер клавиатуры соответствующий код символа; в противном случае − полученный скан-код игнорируется. В буфере клавиатуры могут храниться до 15 кодов символов одновременно, а выбор символов из буфера производится в порядке их поступления, т.е. применяется дисциплина обслуживания FIFO (first in, first out − первым вошел, первым вышел). Такой емкости буфера обычно хватает, чтобы своевременно обслуживать ввод с клавиатуры, выполняемый с самой высокой скоростью, которая доступна человеку (около 400 символов/мин.). Клавиатура относится к стандартным устройствам ПК, поэтому необходимое для работы с ней программное обеспечение входит в состав BIOS. Тем не менее, имеется возможность изменить обычный режим работы путем написания собственного драйвера, обрабатывающего прерывания от клавиатуры, загрузки его в память компьютера и занесения адреса в соответствующую запись вектора прерываний. Более подробную информацию о принципах работы клавиатуры IBM PC и ее перепрограммировании можно найти, например, в [34].
60 Клавиатура подключается к компьютеру с помощью специального порта, представленного разъемом на задней стенке системного блока. В настоящее время для подключения клавиатуры все чаще используют компактный разъем типа PS/2. Кроме того, в современных персональных компьютерах клавиатура может подключаться к разъему USB (Universal Serial Bus − универсальная последовательная шина). Стандартная клавиатура современных IBM PC-совместимых компьютеров имеет 101 клавишу и более, функционально распределенные по нескольким группам: − алфавитно-цифровые клавиши, предназначенные для ввода символьной информации. Каждая клавиша этой группы может работать в нескольких режимах (регистрах), обеспечивая ввод строчных и прописных букв английского и русского алфавитов, цифр, знаков препинания и т.д. Для разных языков существуют различные схемы закрепления символов национальных алфавитов за конкретными алфавитно-цифровыми клавишами, называемые раскладками клавиатуры. Переключение между раскладками клавиатуры, т.е. с одного алфавита на другой, осуществляется программным способом и является одной из функций операционной системы; − функциональные клавиши (F1−F12), за которыми закреплены функции, обеспечиваемые конкретной операционной системой или работающей прикладной программой. Общепринятым соглашением является использование клавиши F1 для вывода справочной информации по работе с программой; − служебные клавиши (Alt, Ctrl, Shift Enter, Tab, Backspace, Print Screen, Scroll Lock, Pause/Break); − клавиши управления курсором (←,↑, ↓, →, Page Up, Page Down, Home, End, Insert, Delete); − клавиши дополнительной клавиатуры (блок цифровых клавиш, Num Lock, клавиши знаков арифметических операций). Эта клавиатура в сочетании с клавишей Alt может использоваться для ввода символов, отсутствующих на клавиатуре, но для которых известны расширенные коды (например, § − символ “параграф” с кодом 0167 или ° − символ “градус” с кодом 0176).
3.5.4 Мышь Манипулятор “мышь” выполнен в виде пластмассовой коробочки с двумя или тремя кнопками. Вместо средней кнопки может быть представлено небольшое колесико для прокрутки (скроллинга) информации в окнах прикладных программ (например, в окнах текстового редактора Microsoft Word и электронной таблицы Microsoft Excel). В конструкции большинства недорогих манипуляторов “мышь”, применяемых в настоящее время, используется оптико-механический принцип. Перемещение мыши по плоской поверхности синхронизовано с перемещением указателя (курсора) мыши на экране. Ответственность за вид и позиционирование
61 курсора мыши на экране возлагается на специальную системную программу − драйвер мыши. Отсчет величины перемещения мыши на плоскости задается вращением небольшого, покрытого резиной, металлического шарика, утопленного в “брюшке” мыши. Вращение шарика приводит к повороту двух пластмассовых роликов, закрепленных на взаимно перпендикулярных осях в корпусе мыши. На одном конце каждого из роликов находится небольшой пластмассовый или металлический диск с множеством радиальных прорезей, причем каждый из дисков установлен как раз между источником света и фотодетектором (например, фотодиодом или фоторезистором). Смещение мыши на сотые доли дюйма приводит к повороту осей и, соответственно, дисков, что обеспечивает периодическое прерывание световых лучей. Попадание световых импульсов на фотодетекторы приводит к дискретному изменению потенциалов. Этот факт фиксируется электронной схемой в корпусе мыши, которая формирует специальные электрические сигналы и передает их в системный блок. Хотя мышь была изобретена Дугласом Энджельбертом еще в начале 1960-х годов, она не является стандартным устройством ввода, поэтому ПК не имеет для нее специального порта; обычно мышь подключается к разъему порта COM1 (реже − COM2), расположенному на задней стенке системного блока. В современных ПК мышь может быть также подключена к разъему PS/2 или USB. Для обеспечения работы мыши требуется загрузка соответствующего драйвера. Современный интерфейс “пользователь-компьютер”, реализованный в операционных системах и прикладных программах, основывается на экранном графическом представлении различных информационных объектов и использовании мыши в качестве целеуказателя. В этой связи конструкция мыши постоянно совершенствуется, изменяются принципы ее действия (например, имеются так называемые оптические мыши, использующие отражение луча света от специального коврика с нанесенной на него мелкой координатной сеткой). В настоящее время любая программа, претендующая на роль профессионально исполненной, должна поддерживать графический интерфейс и манипуляции с мышью.
Вопросы для самопроверки 1. Перечислить основные компоненты типичного микрокомпьютера и нарисовать его общую структурную схему. Что выступает в роли интегрирующего звена микрокомпьютера? Почему? 2. Какой компонент микрокомпьютера играет роль внутренних часов микропроцессора? Для чего, собственно, микрокомпьютеру нужны внутренние часы? 3. Для какой цели в микрокомпьютере используются микросхемы ПЗУ? Какие типы ПЗУ известны? В чем их различие?
62 4. В чем выражается и чем обусловлен феномен IBM PC? В чем состоит так называемый принцип “открытой” архитектуры, реализованный в IBM PC? 5. Привести основную хронологию появления базовых моделей IBM PC. Какие микропроцессоры использовались в этих моделях? 6. Перечислить устройства, входящие в состав современного IBM PCсовместимого компьютера. Какие устройства заключены в системный блок компьютера? 7. Перечислить типы шин IBM PC-совместимых компьютеров и их основное назначение. Для какой цели используются локальные шины компьютеров? 8. Кратко описать устройство приводов гибкого и винчестерского дисков. В чем их основное различие? 9. Что входит в состав видеосистемы современного персонального компьютера? Кратко описать основные принципы работы монитора, его технические характеристики. 10. Мышь, так же как и клавиатура, является устройством ввода. В чем, собственно, состоит их различие, если не считать разного количества клавиш (кнопок)?
Глава 4 Системное программное обеспечение персонального компьютера Программное обеспечение − это обобщенное понятие, введенное для обозначения множества всех программ, используемых на ЭВМ. Соответствующий англоязычный термин software переводится буквально как “мягкое” обеспечение − в противоположность hardware, т.е. “жесткому”, или аппаратному, обеспечению (техническим средствам ЭВМ или, проще говоря, “железу”). Такая терминология призвана указать на принципиальное различие между техническими и программными средствами ЭВМ и отметить универсальный, или адаптируемый, характер последних. Как отмечалось выше, все программы можно отнести либо к системному, либо к прикладному программному обеспечению. В данной главе рассмотрены вопросы, связанные с использованием общесистемных (операционные системы) и сервисных прикладных программ (утилиты). Наиболее обширный класс программ составляют проблемно-ориентированные прикладные программы (например, системы программирования, управления документооборотом, автоматизированного проектирования, бухгалтерские программы и т.д.). Некоторые из них рассмотрены в части 2 данного пособия, другие − в курсе “Информационные системы и технологии в экономике”.
4.1 Иерархия программных средств
63 Аналогично тому, как состав технических средств персонального компьютера называют аппаратной конфигурацией, состав программных средств называют программной конфигурацией. Между программами, так же как и между физическими узлами и блоками компьютера, имеется тесная взаимосвязь. Она выражается в том, что многие программы, выполняя свою работу, опираются на возможности программ более низкого уровня, т.е. имеет место определенная иерархия программных средств (рис. 4.1). Прикладная программа
Ядро операционной системы
Драйверы
ROM-BIOS
Технические средства компьютера Рис. 4.1 Схема взаимодействия прикладной программы с операционной системой, ROM-BIOS и техническими средствами компьютера Как правило, прикладная программа напрямую не обращается к техническим средствам компьютера; для этой цели она использует интерфейс прикладного программирования, обеспечиваемый операционной системой, которая, в свою очередь, обращается к функциям, реализованным драйверами и BIOS [35]. Однако в ряде случаев разработчики, сообразуясь с требованиями быстродействия программы, предпочитают непосредственную работу с аппаратурой (в MSDOS таким устройством чаще всего является видеоадаптер).
4.1.1 Базовая система ввода-вывода (ROM-BIOS) Нижний уровень (слой) программной иерархии, непосредственно прилегающий к техническим средствам ПК, представлен базовой системой ввода-
64 вывода, записанной в ПЗУ (БСВВ-ПЗУ, ROM-BIOS)21. В состав ROM-BIOS входят следующие типы программ: − программа самотестирования ПК после включения питания (POST − Power On Self Test); − программы управления стандартными устройствами ПК: CON − консолью (дисплеем и клавиатурой), PRN − построчно-печатающим устройством (принтером), CLOCK$ − системными часами, блочным устройством загрузки (магнитным диском) и некоторыми другими; − ряд сервисных программ. Программа POST выполняет две основные функции: 1) проверяет наличие и работоспособность основных устройств ПК; 2) отыскивает на диске, загружает в ОЗУ и передает управление программе загрузки (загрузчику) операционной системы. Тестирование, выполняемое программой POST, осуществляется по принципу “расширяемого диагностического ядра”, т.е. сначала проверяется работоспособность минимального набора аппаратуры, представляющего так называемое ядро: ЦП и его ближайшее “окружение” (вспомогательные микросхемы, ПЗУ, область младших адресов ОЗУ), а затем − остальных компонентов системы (клавиатура, видеоадаптер, контроллер НГМД, ОЗУ в полном объеме). Часть этой проверки программа POST выполняет еще до того как будет инициализирована видеосистема компьютера, поэтому об обнаружении неисправностей она оповещает серией звуковых сигналов различной длительности, издаваемых динамиком (PC speaker), размещенным в системном блоке. После проверки видеосистемы программа POST выводит диагностические сообщения на экран монитора. По окончании тестирования аппаратуры выполняется инициализация таблицы векторов прерываний, которая находится в самом начале ОЗУ. Каждая запись в таблице представлена вектором прерываний − парой машинных слов, образующих адрес обработчика прерываний22. Примечание. Поскольку вектор прерываний имеет длину, равную четырем байтам, легко определить местоположение вектора прерываний в таблице, зная его номер. Например, вектор прерывания 05h, отвечающего за печать содержимого экрана, находится в ячейке таблицы со смещением 20 (5 × 4 = 20). Используемый способ хранения адресов обработчиков прерываний позволяет легко перенастраивать их адреса и, таким образом, изменять стандартную обработку прерываний, если это потребуется. Для этого необходимо написать соб21
22
В настоящее время для хранения программ и данных BIOS все чаще используют микросхемы флэш-памяти (flash memory), представляющие собой разновидность ЭСППЗУ. Некоторые записи в таблице векторов прерываний содержат адреса, ссылающиеся не на обработчики прерываний, а на другие таблицы (структуры), содержащие необходимую информацию. Например, в записи с номером 1Eh содержится адрес таблицы с параметрами инициализации дисковода, а в записи с номером 1Fh − адрес таблицы знакогенератора.
65 ственную программу с функциями, отличными от тех, что реализует стандартный обработчик, загрузить ее машинный код в некоторую область ОЗУ, а затем в соответствующей записи таблицы векторов прерываний установить начальный адрес этой области. Заключительной частью процедуры POST является запуск программы начальной загрузки (ROM Bootstrap Routine), которая пытается считать в ОЗУ содержимое сектора с адресом 0-0-1 на устройстве загрузки. Этот сектор называется сектором загрузки (Boot Sector) для дискеты (A:) или главной записью загрузки (Master Boot Record) для первого винчестерского диска (C:). Сектор загрузки содержит небольшую (поскольку его размер всего 512 байт) программу − загрузчик ОС − и необходимые для ее работы данные. Главная запись загрузки винчестерского диска также содержит небольшую программу, но ее задачей является не загрузка ОС, а сканирование таблицы логических разделов диска (Partition Table) с целью отыскания информации об активном разделе, содержащем ОС. Как минимум двухступенчатая схема загрузки обеспечивает достаточную гибкость системе, позволяя загружать на компьютере различные типы ОС при одной той же ROM-BIOS. Более подробно логическая структура магнитного диска рассмотрена ниже при изложении информации о файловой системе. Программы, записанные в ROM-BIOS, достаточно эффективно управляют стандартными устройствами ПК. Однако они взаимодействуют с устройствами на низком уровне, выполняя лишь простые операции ввода-вывода (например, записывают данные в сектора на диске, но не могут организовать из них файлы). В отличие от них, операционная система обеспечивает возможности более высокого уровня. В частности, воспользовавшись функциями операционной системы можно работать с устройствами и файлами, используя их имена, а не самостоятельно работать с секторами диска, отслеживая их принадлежность тому или иному файлу.
4.1.2 Драйверы устройств ввода-вывода Драйверы устройств ввода-вывода образуют своеобразную надстройку над программами (сервисами), записанными в ROM-BIOS. Строго говоря, драйверы устройств являются частью ядра ОС − резидентного, т.е. постоянно находящегося в ОЗУ, набора программных модулей системы. Драйверы обеспечивают стандартный интерфейс ядра ОС с устройствами ввода-вывода, используя для этой цели программы ROM-BIOS. Драйверы устройств выполняют следующие основные функции: − обработка сигнала прерывания; − прием и обработка запроса к устройству; − преобразование запроса в последовательность команд управления устройством.
66 В качестве примера рассмотрим упрощенный процесс записи данных в файл на гибком диске в операционной системе DOS [36]. Программа, желающая выполнить эту операцию, формирует запрос к системе с помощью функции 40h прерывания 21h. DOS преобразует этот запрос в несколько команд драйвера диска (рис. 4.2). Первая команда направлена на отыскание свободного места на диске, для чего драйверу требуется прочитать специальную структуру, хранящую информацию о распределении дискового пространства и называемую таблицей размещения файлов (FAT − File Allocation Table). При наличии свободного места на диске DOS дает драйверу вторую команду для записи данных в файл. Затем DOS должна обновить дату и время последнего доступа к файлу, а также длину файла в структуре, называемой каталогом диска, для чего подает драйверу третью команду. Наконец, DOS обновляет содержимое FAT, отмечая в ней записанную порцию данных и одновременным связывая ее с начальным содержимым файла, для чего драйверу подается четвертая команда. В свою очередь, драйвер, получив команду от DOS, вызывает соответствующие программы ROM-BIOS (на рис. 4.2 этот “слой” не показан), порождая каждый раз с их помощью целый “каскад” низкоуровневых команд управления НГМД [37]. Организация управления устройством на этом уровне чрезвычайно затруднительна, поэтому DOS и, в частности, драйвер диска существенно облегчают эту задачу. Драйвер диска
Программа
НГМД
MS-DOS INT 21h 1 2 3 4 Записать данные в конец файла
1. 2. 3. 4.
Считать FAT. Записать данные в файл на диск. Обновить запись каталога диска. Обновить FAT.
Рис. 4.2 Упрощенная иллюстрация реализации запроса записи в файл Компания Microsoft, основной поставщик операционных систем для IBM PC, установила ряд стандартных правил (соглашений), используемых при разработке драйверов новых устройств и их включении в состав системы. Эти правила определяют как структуру нового драйвера, так и способ его подключения к уже существующим драйверам системы. В DOS каждый драйвер имеет следующие пять частей:
67 − заголовок драйвера, содержащий информацию о самом драйвере и указатель на следующий драйвер в цепочке; − область памяти для хранения локальных данных и процедур; − процедура стратегии, которая при первом вызове драйвера сохраняет адрес заголовка запроса в области локальных данных; − процедура прерывания, использующаяся DOS для вызова драйвера и обрабатывающая заголовок запроса, чтобы передать хранящуюся в нем информацию в программы обработки команд; − программы обработки (обработчики) команд устройства, осуществляющие фактическое управление устройством. Каждый драйвер содержит имя соответствующего ему устройства, по которому DOS находит нужный ей драйвер среди других установленных драйверов, образующих общий связанный список23. Первым в этом списке располагается драйвер фиктивного устройства NUL:, содержащий указатель на следующий драйвер в списке (устройство CON:), тот, в свою очередь, содержит указатель на следующий драйвер (устройство AUX:) и т.д. Указатель последнего драйвера содержит значение –1, означающее конец списка. Использование динамической структуры данных “связанный список” упрощает для DOS выполнение процедур поиска существующего и установки нового драйверов. Поиск нужного драйвера всегда начинается с начала списка, при этом проверяется соответствующее драйверу имя устройства. Переход к следующему элементу списка осуществляется по указателю, представляющему фактически адрес следующего элемента. Установка нового драйвера выполняется также легко − перенастройкой указателей в соответствующих элементах связанного списка. Столь же просто выполняется и замена существующего драйвера новым − более совершенным; для этого необходимо оборвать “связь” с прежним стандартным драйвером, перенаправив указатель на новый драйвер. Как отмечалось выше, стандартный драйвер устройства в DOS имеет в своем составе две процедуры: стратегии и прерывания. Они необходимы для реализации двухступенчатой схемы вызова драйвера устройства. Согласно этой схеме, DOS вызывает драйвер дважды. При этом сначала управление передается процедуре стратегии, а затем − процедуре прерывания. Процедура стратегии осуществляет так называемую инициализацию драйвера, подготавливая его к вызову процедуры прерывания. В частности, процедура стратегии сохраняет адрес заголовка запроса в области локальных данных. Процедура прерывания фактически начинает работу драйвера, извлекая информацию из сохраненного заголовка запроса и передавая управление соответствующему обработчику команд. 23
Связанный список − это динамическая структура данных, в которой каждый элемент содержит указатель на следующий элемент (т.е. фактически его адрес). Существуют также двусвязные списки, у которых каждый элемент имеет два указателя: на следующий и на предшествующий элементы списка, что позволяет свободно перемещаться по списку в обоих направлениях (в начало и конец списка).
68 Написание драйверов устройств ввода-вывода, наряду с разработкой операционных систем, компиляторов и интерпретаторов языков программирования, составляют предмет системного программирования − одной из интереснейших и сложнейших отраслей программирования вообще. К сожалению, рамки данного пособия не позволяют рассмотреть данные вопросы более подробно. Ниже кратко описана структура MS-DOS − исторически первой операционной системы для IBM PC, имевшей (до появления Windows) чрезвычайно широкое распространение. Достаточно отметить, что DOS доминировала на рынке операционных систем для IBM PC около 15 лет, начиная c 1981 года (версии от MS-DOS 1.0 до MS-DOS 6.22). Кроме того, как справедливо отмечается в [38], знание основ DOS способствует более глубокому пониманию принципов функционирования программного обеспечения последующих поколений.
4.1.3 Структура MS-DOS Одно из популярных определений операционной системы [38] представляет ее как “сложный комплекс программ, предназначенный для эффективного управления ресурсами компьютера”, где под ресурсами понимаются процессор, оперативная память, устройства ввода-вывода, программы, данные и т.д. Все ресурсы можно классифицировать как: неразделяемые (доступные в каждый момент времени только одной программе или пользователю) и разделяемые (доступные сразу нескольким программам или пользователям). Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач: − планирование ресурса, т.е. определение кому, когда, а для разделяемых (shareable) ресурсов − и в каком количестве необходимо выделить данный ресурс; − отслеживание состояния ресурса, т.е. обеспечение оперативной информации о том, занят или свободен ресурс, а для разделяемых ресурсов − какое количество ресурса уже распределено, а какое свободно. Основными составными частями DOS являются [39]: 1. Модуль расширения ROM-BIOS, представленный файлом IO.SYS (MSDOS) или IBMBIO.COM (PC-DOS)24. 2. Модуль обработки прерываний, называемый также базовым модулем DOS и представленный файлом MSDOS.SYS (MS-DOS) или IBMDOS.COM (PC-DOS). 24
На начальном этапе развития MS-DOS имела несколько “клонов”, т.е. операционных систем почти тождественных по структуре и функциям. Среди них наибольшую известность получили системы PC-DOS (первоначально распространялась фирмой IBM по договоренности с Microsoft) и DR-DOS (развивалась фирмой Digital Research). Следует отметить, что в основе всех трех систем лежит операционная система DOS, разработанная Тимом Патерсоном в 1980 году.
69 3. Командный процессор или интерпретатор командного языка, представленный файлом COMMAND.COM. 4. Внешние команды и внешние, или загружаемые, драйверы, представленные файлами с расширением имени .COM, .EXE и .SYS. Модуль расширения ROM-BIOS Этот модуль является надстройкой над ROM-BIOS, модифицируя и/или дополняя ее возможности [40]. При загрузке MS-DOS данный модуль позволяет как осуществлять логическую замену драйверов, хранящихся в ROM-BIOS, так и подключать новые драйверы. Необходимость в этих функциях обусловлена довольно частой потребностью в изменении аппаратной конфигурации персонального компьютера (например, при подключении нового периферийного устройства) или использовании имеющихся устройств нестандартным образом. Драйверы могут находиться как внутри модуля расширения ROM-BIOS (файл IO.SYS), так и вне его − в отдельных файлах. В первом случае драйверы называются внутренними (основными), а во втором − внешними (устанавливаемыми). Кроме внутренних драйверов в модуле расширения ROM-BIOS содержится ряд системных таблиц и блоков. Внутренние драйверы подключаются автоматически при загрузке MSDOS, а внешние − по указаниям в файле конфигурации системы CONFIG.SYS. Если файл CONFIG.SYS отсутствует, то никакие внешние драйверы к системе не подключаются, а MS-DOS использует так называемые параметры по умолчанию. Модуль обработки прерываний Этот модуль является центральным компонентом MS-DOS, обеспечивающим выполнение основных функций операционной системы, связанных с управлением ресурсами компьютера. Управление устройствами ввода-вывода реализовано в данном модуле на уровне организации запросов к драйверам (на рис. 4.2 модуль представлен блоком “MS-DOS”). Именно этот модуль содержит бóльшую часть того, что называется файловой системой MS-DOS (см. ниже). Обращение к функциям данного модуля возможно только через механизм прерываний, который использует большинство программ, выполняющихся под управлением MS-DOS. Обработку поступивших прерываний осуществляют специальные программы − обработчики прерываний верхнего уровня, которые, в свою очередь, могут генерировать прерывания нижнего уровня, т.е. обращения к функциям ROM-BIOS и модуля расширения ROM-BIOS. Командный процессор Этот модуль обеспечивает интерфейс, т.е. способ и программные средства взаимодействия пользователя с системой. Пользователь подает MS-DOS ко-
70 манды, вводя их условные обозначения (обычно сокращения английских глаголов, определяющих то или иное действие) с клавиатуры, а командный процессор их интерпретирует, т.е. выполняет. Помимо этого на заключительном этапе загрузки MS-DOS командный процессор выполняет файл автозапуска AUTOEXEC.BAT, в котором могут содержаться команды, выполнение которых требуется при каждом запуске системы. Командный процессор состоит из двух частей − резидентной и транзитной. После загрузки MS-DOS резидентная часть, содержащая обработчики трех важных прерываний (22h−24h) и код подзагрузки транзитной части, постоянно хранится в оперативной памяти компьютера. Обработчики обслуживают следующие особые ситуации [39]: − завершение задачи, т.е. окончание выполнения прикладной программы; − прерывание задачи по нажатию пользователем комбинации клавиш Ctrl+Break; − возникновение “фатальной” (неисправимой) ошибки при выполнении задачи. Следует отметить, что указанные три прерывания, в отличие от прочих прерываний верхнего уровня, обслуживаемых MS-DOS, могут обрабатываться в самой прикладной программе, которая в соответствующих векторах прерываний устанавливает адреса собственных обработчиков. Транзитная часть командного процессора, находясь в оперативной памяти, может перекрываться (т.е. разрушаться) выполняемыми программами, а затем восстанавливаться путем считывания с диска. Транзитная часть содержит программный код для исполнения так называемых внутренних команд MSDOS, а также загрузчик программ в оперативную память для выполнения. Перечень внутренних (встроенных) команд MS-DOS достаточно ограничен, так как в нем представлены только самые общие и часто выполняемые команды (COPY, TYPE, DELETE, RENAME, DIR, CHDIR, RMDIR и некоторые другие). В то же время, состав внешних (транзитных) команд не фиксирован, хотя с дистрибутивным (установочным) набором MS-DOS поставляется ограниченное число соответствующих файлов. Принятый в MS-DOS подход позволяет рассматривать любую программу, разработанную для выполнения в среде MSDOS, как внешнюю команду, расширяющую базовый перечень внешних команд для данной версии системы. Внешние команды и загружаемые драйверы Внешние команды представляются именами программных файлов, которые имеют расширение .COM или .EXE. В качестве примера можно указать следующие внешние команды: − FDISK − разбиение жестких (физических) дисков на логические диски; − FORMAT − форматирование магнитных дисков;
71 − SCANDISK − проверка состояния магнитных дисков; − XCOPY − расширенное копирование файлов и каталогов. Загружаемые драйверы содержатся в файлах, имеющих расширение .SYS или .EXE. Для подключения таких драйверов к MS-DOS используются специальные команды DEVICE и DEVICEHIGH в файле конфигурации CONFIG.SYS. В качестве примера можно указать следующие загружаемые драйверы: − ANSI.SYS − управление экраном монитора и переопределение символов, вводимых с клавиатуры, с помощью так называемых Esc-команд; − DISPLAY.SYS − управление переключением кодовых страниц для монитора; − EMM386.EXE − эмуляция отображаемой (expanded) и управление верхней (high) памятью; − HIMEN.SYS − управление использованием расширенной (exended) памяти.
4.2 Файловая система Одной из главных задач, решаемых операционной системой, является организация хранения информации на внешних запоминающих устройствах (ВЗУ) и обеспечение эффективного доступа к ней со стороны пользователей. Обычно информация хранится на ВЗУ в виде файлов, поэтому совокупность всех файлов, программ и системных структур, реализующих способы хранения и механизмы доступа к файлам, называется файловой системой. Основные функции, выполняемые файловой системой, можно условно разделить на следующие две группы: − функции для работы с файлами (создание, удаление, изменение атрибутов, определение структуры файлов и т.д.); − функции для работы с данными, хранящимися в файлах (чтение, запись, поиск и т.д.). С точки зрения логической организации файловую систему можно разделить на следующие составные части: − файлы, хранящиеся на устройствах ввода-вывода; − структура файлов; − функции для работы с файлами и их структурой. Операционная система MS-DOS поддерживает диски различных типов. Это стало возможным благодаря тому, что информация, необходимая для работы с диском (например, его объем) сохраняется на самом диске в специальной области, определенной MS-DOS. Для управления файлами и распределением дискового пространства на каждом диске должна храниться дополнительная информация (например, объем использованного пространства и имена сохраняемых файлов). Эта информация “прозрачна”, т.е. невидима для обычного пользователя, но обязательно имеется на каждом диске.
72 Информация размещается на диске в определенной последовательности, поэтому все диски MS-DOS имеют сходную структуру. Это позволяет MS-DOS получать информацию о типе диска, способе выделения дискового пространства, т.е. о размере кластера диска (см. ниже), а также о хранящихся на диске файлах. Логическая организация дискеты и жесткого диска несколько различаются. Ниже рассматривается организация дискеты, которая во многом соответствует структуре раздела жесткого диска, а затем более подробно − организация жесткого диска в целом.
4.2.1 Логическая организация дискеты Дискета, подготовленная к работе с помощью команды FORMAT и называемая, соответственно, отформатированной, включает четыре области. Первая область называется блоком начальной загрузки (БНЗ), который иногда называют записью загрузки (Boot Record). Вторая область включает таблицу размещения файлов (FAT), описывающую использование дискового пространства. Как правило, FAT хранится на дискете в двух экземплярах (копиях). Далее следует область корневого каталога (Root Directory), в которой хранится информация о файлах и подкаталогах, перечисленных в корневом каталоге (эта информация включает имя файла и его расширение, атрибуты файла, номер начального кластера файла, дату и время создания или последнего обновления файла, размер файла с точностью до байта). Последней является область данных, в которой хранятся записанные на дискету файлы. Взаимное расположение перечисленных выше областей дискеты показано на рис. 4.3. Область данных пользователя
Блок начальной загрузки
Корневой каталог
Первая и вторая копии FAT
Рис. 4.3 Взаимное расположение четырех областей на дискете, отформатированной стандартным образом
73
4.2.2 Понятие кластера Информация записывается на диск и считывается с диска секторами. Работа с диском на основе секторов в ряде случаев может оказаться неэффективной. Например, жесткий диск объемом 10 Мбайт содержит более 20000 секторов, и хранение информации о размещении каждого из них потребует очень большой таблицы размещения файлов (FAT). Поиск внутри такой таблицы будет относительно медленным. Поиск в FAT меньшего размера осуществляется быстрее, вследствие чего сокращается общее время обращения к файлу. Поэтому более эффективным является объединение нескольких смежных секторов в группу, называемую кластером (cluster), и выделение целого кластера, если потребуется дополнительное дисковое пространство для файла. Использование кластеров позволяет сэкономить дисковое пространство, выделяемое для FAT. Таким образом, кластеры обеспечивают более высокий уровень организации диска и ускоряют доступ к информации, хранящейся на нем. Количество секторов в кластере зависит от типа (точнее − размера) диска (см. табл. 4.1) и устанавливается при форматировании диска с помощью команды FORMAT (данная команда реализуется утилитой FORMAT.COM). Таблица 4.1 Зависимость размера кластера от емкости диска Тип диска Дискета 5,25” (1,2 Мбайта) Дискета 3,5” (1,44 Мбайта) Жесткий диск (32 Мбайта) Жесткий диск (64 Мбайта) Жесткий диск (128 Mбайт) Жесткий диск (256 Mбайт) Жесткий диск (512 Mбайт) Жесткий диск (1024 Mбайта)
Количество секторов в кластере 1 1 1 2 4 8 16 32
4.2.3 Блок начальной загрузки (БНЗ) БНЗ всегда хранится в 1-м секторе 0-й дорожки на 0-й поверхности дискеты. Его логически можно разделить на четыре части. Первая часть (3 байта) БНЗ содержит код команды JMP, обеспечивающей безусловный переход к программе начальной загрузки. Вторая часть (8 байтов) БНЗ содержит идентификатор фирмыизготовителя DOS и версию системы (например, MSDOS5.0 − MS-DOS версии 5.0 фирмы Microsoft, IBM 3.1− PC-DOS версии 3.1 фирмы IBM и т.д.). Третья часть (19 или 25 байтов) БНЗ представлена блоком параметров BIOS (BIOS Parameter Block − BPB), который является таблицей специальных параметров диска, используемой DOS при определении емкости диска, а также
74 относительного расположения таких системных областей, как FAT и корневой каталог диска. Четвертая часть (482 байта или 476 байтов) БНЗ содержит короткую программу начальной загрузки системных файлов MS-DOS (IO.SYS и MSDOS.SYS) в оперативную память компьютера. БНЗ всегда записывается на дискету при её форматировании − независимо от того, является дискета системной (загрузочной) или нет. Системная дискета предназначена для начальной загрузки операционной системы на компьютере и создается, как правило, с помощью команды FORMAT, указанной с ключом /S, приводящим к переносу на дискету следующих системных файлов: IO.SYS, MSDOS.SYS и COMMAND.COM.
4.2.4. Таблица размещения файлов (FAT) FAT − это область диска, в которой хранится информация об использовании дискового пространства. В FAT содержатся сведения о всех кластерах диска: свободных (пригодных для хранения файлов), занятых (используемых некоторым дисковым файлом) или помеченных как дефектные (неспособных надежно хранить записанную в них информацию вследствие локальных дефектов магнитной поверхности диска). Для хранения информации о каждом кластере диска в FAT используется элемент, или запись. Для всех дискет и жестких дисков, емкость которых не превышает 10 Mбайт, элемент FAT имеет длину 12 бит (на саму FAT в этом случае ссылаются как на FAT-12). Для дисков с объемом, превышающим 10 Mбайт, элемент FAT имеет длину 16 бит (FAT-16). Каждому кластеру диска соответствует элемент в FAT. При этом следует иметь в виду, что в FAT записывается информация только о файловом пространстве диска; в ней не представлены кластеры, отведенные под БНЗ, обе копии FAT и корневой каталог. Доступное пространство в области данных диска начинается с кластера, которому присваивается номер 2. Причина этого кроется в том, что элементы FAT с номерами 0 и 1 резервируются для хранения дескриптора носителя − кода, характеризующего тип диска. При создании файла DOS выделяет ему первый доступный кластер диска. При этом в FAT делается пометка об использовании этого кластера. Наоборот, при уничтожении файла кластеры, в которых размещались данные, должны быть отмечены в FAT как свободные. По мере увеличения длины файла DOS выделяет дисковое пространство кластерами и помечает это в FAT. Список кластеров, образующих дисковое пространство, относящееся к файлу, называется цепочкой кластеров. Значения, которые могут быть занесены в элементы FAT, приведены в табл. 4.2.
75 Таблица 4.2 FAT-12 000h 001h … FEFh FF0h … FF6h FF7h FF8h … FFFh
Возможные значения элементов FAT FAT-16 Описание кластера 0000h Кластер свободен 0001h … FFEFh Кластер используется FFF0h … FFF6h Кластер зарезервирован FFF7h Дефектный кластер FFF8h … FFFFh Конец цепочки кластеров
Если файл достаточно большой, т.е. занимает более одного кластера на диске, DOS заносит номер первого (начального) кластера файла в соответствующее поле записи каталога, номер второго кластера − в элемент FAT, соответствующий первому кластеру файла, номер третьего кластера − в элемент FAT, соответствующий второму кластеру, и т.д. В элемент FAT, соответствующий последнему кластеру файла, заносится код, указывающий на конец цепочки кластеров, относящихся к файлу. Рис. 4.4 иллюстрирует формирование цепочки из трех кластеров (с номерами 4, 5 и 6) для небольшого файла Myfile.txt, содержащегося в корневом каталоге диска. Начальное “звено” цепочки, т.е. номер начального кластера файла, указано в 2-байтовом поле 32-байтовой записи каталога. Остальные “звенья” можно получить, если воспользоваться каждым номером, записанным в соответствующем элементе FAT, как указателем на следующий элемент FAT (и на кластер файла соответственно). Последнее “звено” в цепочке кластеров, относящихся к файлу, помечается в FAT кодом FFFh. Приведенные выше рассуждения позволяют сделать вывод о большой важности информации, содержащейся в FAT. Действительно, если эта информация будет утрачена или хотя бы частично искажена, то доступ ко всем файлам или к части файлов на диске станет невозможным, хотя содержимое самих файлов будет в “полном порядке”. Это обусловлено тем, что для файлов, записанных в каталогах диска, не удастся сформировать соответствующие цепочки кластеров из-за несоответствия указателей, содержащихся в искаженных элементах FAT. В силу важности хранимой в FAT информации, DOS использует две копии этой таблицы. Первая копия FAT используется в работе DOS, а вторая служит для страховки на случай порчи первой копии. Однако, следует отметить, что в самой DOS отсутствуют средства для проверки идентичности копий FAT и восстановления искаженной первой копии по имеющейся на диске второй копии. Эта операция может быть выполнена с помощью любого из имеющихся инструментальных пакетов программ обслуживания (утилит) диска (например, Norton Utilities).
76 Кластер №6
Кластер №7
Кластер №4
Кластер №5
Кластер №3
Блок начальной загрузки
Myfile txt
...
005 006 FFF
0
1
2
3
4
5
6
Кластер №2
Корневой каталог
Первая и вторая копии FAT
Запись каталога
004
. . .
7
8
...
FAT
N-3
N-2
N-1
Рис. 4.4 Цепочка кластеров, относящихся к файлу Myfile.txt
4.2.5 Корневой каталог Область корневого каталога диска располагается непосредственно за областью второй копии FAT. Корневой каталог содержит имена дисковых файлов и имена подкаталогов, записанных в нем, и, возможно, имя метки тома. Количество секторов, занимаемых корневым каталогом, определяется количеством входящих в каталог записей. Каждая запись каталога включает 32 байта и, таким образом, 512-байтовый сектор может содержать 16 записей. Количество занимаемых корневым каталогом секторов равно числу записей каталога, деленному на 16. Таким образом, количество записей в корневом каталоге (и соответственно количество файлов, которое можно поместить в корневой каталог) зависит от типа диска, как показано в табл. 4.3. Таблица 4.3 Зависимость количества записей корневого каталога от типа диска Кол-во записей Кол-во секторов Тип диска 64 4 Дискеты SS/DD 112 7 Дискеты DS/DD 224 14 Дискеты DS/HD 512 32 Жесткие диски
77 В табл. 4.4 кратко описана структура записи каталога, т.е. перечислены все ее поля и указаны их размеры. Более подробное описание каждого поля записи каталога приведено ниже. Таблица 4.4 Структура записи каталога Смещение от начала Размер (в байтах) Описание 0 8 Имя файла 8 3 Расширение имени файла 11 1 Атрибуты файла 12 10 Зарезервировано 22 2 Время создания файла 24 2 Дата создания файла 26 2 Номер первого кластера 28 4 Длина файла (в байтах) Имя файла. В этом поле содержится имя файла, длина которого не превышает 8 байт (символов), выровненное по левому краю. Это означает, что если длина имени оказывается меньше 8 байт, то оставшиеся справа незанятые байты заполняются символами пробела. При удалении файла содержимое первого байта имени файла заменяется значением E5h. Таким способом DOS помечает запись каталога, которую можно использовать заново. Первый байт поля имени файла в ранее неиспользовавшейся записи каталога содержит значение 00h. Расширение имени (тип) файла. В этом поле содержится расширение имени файла (если оно, конечно, было указано для файла). Длина расширения имени не должна превышать 3 символов, а само расширение выравнивается слева, т.е. незанятые справа байты заполняются символами пробела. Атрибуты файла. В данном однобайтовом поле представлены биты, обозначающие различные атрибуты (характеристики, свойства) файла: обычный файл, предназначенный для чтения-записи, или файл только для чтения, скрытый файл, системный файл и т.д. Возможные значения для байта атрибутов файла приведены в табл. 4.5. Таблица 4.5 Атрибуты файла Значение Описание 00h Обычный файл (для чтения-записи) 01h Файл только для чтения 02h Скрытый файл 04h Системный файл 08h Метка тома 10h Подкаталог 20h Необходимо архивирование
78 Установка атрибута “файл только для чтения” защищает файл от внесения изменений в файл при вызове стандартных функций DOS, выполняющих запись в файл. Установка атрибута “скрытый файл” означает, что данная запись каталога не будет отображена в листинге каталога, полученном с помощью команды DIR. С помощью атрибута “системный файл” помечаются два системных файла MS-DOS (IO.SYS и MSDOS.SYS), расположенных на системном диске. Эти два файла загружаются в память компьютера в ходе начальной загрузки MS-DOS. Атрибут “метка тома” указывает, что данная запись каталога в полях “Имя файла” и “Расширение имени файла” содержит метку тома. Установка атрибута “подкаталог” означает, что данная запись описывает не обычный дисковый файл, а файл подкаталога. Атрибут “необходимо архивирование” используется утилитой резервного копирования файлов BACKUP.COM, как индикатор того, что с данного файла необходимо снять резервную копию. После создания резервной копии файла этот бит сбрасывается (очищается). Время создания или последнего обновления файла. В это поле заносится значение времени в специальном (системном) формате на момент создания файла. Это относится также к таким элементам корневого каталога, как подкаталоги и метка тома. При обновлении файла в данное поле заносится время его модификации. Следует отметить, что к записям, представляющим подкаталоги, это не относится, т.е. изменение содержимого подкаталога никак не отражается на значении поля “Время создания файла”. Значение времени представляется в специальном формате (чччччммммммссссс, где ч, м и с − обозначение битов, представляющих часы, минуты и секунды соответственно) и может рассматриваться как целое без знака, хранящееся в слове (2 байта). Это представление позволяет легко сравнивать его с аналогичными значениями, записанными в других записях каталогов. Значение времени, хранящееся в слове, рассчитывается по следующей формуле: Время = (Часы × 2048) + (Минуты × 32) + (Секунды + 2), где Часы − 0 ÷ 23; Минуты − 0 ÷ 59; Секунды − 0 ÷ 29 (для хранения всех секунд не хватает 1 бита, поэтому отсчет секунд производится “единицами”, равными 2 секундам). Таким образом, время 11:32:10 будет представлено значением 5C05h (или 2355710). Дата создания или последнего обновления файла. В это поле заносится значение даты (число, месяц и год) в специальном (системном) формате на момент создания файла. Это относится так же к таким элементам корневого каталога, как подкаталоги и метка тома. При обновлении файла в данное поле заносится дата его модификации. Следует отметить, что к записям, представляющим подкаталоги, это не относится, т.е. изменение содержимого подкаталога никак не отражается на значении поля даты. Значение даты представляется в специальном формате (гггггггммммччччч, где г, м и ч − обозначение битов, представляющих год, месяц и число соответственно) и может рассматриваться как целое без знака, хранящееся в слове (2
79 байта). Это представление позволяет легко сравнивать его с аналогичными значениями, записанными в других записях каталогов. Значение даты, хранящееся в слове, рассчитывается по следующей формуле: Дата = ((Год - 1980) × 512) + (Месяц × 32) + Число, где Год − 0 ÷ 127; Месяц − 0 ÷ 15; Число − 0 ÷ 31. Подобная схема хранения даты позволяет использовать для “года” значения вплоть до 2107. Однако максимальное значение года, поддерживаемое MSDOS, равняется 2099. Номер начального кластера. В этом поле содержится номер начального (первого) кластера, выделенного для файла. Этот номер играет также роль указателя на начало области, предоставленной файлу в FAT. Размер файла. В этом поле содержится значение размера файла в байтах. В двойном (длинном) слове можно хранить 32-разрядное значение, которое намного превышает максимально допустимый размер файла в DOS (32 Мбайта).
4.2.6 Логическая организация жесткого диска В MS-DOS, начиная с версии 2.0, появилась возможность использовать жесткие (винчестерские) диски. При этом MS-DOS позволяет разбить жесткий диск на несколько (от 1 до 4) логических дисков, называемых также разделами (partitions) жесткого диска. Затем каждый раздел можно отформатировать так, чтобы использовать MS-DOS или другую операционную систему (например, Windows, Unix или Novell NetWare). Разбиение жесткого диска на разделы обеспечивает также удобство управления диском большого объема несколькими пользователями (для каждого пользователя может быть предоставлен собственный раздел). Для подготовки жесткого диска к работе в MS-DOS имеется специальная программа FDISK (сокращение от Fixed Disk − фиксированный, т.е. несъёмный, или винчестерский диск), обеспечивающая выполнение следующих четырех функций: создание раздела, активизацию раздела, уничтожение раздела и просмотр информации о разделах диска. Более подробную информацию о работе с программой FDISK можно получить в [41]. Разделы начинаются на границе цилиндра. При определении раздела его начало и конец определяются номерами цилиндров. Таким образом, раздел начинается на 0-й поверхности в 1-ом секторе начального цилиндра раздела. Так как на всех поверхностях диска дорожки нумеруются одинаково, в состав раздела будет входить набор дорожек, соответствующих всем поверхностям. Например, если диск содержит 4 рабочих поверхности (с 0-й по 3-ю) и раздел начинается с цилиндра 200 и заканчивается цилиндром 300, то этот раздел будет содержать все четыре набора дорожек с номерами от 200 до 300, соответствующие четырем поверхностям диска.
80 Первый сектор жесткого диска, называемый главной записью загрузки (Master Boot Record − MBR), содержит информацию о разделах диска и программу, определяющую активный раздел диска и выполняющую загрузку БНЗ в память компьютера. Сами разделы располагаются за ним, как показано на рис. 4.5 (для простоты изображена только 0-я поверхность диска).
Раздел 3 Раздел 2 Раздел 1 Главная запись загрузки
Блок начальной загрузки
Рис. 4.5 Взаимное расположение разделов на жестком диске Таблица разделов включает четыре 16-байтовых записи, каждая из которых содержит информацию об отдельном разделе. Структура записи таблицы разделов жесткого диска представлена в табл. 4.6. Ниже каждое поле этой записи описано более подробно. Таблица 4.6 Структура записи таблицы разделов жесткого диска Смещение Размер (в Описание поля от начала байтах) 0 1 Индикатор активного раздела 1 1 Номер начальной головки (поверхности) 2 1 Номер начального сектора 3 1 Номер начального цилиндра 4 1 Индикатор операционной системы 5 1 Номер конечной головки (поверхности) 6 1 Номер конечного сектора 7 1 Номер конечного цилиндра 8 4 Относительный сектор (от начала диска) 12 4 Размер раздела (в секторах) Индикатор активного раздела. Это поле показывает, активен ли данный раздел или нет. Если в поле находится значение 80h, то определяемый данной записью раздел активен, т.е. он содержит (или будет содержать) операционную систему, загружаемую в память при включении компьютера. В любой момент времени только один раздел может быть активным и, таким образом, если для данного раздела FDISK заносит в это поле значение 80h, то в соответствующие поля для остальных разделов заносится значение 00h.
81 Номера начальных головки (поверхности), сектора и цилиндра. Значения для данных полей записи таблицы разделов определяются автоматически утилитой FDISK, исходя из размера диска и заданного пользователем размера раздела. Индикатор операционной системы. В этом поле содержится значение, показывающее, какой операционной системе принадлежит раздел: 00h − неиспользуемый раздел, 01h − DOS или OS/2 с FAT-12, 02h − CP/M, 03h − XENIX (ОС Unix для IBM PC-совместимого компьютера), 04h − DOS или OS/2 с FAT-16, 05h − расширенный раздел DOS или OS/2, 06h − “большой” раздел DOS 4.00 или OS/2 1.10 (свыше 32 Mбайт), 07h − раздел файловой системы HPFS (High Perfomance File System − файловая система высокой производительности) OS/2 и т.д. Номера конечных головки (поверхности), сектора и цилиндра. Значения для данных полей записи таблицы разделов определяются автоматически утилитой FDISK, исходя из размера диска и заданного пользователем размера раздела. Относительный сектор. В данном поле (двойное слово) содержится количество секторов от начала диска до начала раздела. Для любого раздела значение этого поля определяется суммой общего дискового пространства всех предыдущих разделов плюс 1 (для учета сектора с MBR). Эта величина также называется числом скрытых секторов для данного раздела. Размер раздела. В данном поле (двойное слово) содержится значение, которое определяет размер раздела (в секторах) и включает размеры блока начальной загрузки, двух копий FAT, корневого каталога и области данных пользователя. В MS-DOS версии 3.3 были преодолены ранее принятые ограничения на размер раздела (предел в 32 Мбайта, определенный в BPB) и использование только одного раздела под DOS. Это стало возможным благодаря тому, что утилита FDISK позволила создавать в расширенном разделе несколько логических дисков, используемых под DOS. Как показано на рис. 4.6, первый элемент таблицы разделов, размещенной в MBR, ссылается на основной, или первичный (primary) раздел диска (С:). Второй элемент таблицы разделов, который ранее использовался для создания “постороннего” раздела (для операционной системы, отличной от DOS), теперь используется для определения расширенного (extended), или вторичного, раздела DOS. В байте индикатора операционной системы этого элемента содержится значение 05h. Этот второй элемент содержит указатель на первый логический диск (том) расширенного раздела (D:), в первом секторе которого находится так называемая расширенная запись загрузки (Extended Boot Record), аналогичная главной записи загрузки (MBR). Однако, в отличие от последней, в расширенной записи таблицы разделов отсутствует перечень разделов диска, а лишь определяется начало и конец логического диска (1-й элемент) и содержится указатель на следующий логический диск (2-й элемент) расширенного раздела. Для
82 следующего логического диска (E:), если он создан, описанная выше “картина” повторяется и т.д. Описанный выше способ создания логического диска позволяет легко освободить (удалить) какой-либо логический диск. Для этого достаточно в соответствующем элементе таблицы разделов предыдущего логического диска обнулить “указатель” на него. С точки зрения пользователя, каждый логический диск (или том) представляет собой независимый диск со своими системными областями, создаваемыми в ходе высокоуровневого форматирования логического диска, выполняемого с помощью утилиты FORMAT, и своим собственным “деревом” каталогов, создаваемым в ходе работы с диском. Таким образом, каждый логический диск обеспечивает еще один (дополнительный) уровень организации информации, хранящейся на винчестерском диске IBM PC-совместимого компьютера. Более подробно логическая организация хранения информации в MS-DOS рассмотрена ниже.
E: D: C: Таблица разделов диска
Таблица логических дисков
Таблица логических дисков
Рис. 4.6 Расположение разделов на жестком диске
4.3 Организация хранения информации в MS-DOS Ниже приведены три основные понятия файловой системы − файл, каталог и диск, которые позволяют понять логический способ организации хранения информации в компьютере, реализованный в MS-DOS25. Кроме того, рассмотрены сопутствующие им понятия, терминология и некоторые примеры.
25
Идентичные или, по крайней мере, аналогичные понятия используются и в других операционных системах.
83
4.3.1 Файлы С точки зрения конечного пользователя (end user), файл − это основная единица хранения информации в компьютере. Реализуются файлы как участки памяти на внешних носителях информации − гибких и жестких магнитных дисках, магнитных лентах, CD-ROM и других. Введение и использование такого понятия как файл, позволяет MS-DOS отделить одну совокупность информации от прочих, которые могут одновременно храниться на одном и том же носителе информации. Например, если для ввода текста письма используется специальная программа, называемая редактором текстов, то по окончании работы это письмо будет сохранено на диске в отдельном файле. И этот файл будет всего лишь одним среди сотен или даже тысяч файлов, хранящихся на диске компьютера. Каждый файл имеет имя и доступ к информации, хранящейся в файле, с помощью той или иной программы (например, уже упоминавшегося редактора текстов) осуществляется по этому имени. Именно поэтому часто файл определяют как поименованный набор информации, хранящийся на диске или другом машинном носителе [42]. Операционная система MS-DOS предъявляет определенные требования к именам файлам, а именно: − имя не должно содержать более восьми символов. В дополнение к имени файла может быть указано расширение имени, содержащее не более трех символов и отделяемое от имени точкой; − регистр, на котором был выполнен набор имени, значения не имеет. Другими словами, независимо от того, какие буквы − прописные (заглавные) или строчные (малые) − использовались при вводе, имя будет рассматриваться как состоящее только из прописных букв; − допускается использование в имени букв латинского алфавита от A до Z, арабских цифр от 0 до 9, специальных символов: символ подчеркивания (_), “крышка” или циркумфлекс (^), знак доллара ($), тильда (~), восклицательный знак (!), знак номера (#), знак процента (%), амперсенд (&), дефис (-), фигурные скобки ({}), эт коммерческое (@), одиночная кавычка или апостроф (‘) и круглые скобки (). Никакие другие символы (в том числе и буквы русского алфавита) не допускаются; − имя не должно содержать пробелов, запятых, символов “обратный слэш”, или “обратная дробная черта” (\), точек (за исключением точки, отделяющей имя от его расширения). При выборе имени файла рекомендуется помнить о смысловой нагрузке, которое должно нести это имя. В этой связи следует заметить, что первое из перечисленных выше требований, касающееся максимальной длины имени файла, является существенным ограничением MS-DOS. Действительно, не всегда удается придумать такое удачное имя для файла, чтобы оно одновременно объясняло суть информации, содержащейся в файле, и было кратким. По этой причи-
84 не введение в операционной системе Windows 95 длинных имен файлов (до 255 символов включительно) и возможность использования в них национальных алфавитов (в частности, русского) рассматривается как серьезное достижение. В качестве примеров возможных имен файлов можно привести следующие: README.DOC README.TXT READ.ME
N!.PAS
Очень часто подобные имена даются текстовым файлам, сопровождающим те или иные программы и содержащим инструкции по использованию этих программ. Буквально эти имена переводятся как “прочти меня” и сразу привлекают внимание пользователя. Это имя можно использовать для файла, содержащего исходную программу на языке Паскаль для вычисления факториала числа.
Файл с таким именем автоматически создается компилятором языка Паскаль при компилировании файла исходной программы N!.PAS. Источники возникновения файлов, находящихся на дисках компьютера, различны. Некоторые файлы поступают вместе с MS-DOS (так, например, большая часть самой MS-DOS представлена в виде файлов), другие поставляются вместе с пакетами прикладных программ (приложениями), третьи создаются пользователями, которые используют те или иные приложения, и т.д. Наличие большого количества файлов в компьютере создает определенные сложности при поиске того или иного файла. В этой связи, а также в силу некоторых других причин, о которых будет сказано ниже, логически правомерным является введение такого понятия как каталог. N!.EXE
4.3.2 Каталоги Каждый файл, хранящийся на диске, регистрируется в том или ином каталоге, который выступает в качестве оглавления (перечня) файлов. Регистрация файла в каталоге обычно называется записью в каталог. Запись групп файлов в различные каталоги значительно облегчает поиск файлов. Например, все файлы, которые поставляются с MS-DOS, хранятся в одном каталоге, обычно называемом DOS. Таким образом, если потребуется найти какой-либо из файлов MS-DOS, не нужно “переворачивать вверх дном” весь диск, достаточно просмотреть каталог DOS. Подобно файлам, каталоги могут создаваться пользователем или приложением (например, программой установки данного приложения на диск). Примечание. Фразы типа “записать файл X в каталог Y” или “файл X содержится в каталоге Y” иногда приводят к ошибочному представлению, что ка-
85 талог − это некоторая обособленная область на диске, в которую как раз и помещаются файлы. Следует помнить, что каталоги − это всего лишь перечни файлов и что все каталоги, за исключением корневого, сами организованы в виде файлов. Каждый файл может находиться только в одном каталоге. Если какие-то файлы, содержатся в различных каталогах, но имеют одинаковые имена, то либо это разные копии одного и того же файла, т.е. они представлены различными областями на диске, либо это вообще разные по содержанию файлы. Все каталоги, за исключением корневого, имеют имена. Расширение для имени каталога обычно не используется. Правила по наименованию каталогов аналогичны тем, что используются для имен файлов. Поскольку в различных каталогах могут находиться файлы с одинаковыми именами, для идентификации конкретного файла требуется указывать и имя каталога, в котором записан этот файл. Это не очень удобно, если учесть, что каталоги в MS-DOS имеют иерархическую структуру, т.е. могут быть вложены друг в друга. В этой связи, весьма кстати оказывается понятие текущего каталога, подразумевающее каталог, с которым пользователь работает в настоящий момент и для которого не нужно указывать имя всякий раз, когда выполняются операции с содержащимися в нем файлами. Имя текущего каталога обычно (но не всегда) отображается в командной подсказке MS-DOS (например, командная подсказка C:\DOS> означает, что текущим каталогом является каталог DOS). Как отмечалось выше, одни каталоги могут содержаться в других каталогах. Другими словами, поскольку любой каталог, за исключением корневого, является файлом, то он, с одной стороны, может содержать информацию о других каталогах-файлах и, с другой стороны, информация об этом каталоге-файле может быть записана в другом каталоге. Каталог, который содержится внутри другого каталога, называется подкаталогом. Каталог, в котором находится некоторый подкаталог, является родительским каталогом по отношению к данному подкаталогу. Создание подкаталогов позволяет лучше структурировать хранение информации в компьютере. Если быть точным, то все каталоги являются подкаталогами, за исключением одного, называемого корневым каталогом (см. п.4.2.5). Обычно термин ”подкаталог” используют, чтобы показать отношения между двумя каталогами. Корневой каталог является отправной точкой, из которой переходят во все остальные каталоги. Корневой каталог не имеет имени, он представляется символом “обратный слэш” (\). Например, если текущим каталогом является корневой каталог, то стандартная командная подсказка MS-DOS имеет следующий вид: C:\> Поскольку корневой каталог является базой для создания всех других каталогов, его нельзя удалить. Однако информация, хранящаяся в нем, может быть уничтожена. Количество файлов и каталогов, которые могут храниться в корневом каталоге, ограничено и зависит от емкости носителя. Это одна из основных причин, по которой в MS-DOS была введена и используется иерархиче-
86 ская структура каталогов, позволяющая если не “снять” совсем, то уменьшить влияние этого ограничения.
4.3.3 Диски Диски обычно ассоциируются с частью аппаратуры компьютера, которая называется накопителями информации на магнитных дисках (НМД), или просто магнитными дисками. Наиболее часто встречающимися типами НМД являются накопители на жестких магнитных дисках (НЖМД), называемые также винчестерскими дисками, и накопители на гибких магнитных дисках (НГМД). В MS-DOS различают физические и логические диски. Логические диски, а именно с ними “общается” обычный пользователь в MS-DOS, имеют однобуквенные имена, заканчивающиеся двоеточием (например, A: − первый НГМД, B: − второй НГМД (если он есть в компьютере), C: − НЖМД или часть его носителя, называемая логическим диском, и т.д.). Физические диски нумеруются (их номера обычно использует программист, реализующий в своей программе информационный обмен с диском на уровне физических секторов). Один физический жесткий диск большого объема может быть разбит на несколько логических дисков меньшего размера. При этом у пользователя создается “ощущение”, что он работает со множеством независимых дисков. По аналогии с текущим каталогом вводится понятие текущего диска, т.е. диска, с которым в данный момент работает пользователь, и в операциях, с которым не нужно указывать его имя. Имя текущего диска так же, как и имя текущего каталога, содержится в стандартной командной подсказке MS-DOS. Например, следующая командная подсказка: C:\> указывает, что текущим каталогом является корневой каталог (\), находящийся на диске C:. Текущий диск имеется в системе всегда. Первоначально им является диск, с которого загружена операционная система MS-DOS. С каждым логическим диском ассоциируется свой текущий каталог. Первоначально текущими каталогами дисков являются их корневые каталоги. Однако в дальнейшем их можно изменить. Каждый диск содержит корневой каталог и, возможно, другие подкаталоги. Корневой каталог всегда присутствует на диске. Он создается в процессе форматирования диска, выполняемого командой FORMAT. Размер корневого каталога, т.е. максимальное количество подкаталогов и файлов, которые могут быть записаны в нем, автоматически определяется во время форматирования и не может быть изменено (см. выше табл. 4.3). Каталоги, содержащиеся в корневом каталоге, могут иметь практически любой уровень вложенности и любой
87 размер. Таким образом, на каждом диске может быть создана иерархическая (или древовидная) структура каталогов, пример которой показан на рис. 4.7.
4.3.4 Маршруты При использовании сложной, иерархической структуры каталогов на диске для указания файла уже недостаточно задать только имя файла, так как одноименные (но различные по содержанию) файлы могут присутствовать в разных каталогах. Для задания точного местоположения файла в этой структуре необходимо, помимо его имени, указать также маршрут (путь) к нему, т.е. ведущую к файлу последовательность имен обязательно существующих каталогов, разделенных символом “обратный слэш” (\). Иногда в маршрут включают имя диска, на котором находится искомый файл. MS-DOS распознает маршруты длиной до 67 символов, включая однобуквенное имя диска, двоеточие после него и символы “обратный слэш”, разделяющие имена каталогов в маршруте. Логический диск
Корневой каталог
Файл A
Каталог
Подкаталог
Файл G
Файл D
Файл B
Каталог
Файл E
Файл C
Файл F
Файл H
Рис. 4.7 Пример иерархической структуры каталогов в MS-DOS
88 Различают абсолютные (или полные) и относительные (или неполные) маршруты. Абсолютный маршрут − это маршрут, начинающийся с корневого каталога некоторого диска. Например, в команде вывода на экран содержимого текстового файла C:\DOS> TYPE D:\MYDIR\PROBA\TEXT\BOOK1.TXT указан абсолютный маршрут к файлу BOOK1.TXT (отправной точкой пути к файлу здесь является корневой каталог на диске D:). Относительный маршрут − это маршрут, начинающийся не с корневого, а с текущего каталога на указанном или на текущем диске, который является отправной точкой в поиске каталога, содержащего указанный файл. Например, в команде вывода на экран содержимого текстового файла D:\MYDIR> TYPE PROBA\TEXT\BOOK1.TXT указан относительный маршрут к файлу BOOK1.TXT (отправной точкой пути к файлу здесь является текущий каталог MYDIR).
4.3.5 Спецификация файла Для определения местоположения существующего файла или места для размещения нового файла в иерархической структуре каталогов требуется указать следующие сведения: − имя диска, содержащий указанный файл; − маршрут доступа к указанному файлу; − составное имя файла, т.е. имя файла плюс расширение имени файла. Данные сведения, сведенные воедино, часто рассматриваются как спецификация файла [40]. Поскольку, как было указано выше, маршруты бывают полными или неполными, то, соответственно, и спецификация файла может быть как полной, так и неполной. Спецификация файла имеет следующий синтаксис: [имя_диска:][маршрут\]составное_имя_файла где в квадратные скобки заключены необязательные элементы спецификации файла. Таким образом, как следует из синтаксиса, обязательным элементом спецификации файла является составное имя файла, т.е. собственно имя файла (например, BOOK1) и его расширение (например, TXT), отделенное от имени символом “точка” (.). Отсутствующие элементы спецификации файла MS-DOS восстанавливает по следующим правилам:
89 1) если диск не указан, то используется текущий диск; 2) если маршрут не задан, то считается, что файл находится в текущем каталоге указанного или текущего диска (см. правило 1). Примеры полной и неполной спецификаций для файла BOOK1.TXT приведены выше (см. п. 4.3.4).
4.3.6 Шаблоны имен файлов, используемые в MS-DOS Довольно часто требуется выполнить некоторую операцию (например, копирование или удаление) для группы файлов, имена которых имеют некоторое сходство (например, одинаковые начальные буквы в имени или одно и то же расширение). В этом случае целесообразно использовать так называемые шаблоны имен файлов, позволяющие адресоваться ко всем файлам, чьи имена соответствуют заданным шаблонам. Для построения шаблонов в MS-DOS используются два так называемых символа-заменителя (называемые также символами обобщения, или обобщающими символами): символ “звездочка” (*) и символ “вопросительный знак” (?). Примечание. Игравшие когда-либо в игру “Эрудит” вспомнят, что в ней также имеются несколько фишек, помеченных звездочками, и что такие фишки могут использоваться при составлении слов в качестве любых букв алфавита, т.е. по сути являются универсальными буквами или символами-заменителями. Символ “звездочка” представляет нуль или более символов, являющихся общими в именах группы файлов. Символ “вопросительный знак” представляет одиночный символ, являющийся общим в именах группы файлов. Символы-заменители могут использоваться как в именах файлов, так и в их расширениях. Ниже приведены некоторые примеры использования символов-заменителей при задании шаблонов имен файлов. Шаблон имени *.TXT REPORT.*
T*.*
???.*
Что представляет?
Примеры
Все файлы с любым именем и расширением .TXT Все файлы с именем REPORT и любым расширением (в том числе и пустым) Все файлы, имена которых начинаются с буквы “T” и которые имеют любое расширение (в том числе и пустое) Все файлы, имеющие трехбуквенные имена и любое расширение (в том числе и пустое)
PROBA.TXT MYTEXT.TXT REPORT.TXT REPORT.WRI REPORT. TIPTOP.TXT TITLE.DOC TURBO.EXE TP. SUN.BMP WIN.COM WIN.INI XYZ.
90
4.3.7 Спецификация каталога По аналогии со спецификацией файла вводится спецификация каталога [40]. Спецификация каталога − это символьная строка, имеющая следующий синтаксис: [диск:][маршрут] По крайней мере один из указанных элементов спецификации должен присутствовать. Спецификация каталога однозначно определяет каталог, указанный последним в маршруте (или текущий каталог указанного диска, если маршрут не задан). Спецификация каталога может быть полной, если в ней указаны все допустимые элементы, и неполной − в противном случае. По аналогии с шаблоном имени файла вводится шаблон имени каталога, который содержит указанные выше символы-заменители.
4.4 Краткое руководство по важнейшим командам MS-DOS Ниже приведено описание общего синтаксиса команд MS-DOS, а также рассмотрены некоторые команды, обеспечивающие управление файлами, каталогами и дисками, и примеры их использования [43].
4.4.1 Общий синтаксис команд MS-DOS Общий синтаксис команд MS-DOS (за исключением команд конфигурирования системы, т.е. команд, используемых в файле CONFIG.SYS): имя_команды [переключатель] ... [параметр] ... [переключатель] ... где имя_команды определяет команду, которую требуется выполнить (примеры имен команд: COPY, TYPE, FORMAT, CHKDSK и другие); параметры задают объекты, над которыми требуется выполнить определяемые командой действия (в частности, ими могут быть спецификации файлов и каталогов). Команды могут не иметь параметров вообще (например, команда VER для вывода на экран текущей версии MS-DOS), иметь один или несколько параметров (например, команды TYPE и COPY соответственно). Если в команде содержатся несколько параметров, то они должны разделяться, по меньшей мере, одним пробелом (иногда допускаются другие символы-разделители). Как правило, параметры в командах являются позиционно-зависимыми, поэтому порядок их следования в команде должен соответствовать порядку, указанному в синтаксисе команды; переключатели уточняют или модифицируют действие команды. Каждый переключатель начинается с символа “слэш”, или “дробная черта” (/) и поэтому
91 не обязательно должен отделяться от предшествующих элементов команды пробелом (это, правда, не всегда срабатывает). Одни переключатели указываются после имени команды, но перед ее первым параметром, другие − после параметров. Однако в ряде случаев этот порядок следования переключателей значения не имеет. Пример команды с одним параметром и двумя переключателями FORMAT A: /T:80 /N:9
4.4.2 Получение краткой справки по командам MS-DOS В MS-DOS имеются следующие два способа для получения в интерактивном режиме краткой справки об использовании той или иной команды. 1-й способ. Ввести имя требуемой команды с переключателем /? в ответ на командную подсказку MS-DOS; например: C:\DOS>COPY /? В результате выполнения этой команды на экране будет отображена следующая справочная информация: Копирование одного или нескольких файлов в другое место. COPY [/A | /B] источник [/A | /B] [+ источник [/A | /B] [+ ...]] [результат [/A | /B]] [/V] [/Y | /-Y] источник Имя копируемого файла (файлов). /A Файл является текстовым файлом ASCII. /B Файл является двоичным. результат Каталог для размещения и/или имя создаваемого файла. /V Проверка правильности копирования путем сравнения файлов. /Y Отключение режима запроса подтверждения на замену файлов. /-Y Включение режима запроса подтверждения на замену файлов. Ключ /Y может быть установлен с помощью переменной среды COPYCMD. Ключ /-Y, заданный непосредственно в командной строке, имеет над ним приоритет. Чтобы объединить несколько файлов в один, необходимо указать единственный конечный файл и несколько исходных (путем использования подстановочных знаков или формата файл1+файл2+файл3).
Это результат работы указанной команды в локализованной (русифицированной) версии MS-DOS. Естественно, что в оригинальной версии MS-DOS этот текст будет представлен на английском языке. 2-й способ. Этот способ ориентирован на работу с интерактивным справочником по командам MS-DOS. Интерактивный справочник реализуется двумя файлами: HELP.COM − программа обслуживания интерактивного справочника, HELP.HLP − файл со справочной информацией по командам MS-DOS.
92 После ввода команды HELP в ответ на командную подсказку MS-DOS на экране будет отображена таблица, содержащая перечень команд MS-DOS, как показано на рис. 4.8.
Рис. 4.8 Экран интерактивного справочника по командам MS-DOS Используя клавиши позиционирования курсора (←, →, ↑, ↓), а также клавиши PgUp, PgDn и Tab, можно выбрать в таблице команду, информацию о которой требуется получить. После нажатия клавиши Enter на экране будет отображена первая страница c информацией по выбранной команде, как показано на рис. 4.9. Для перехода к следующей странице (если она существует) необходимо нажать комбинацию клавиш Alt+N, для возврата к предыдущей странице − Alt+B. Интерактивный справочник позволяет узнать не только о функциональном назначении любой команды MS-DOS и ее синтаксисе, но и познакомиться с примерами использования команды, а также получить “твердую” копию этой информации, т.е. осуществить ее вывод на подключенный к компьютеру принтер.
Рис. 4.9 Страница со справочной информацией по команде COPY
93
4.4.3 Управление файлами В MS-DOS версии 6.22 имеются несколько команд для работы с файлами, среди которых наиболее важными являются следующие: COPY Копирование файла из одного места файловой системы в другое (например, с одного диска на другой); MOVE Перемещение файла из одного места файловой системы в другое (например, из одного каталога некоторого диска в другой каталог этого же диска); REN переименование указанного файла; DEL удаление указанного файла; TYPE вывод на экран монитора содержимого указанного текстового файла. С целью приобретения начальных практических навыков работы на IBM PC-совместимом компьютере в среде MS-DOS рекомендуется получить справочную информацию о перечисленных командах одним из описанных выше способов. Кроме того, методические указания по использованию данных команд (за исключением MOVE) содержатся в [44]. Копирование файлов Команда COPY выполняет копирование одного или более файлов в указанное место файловой системы. Кроме того, эта же команда позволяет выполнить объединение нескольких файлов в один файл и обеспечивает простейший способ создания текстового файла. Общий синтаксис команды COPY дважды был приведен выше (см., текст, полученный в ответ на команду copy /?, или текст на рис. 4.9). Поэтому здесь целесообразно рассмотреть некоторые примеры использования команды COPY, а также нетипичные случаи применения этой команды. Примеры использования команды COPY 1. Чтобы скопировать текстовый файл LETTER1.DOC в файл LETTER2.DOC и записать в конец копируемого файла символ “конец файла” (десятичный код 26), необходимо подать следующую команду: COPY LETTER1.DOC LETTER2.DOC /A 2. Чтобы скопировать файл NOTE.TXT из текущего каталога на текущем диске в подкаталог MYNOTES и предотвратить вывод подсказки для ввода подтверждения замены результирующего файла (если он уже существует в подкаталоге MYNOTES), необходимо подать следующую команду:
94 COPY NOTE.TXT MYNOTES /Y 3. Чтобы скопировать файл ROBIN.TYP из текущего каталога на текущем диске в каталог BIRDS, находящийся на диске C:, необходимо подать следующую команду: COPY ROBIN.TYP C:\BIRDS Если каталог BIRDS не существует, то файл ROBIN.TYP будет скопирован в файл с именем BIRDS в корневой каталог на диске С:. 4. Чтобы скопировать несколько файлов в один файл, необходимо перечислить имена копируемых файлов (источников), разделив их с помощью знака “плюс” (+), а затем через пробел указать имя результирующего файла, как показано ниже COPY JAN97.RPT + FEB97.RPT + MAR97.RPT REPORT Данная команда объединяет файлы с именами JAN97.RPT, FEB97.RPT и MAR97.RPT, находящиеся в текущем каталоге на текущем диске, в файл REPORT, также находящийся в текущем каталоге на текущем диске. При этом результирующий файл создается с текущей датой и временем (каждый из источников имеет свою дату и время создания). Если в команде опускается результирующий файл, то MS-DOS объединяет файлы и записывает результат в файл с именем первого указанного файла. Например, если файл REPORT уже существует, то можно использовать следующую команду для объединения всех четырех файлов в файл REPORT: COPY REPORT + APR97.RPT + MAY97.RPT + JUN97.RPT 5. Объединение нескольких файлов в один файл можно выполнить, используя символы-заменители, как показано ниже COPY *.TXT COMBIN.DOC Данная команда объединяет все файлы, имеющие расширение .TXT и хранящиеся в текущем каталоге на текущем диске, в один файл COMBIN.DOC, также хранящийся в текущем каталоге на текущем диске. 6. Если требуется объединить несколько двоичных файлов, имена которых заданы с помощью шаблона, в один файл, необходимо указать переключатель /B, как показано ниже COPY /B *.EXE COMBIN.EXE
95 Этот переключатель предотвращает рассмотрение CTRL+Z (десятичный код 26) операционной системой MS-DOS в качестве признака “конец файла”. 7. Следующая команда COPY объединяет каждый файл, имеющий расширение .TXT, с соответствующим файлом, имеющим расширение REF. В результате создается файл с тем же самым именем файла, но расширением .DOC: COPY *.TXT + *.REF *.DOC Таким образом, если в текущем каталоге на текущем диске находятся файлы FILE1.TXT, FILE2.TXT, FILE1.REF, FILE2.REF и т.д., то команда COPY объединяет файлы FILE1.TXT и FILE1.REF для формирования файла FILE1.DOC. Затем она объединяет файлы FILE2.TXT и FILE2.REF для формирования файла FILE2.DOC и т.д. 8. Следующая команда COPY объединяет вначале все файлы с расширением .TXT, затем все файлы с расширением .REF и помещает результат в один файл с именем COMBIN.DOC: COPY *.TXT + *.REF COMBIN.DOC 9. Следующая команда COPY копирует символы, введенные с клавиатуры, в файл OUTPUT.TXT: COPY CON OUTPUT.TXT После ввода данной команды и нажатия клавиши Enter, MS-DOS начнет копировать всё, что вводится с клавиатуры, в файл OUTPUT.TXT. По окончании ввода текста необходимо поместить в файл символ “конец файла”, нажав клавишу F6 или комбинацию клавиш Ctrl+Z (сначала нажимается и удерживается клавиша Ctrl, затем нажимается клавиша Z). При этом на экране отобразится пара следующая символов: ^Z. В заключение необходимо нажать клавишу Enter. 10. Следующая команда COPY выполняет копирование информации, вводимой с клавиатуры на принтер, подключенный к параллельному порту LPT1: COPY CON LPT1 Более подробная информация об использовании команды COPY CON приведена ниже. Создание файлов с помощью команды COPY Простейший способ создания файла описан выше в примере 9. Здесь же приведем несколько замечаний относительно использования команды COPY CON для создания файла.
96 Стандартное имя CON − это сокращение от слова console, т.е. консоль или консольное устройство, которое на заре становления ВТ обозначало телетайп, подключенный к компьютеру (так, например, у первых отечественных микроЭВМ “Электроника-60” в качестве консольного устройства некоторое время использовалась электрическая пишущая машинка “Consul-260”). В дальнейшем это устройство ввода-вывода было заменено более совершенным − дисплеем на электронно-лучевой трубке (ЭЛТ), но термин остался и употребляется до сих пор. При использовании команды COPY CON для создания файла возможности редактирования текста, вводимого (копируемого) в файл существенно ограничены. Неверные символы во введенной строке − до нажатия клавиши Enter − могут быть стерты с помощью клавиши ←Backspace (“Забой”) или клавиши ← (стрелка влево); при этом будет стерт весь текст от конца данной строки до ошибочного символа включительно, поэтому остаток текста в строке придется ввести заново. После нажатия клавиши Enter изменить или стереть строку нельзя. Если ошибка обнаружена в одной из ранее введенных строк, то, нажав комбинацию клавиш Ctrl+C, можно отказаться от создания файла. После этого можно начать все сначала, введя команду “COPY CON имя_файла” или нажать клавишу F3 (чтобы эта команда появилась в командной строке). К счастью компьютер, как правило, оснащается различными программами для ввода и редактирования текста − так называемыми редакторами текста [45], поэтому прибегать к помощи команды COPY CON приходится редко. Если создается файл, в котором повторяются одни и те же строки, то для воспроизведения последней введенной строки целиком или отдельных ее частей можно воспользоваться функциональной клавишей F3. Нажатие клавиши F3 после перехода на новую строку приводит к повторению в файле предыдущей строки. Нажатие клавиши F6 дает тот же результат, что и нажатие комбинации клавиш Ctrl и Z (обозначается как Ctrl+Z), т.е. вставляет в файл символ-признак “конец файла”. С помощью команды COPY CON можно выполнить добавление строк в уже существующий файл. Пусть, например, имеется некоторый текстовый файл PROBA.TXT, в начало и конец которого необходимо добавить по несколько строк. В данном случае просто использовать команду COPY CON PROBA.TXT нельзя, поскольку она создаст новый файл с этим же именем, а содержимое старого исчезнет безвозвратно. Для добавления строк в конец файла необходимо подать следующую команду: COPY PROBA.TXT+CON PROBA.TXT После появления на экране слова CON можно начинать ввод с новой строки, расположенной под ним. Как и прежде, после ввода последней строки
97 необходимо нажать комбинацию клавиш Ctrl+Z (или клавишу F6), а затем клавишу Enter. Для добавления строк в начало существующего файла нельзя просто переставить параметры в приведенной команде, т.е. нельзя вводить команду copy con+proba.txt proba.txt. Ввод этой команды привел бы к появлению на экране следующего сообщения: Заменить proba.txt [Y(да)/N(нет)/А(все)]? Выбор первого и третьего вариантов ответа приводит к уничтожению уже существующего файла и к созданию нового. Выбор второго варианта ответа означает отказ от копирования. Чтобы выйти из этой затруднительной ситуации, необходимо объединить новые строки и существующий файл в новый файл, т.е. ввести следующую команду: COPY CON+PROBA.TXT PROBA1.TXT После появления на экране слова CON можно вводить новые строки. По окончании ввода необходимо нажать комбинацию клавиш Ctrl+Z (клавишу F6), а затем клавишу Enter. При этом введенные строки будут вставлены в начало нового файла PROBA1.TXT. Затем строки из исходного файла PROBA.TXT будут скопированы в файл PROBA1.TXT. Чтобы новый файл назывался постарому, можно выполнить следующие команды: COPY PROBA1.TXT PROBA.TXT DEL PROBA1.TXT Первая команда копирует файл PROBA1.TXT в файл PROBA.TXT, а вторая команда удаляет файл PROBA1.TXT. Перемещение файлов Команда MOVE (впервые появилась в MS-DOS версии 6.0) предназначена для перемещения одного или более файлов в указанное место файловой системы. Кроме того, команда MOVE может использоваться для переименования файлов и каталогов. Команда MOVE для перемещения одного или более файлов имеет следующий синтаксис: MOVE [/Y | /-Y] спец_файла1 [, спец_файла2] ... спец_каталога Команда MOVE для перемещения единственного файла и/или его переименования имеет следующий синтаксис: MOVE [/Y | /-Y] спец_файла1 спец_файла2
98 Команда MOVE для переименования каталога имеет следующий синтаксис: MOVE [/Y | /-Y] спец_каталога1 спец_каталога2 Параметры: спец_файла1, спец_файла2, ... − спецификации файлов, определяющие местоположение и указывают имена пересылаемых файлов; спец_каталога − спецификация каталога, в который пересылаются файлы. Переключатели: /Y − отказ от вывода запросов подтверждения при создании каталогов и замене файлов; /-Y − выдача запросов на подтверждение при создании каталогов и замене файлов. Примеры использования команды MOVE 1. Пусть на диске С: имеется каталог LETTERS. Для пересылки файлов MARY.TXT и PATRICIA.TXT из текущего каталога в каталог LETTERS можно ввести следующую команду: MOVE MARY.TXT, PATRICIA.TXT C:\LETTERS 2. Для пересылки файла MARY.TXT из текущего каталога в каталог LETTERS на диске C: и переименования его в ANNE.TXT можно ввести следующую команду: MOVE MARY.TXT C:\LETTERS\ANNE.TXT 3. Для переименования каталога THISYEAR, находящегося на диске C:, в LASTYEAR, необходимо ввести следующую команду: MOVE C:\THISYEAR C:\LASTYEAR Переименование файла Команда REN (полностью RENAME) предназначена для изменения имени указанного файла. Она имеет следующий синтаксис: REN [диск:][маршрут]имя_файла1 имя_файла_2 Параметры:
99 [диск:][маршрут]имя_файла1 определяют местонахождение и имя файла или группы файлов, которые необходимо переименовать; имя_файла_2 определяет новое имя для файла или, если указаны символы-заменители, новые имена для файлов. Недопустимо указание для данного файла нового диска или маршрута. Примеры использования команды REN 1. Пусть для всех файлов, находящихся в текущем каталоге и имеющих расширение имени .TXT, требуется изменить расширение на .DOC. Для подобного переименования можно воспользоваться следующей командой: REN *.TXT *.DOC 2. Для переименования файла CHAPTER1, находящегося на диске B:, в файл PART1 можно воспользоваться следующей командой: REN B:CHAPTER1 PART1 Файл с новым именем PART1 остается на диске B:. Удаление файлов Команда DEL (полностью DELETE), синонимом которой является команда ERASE, предназначена для удаления указанного файла. Кроме того, использование этой же команды с шаблоном имени файла позволяет сразу удалять группу файлов. Команда DEL (ERASE) имеет следующий синтаксис: DEL спецификация_файла [/P] ERASE спецификация_файла [/P] Параметр: спецификация_файла определяет местоположение и указывает имя удаляемого файла или группы удаляемых файлов. Переключатель: /P обеспечивает вывод подсказки перед удалением указанного файла. Примеры использования команды DEL (ERASE) 1. Чтобы удалить файл CAT.TMP из каталога TEST на диске C:, можно ввести одну из следующих команд: DEL C:\TEST\CAT.TMP ERASE C:\TEST\CAT.TMP
100 2. Чтобы удалить все файлы в каталоге TEST на диске C:, можно использовать одну из следующих команд: DEL C:\TEST DEL C:\TEST\*.* Отображение текстового файла Команда TYPE предназначена для отображения на экране монитора содержимого текстового файла. Эта команда позволяет просмотреть текстовый файл без модификации его содержимого. Команда TYPE имеет следующий синтаксис: TYPE спецификация_файла Параметр: спецификация_файла определяет местоположение и указывает имя просматриваемого файла. Примеры использования команды TYPE 1. Чтобы вывести на экран содержимое текстового файла с именем HOLIDAY.MAR, необходимо ввести следующую команду: TYPE HOLIDAY.MAR 2. Если файл, отображаемый на экране, достаточно длинный, можно вместе с командой TYPE использовать команду MORE, которая выполняет постраничный вывод информации на экран: TYPE HOLIDAY.MAR | MORE Более подробно понятие канала (pipe) будет рассмотрено ниже.
4.4.4 Управление каталогами В MS-DOS версии 6.22 имеются несколько команд для работы с каталогами, среди которых наиболее важными являются следующие: MD (MKDIR) RD (RMDIR) CD (CHDIR) DIR
Создание нового каталога; Удаление указанного каталога; Смена текущего каталога; Вывод листинга каталога;
101 DELTREE
Удаление поддерева в иерархической структуре каталогов. Создание нового каталога
Для создания нового каталога предназначена команда MD (MKDIR), имеющая следующий синтаксис: MD спецификация_каталога MKDIR спецификация_каталога Параметр: спецификация_каталога указывает спецификацию нового каталога. Примеры использования команды MD (MKDIR) 1. Для того чтобы создать каталог TAXES в корневом каталоге на текущем диске, необходимо ввести одну из следующих команд: MD \TAXES MD \TAXES 2. Если предположить, что TAXES является текущим каталогом, то для создания в нем подкаталога PRORERTY необходимо ввести одну из следующих команд: MD PROPERTY MKDIR PROPERTY Удаление каталога Для удаления каталога предназначена команда RD (RMDIR), имеющая следующий синтаксис: RD спецификация_каталога RMDIR спецификация_каталога Параметр: спецификация_каталога указывает спецификацию удаляемого каталога.
102 Пример использования команды RD (RMDIR) Для того чтобы удалить каталог с именем \USER\SMITH, сначала нужно его очистить, т.е. удалить все подкаталоги и файлы, содержащиеся в нем. Убедиться, что удаляемый каталог пуст можно, подав следующую команду: DIR \USER\SMITH /A MS-DOS должна отобразить на экране только записи вида “.” и “..”. Затем из любого каталога, за исключением \USER\SMITH, необходимо ввести одну из следующих команд: RD \USER\SMITH RMDIR \USER\SMITH Смена текущего каталога Для смены текущего каталога предназначена команда CD (CHDIR), имеющая следующий формат: CD спецификация_каталога CD .. CHDIR спецификация_каталога CHDIR .. Параметры: спецификация_каталога указывает имя нового текущего каталога; .. задает необходимость перехода в родительский каталог. Если команда задана в виде “CD диск:”, то на экране отображается имя текущего каталога заданного диска. Если команда CD задана без параметров, то на экране отображаются имена текущих диска и каталога. Примеры использования команды CD (CHDIR) 1. Любая из приведенных ниже команд устанавливает каталог PROBA в качестве текущего каталога: CD \PROBA CHDIR \PROBA 2. Пусть имеется каталог \SPECIALS с подкаталогом SPONSORS. Чтобы сделать этот подкаталог текущим каталогом, необходимо ввести следующую команду:
103 CD \SPECIALS\SPONSORS 3. Если текущим каталогом является каталог \SPECIALS, то сделать текущим каталогом подкаталог SPONSORS можно с помощью следующей команды: CD SPONSORS 4. Чтобы сменить подкаталог обратно на родительский каталог, необходимо ввести следующую команду: CD .. 5. Чтобы отобразить на экране имя текущего каталога, необходимо использовать команду CD или CHDIR без параметров. Например, если текущим каталогом является каталог \PUBLIC\JONES на диске B:, то ввод команды CHDIR приведет к следующему ответу: B:\PUBLIC\JONES 6. Если требуется скопировать все файлы, находящиеся в каталогах \PUBLIC\JONES и \PUBLIC\LEWIS на диске C: в корневой каталог на диске D:, то можно ввести следующие команды: CHDIR COPY CHDIR COPY
C:\PUBLIC\JONES C:*.* D:\ C:\PUBLIC\LEWIS C:*.* D:\
7. Если требуется скопировать все файлы, находящиеся в каталогах \PUBLIC\JONES и \PUBLIC\LEWIS на диске C: в текущий каталог на диске D:, то можно ввести следующие команды: CHDIR COPY CHDIR COPY
C:\PUBLIC\JONES C:*.* D: C:\PUBLIC\LEWIS C:*.* D: Вывод листинга каталога
Для вывода листинга каталога, содержащего список файлов и подкаталогов из указанного каталога, предназначена команда DIR, имеющая следующий синтаксис:
104 DIR [спец_файла] [/P] [/W] [/A[[:]атрибуты]] [/O[[:]сортировка]] [/S] [/B] [/L] [/V] Параметр: спец_файла − спецификация одного или нескольких файлов (могут использоваться один или несколько шаблонов имен). Переключатели: /P − пауза после заполнения каждого экрана; /W − вывод списка в несколько столбцов; /A − вывод файлов с заданными атрибутами; атрибуты: A − необходима архивация (Archive); D − каталоги (Directory); H − скрытые файлы (Hidden); S − системные файлы (System); R − файлы только для чтения (Read-Only); Префикс “-” имеет значение НЕ; /O − сортировка списка отображаемых файлов; сортировка: N − по имени (алфавитная); S − по размеру (начиная с файлов меньшего размера); E − по расширению (алфавитная); D − по дате создания или последнего обновления (начиная с более ранних); G − начать список с каталогов; C − по коэффициенту сжатия (каталоги размещаются в конце спиcка в естественном порядке); Префикс “-” означает обратный порядок /S − вывод списка файлов из заданного каталога и его подкаталогов; /B − вывод только имен файлов; /L − использование нижнего регистра; /V − отображение расширенных сведений о файлах и каталогах. Примеры использования команды DIR 1. Чтобы вывести на экран список всех каталогов и файлов, включая скрытые и системные файлы, которые находятся в текущем каталоге, необходимо ввести следующую команду: DIR /A 2. Пусть требуется поочередно вывести листинги всех каталогов, находящихся в корневом каталоге, причем листинг каждого каталога должен быть отсортирован в алфавитном порядке и выведен в “широком” формате (в 5 столб-
105 цов) с паузой после вывода каждого “экрана” (страницы). Чтобы выполнить перечисленные выше требования, необходимо сделать корневой каталог текущим и подать следующую команду: DIR /S /W /O /P Сначала данная команда DIR выводит имя корневого каталога, имена подкаталогов и имена файлов (включая их расширения) в корневом каталоге. Затем она выводит имена подкаталогов и имена файлов в каждом подкаталоге дерева каталогов. 3. Чтобы команда DIR, приведенная в предыдущем примере, выполнила вывод имен файлов и их расширений, но опустила при этом имена каталогов, ее необходимо изменить следующим образом: DIR /S /W /O /P /A:-D 4. Чтобы вывести листинг каталога на принтер, а не на экран монитора, необходимо перенаправить вывод, как показано ниже DIR > PRN При указании стандартного имени PRN в строке команды DIR листинг каталога посылается на принтер, подключенный к порту LPT1. Если же принтер подключен к другому порту, то в команде DIR имя PRN нужно заменить на имя соответствующего порта. 5. Можно также перенаправить вывод команды DIR в файл, заменив в предыдущем примере имя PRN на имя файла. При этом в командной строке допускается использование маршрута к этому файлу. Так, например, для того чтобы направить вывод команды DIR в файл DIR.DOC в каталоге RECORDS, необходимо ввести следующую команду: DIR > \RECORDS\DIR.DOC Если в указанном каталоге RECORDS файл DIR.DOC не существует, MSDOS создаст его. Если указанный каталог отсутствует, то MS-DOS выдаст следующее сообщение: File creation error (Ошибка при создании файла) 6. Для вывода на экран списка всех имен файлов с расширением .TXT во всех каталогах диска C: необходимо ввести следующую команду:
106 DIR C:\*.TXT /W /O /S /P Данная команда DIR выводит на экран “широкоформатный”, отсортированный по алфавиту список имен файлов, соответствующих указанному шаблону, в каждом файле и делает паузу при каждом заполнении экрана, ожидая нажатия любой клавиши для продолжения. Удаление поддеревьев в иерархической структуре каталогов Команда DELTREE (впервые появилась в MS-DOS версии 6.0) предназначена для удаления одного или нескольких указанных каталогов и всех находящихся в них подкаталогов и файлов. Эта команда имеет следующий синтаксис: DELTREE [/Y] спец_каталога [спец_каталога [...]] Параметр: спец_каталога указывает имя удаляемого каталога (в качестве имени может быть задан шаблон имени каталога). Переключатель: /Y запрещает вывод подсказки, запрашивающей подтверждение для удаления подкаталога. Примечание. Команду DELTREE необходимо использовать с осторожностью, поскольку она уничтожает все поддеревья иерархической структуры каталогов, корнями которых являются каталоги, сопоставимые с указанным шаблоном имени каталога. Пример использования команды DELTREE Для того чтобы удалить каталог TEMP на диске C:, включая все файлы и подкаталоги этого каталога, необходимо ввести следующую команду: DELTREE C:\TEMP
4.4.5 Перенаправление ввода-вывода и организация канала Большинство команд MS-DOS осуществляет ввод-вывод информации на консоль, т.е. ввод данных происходит с клавиатуры, а вывод − на экран монитора. Для этих команд, а также всех программ, использующих стандартные устройства ввода-вывода (AUX, СOM1, СOM2, ..., CON, LPT1, LPT2, ..., PRN) MSDOS позволяет:
107 − выполнять вывод информации не на экран (или в другое стандартное устройство вывода), а в файл (перенаправление вывода); − выполнять чтение информации не с клавиатуры (или из другого стандартного устройства ввода), а из файла (перенаправление ввода); − передавать данные, выводимые одной командой или программой, в качестве входных данных для другой команды или программы (организация информационного канала). Ниже каждая из этих возможностей рассмотрена более подробно. Перенаправление вывода Для того чтобы адресовать выходные данные команды в файл, а не в стандартное устройство вывода, необходимо указать командную строку следующего вида: команда > имя_файла Например, для вывода содержимого текущего каталога не на экран, а в файл MYFILES, необходимо ввести следующую команду: DIR > MYFILES Если файл MYFILES не существует, то MS-DOS создает его и записывает в него так называемый листинг каталога, содержащий информацию о находящихся в каталоге файлах. Если же файл MYFILES уже существует, то MS-DOS выполняет его перезапись, т.е. удаляет прежнюю информацию и записывает новую. Если требуется присоединить листинг каталога к уже существующему файлу MYFILES, то необходимо ввести следующую команду: DIR >> MYFILES В результате листинг каталога добавляется в конец файла MYFILES. Перенаправление ввода Для того чтобы получить входные данные команды из файла, а не из стандартного устройства ввода, необходимо указать командную строку следующего вида: команда < имя_файла
108 Например, следующая команда выполняет чтение данных из файла MYFILES, их сортировку в алфавитном (лексикографическом) порядке и вывод отсортированных данных на экран: SORT < MYFILES Некоторые команды MS-DOS (FIND, MORE, SORT) называются командами-фильтрами; они получают входные данные от пользователя или из файла, преобразуют их некоторым образом и затем выводят результирующую информацию на экран или в файл. Например, следующая команда: SORT < MYFILES > MYLIST выполнит сортировку файла MYFILES и запишет отсортированные данные в файл MYLIST. Организация информационного канала Если выходные данные одной команды MS-DOS должны использоваться как входные данные для другой команды, то в командной строке можно указать обе эти команды, соединив их с помощью символа “вертикальная черта” (|), как показано ниже команда1 | команда2 Эта конструкция называется информационным каналом (pipe). Например, следующая команда: DIR | MORE осуществляет постраничный вывод листинга каталога на экран монитора. Количество команд, образующих информационный канал, может быть больше двух. Например, следующая команда: DIR | SORT | MORE осуществляет постраничный вывод отсортированного по алфавиту листинга каталога на экран монитора. Идея информационного канала между командами (программами) заимствована MS-DOS из известной операционной системы Unix (произносится как “Юникс”). Информационный канал в MS-DOS реализован как временный файл, который сначала создается в корневом каталоге текущего диска, а затем − после выполнения командной строки − удаляется из корневого каталога. В самой Unix
109 информационный канал реализуется с помощью внутреннего файла, который хранится не на диске, а в оперативной памяти, что делает обмен информацией между командами более быстрым.
4.5 Командные оболочки MS-DOS Операционная система MS-DOS обеспечивает пользовательский интерфейс в виде командной строки, когда для выполнения некоторого действия с файлом или каталогом пользователь должен вспомнить соответствующую команду и ввести ее вместе с необходимыми параметрами в ответ на подсказку (см. выше подраздел 4.4). Этот способ взаимодействия с системой (“вспоминай и набирай”) требует от пользователя определенного уровня профессиональной подготовки. Более удобной формой общения с системой является организация диалога (“смотри и выбирай”), когда информация, необходимая для выполнения тех или иных действий, представлена на экране. Именно такое общение пользователя с системой было предложено Джоном Соча (John Socha) в середине 1980-х годов в своей программе, известной ныне как Norton Commander26. Пользовательский интерфейс Norton Commander поражает своей гениальной простотой (рис. 4.10). Программа делит экран монитора на две равные части, называемые панелями. На каждой из панелей отображается содержимое выбранного каталога диска, по которому можно перемещаться с помощью клавиш управления курсором. Текущая строка панели выделяется с помощью полоски подсветки. Над панелями выводится строка с командами меню, указание любой из этих команд приводит к появлению ниспадающего меню с набором соответствующих команд. Под панелями находится строка, содержащая подсказки для “горячих” клавиш (F1−F10), которые предназначены для вызова часто используемых команд (копирования файла, перемещения/переименования файла, создания каталога, удаления файла и т.п.). Самая нижняя строка экрана предназначена для ввода команд MS-DOS “традиционным” способом. Таким образом, пользователь, установив Norton Commander на диск своего компьютера, может свести свое непосредственное общение с MS-DOS к минимуму. Популярность командной (операционной) оболочки Norton Commander среди пользователей IBM PC стремительно росла. Учитывая это обстоятельство, фирма Microsoft выпустила вместе с MS-DOS версии 4.0 собственную командную оболочку, назвав ее DOS Shell (оболочка DOS). Однако выгодный момент для выпуска подобной программы был упущен, DOS Shell так и не получила такого же широкого распространения как Norton Commander. Программа Norton Commander имеет несколько клонов для DOS, среди которых можно отметить две отечественные разработки: DOS Navigator (DN) и 26
Программа получила имя Питера Нортона − президента компании Peter Norton Computing, которая к настоящему времени влилась в состав компании Symantec. Сам автор программы, Джон Соча, несколько лет проработал у Нортона, а затем уволился (о причинах увольнения сведений нет).
110 Volkov Commander (VC). С появлением операционной системы Windows 95 казалось бы потребности в каких-либо дополнительных командных оболочках не возникнет, поскольку она обеспечивала удобные средства как для навигации по файловой системе, так и для выполнения общих операций с файлами и каталогами. Тем не менее, были отмечены определенные “ностальгические” моменты у значительной части пользователей IBM PC, которыми не замедлили воспользоваться разработчики программного обеспечения. Были разработаны 32разрядные программы, копирующие и расширяющие функциональные возможности Norton Commander для использования в Windows 95: Norton Commander for Windows 95 (Symantec Corp.), Windows Commander (Christian Ghisler), FAR Manager (отечественная разработка: Евг. Рошал, г. Новосибирск) и другие. В настоящее время все они нашли широкое распространение среди пользователей IBM PC.
Рис. 4.10 Пользовательский интерфейс Norton Commander
4.6 Современные операционные системы IBM PC-совместимых компьютеров MS-DOS, рассмотренная выше, в настоящее время утратила свою доминирующую роль, уступив место более совершенным операционным системам. Это обусловлено, во-первых, значительным прогрессом в области технических средств IBM PC-совместимых компьютеров (некоторые важные функции современных операционных систем требуют специальной аппаратной поддержки [46]); во-вторых, почти двадцатилетнее эволюционное развитие операционных систем семейства Windows в недрах корпорации Microsoft позволило создать программые продукты, удовлетворяющие требованиям большинства пользова-
111 телей в отношении производительности, надежности, безопасности и удобства их использования. Ниже рассмотрены вопросы классификации операционных систем, а также общие характеристики систем семейства Windows (Windows 95, 98, NT, 2000, ME, XP), каждая из которых представляет собой пример современной операционной системы для IBM PC-совместимых компьютеров. В качестве возможных альтернатив перечисленным операционным системам семейства Windows можно указать системы OS/2 фирмы IBM и Linux (достаточно популярная версия Unix для IBM PC)27.
4.6.1 Классификация операционных систем Классификацию операционных систем можно выполнить различным образом, основываясь на нескольких ключевых критериях [47]. По способу (режиму) взаимодействия с пользователем операционные системы делятся на три класса: − пакетные, когда пользователь подготавливает исходные данные для обработки программой в виде так называемого пакета. На ранних этапах развития ЭВМ в качестве такого пакета использовалась колода перфокарт (следует отметить, что название режима происходит от слова batch, которое можно перевести с англ. как “пачка”). Позднее пакет данных формировался на магнитной ленте или диске, но сам характер взаимодействия с пользователем от этого не менялся. Каждый пакет сопровождается специальными перфокартами, содержащими команды языка управления заданиями (например, JCL − Job Control Language). Затем пакет передается оператору ЭВМ, который помещает его в устройство для считывания и осуществляет контроль выполнения программы. Результаты обработки возвращаются пользователю в виде распечаток принтера (листинга). В настоящее время пакетные ОС в чистом виде практически не встречаются, однако многие операционные системы поддерживают этот режим взаимодействия с пользователем; − интерактивные, или диалоговые, когда работа пользователя с программой (в том числе − с операционной системой) выполняется в режиме непосредственного общения − путем подачи соответствующих команд с терминала ЭВМ. Подавляющее большинство современных ОС общего назначения обеспе27
Первоначальный вариант операционной системы Linux (читается как “Линукс”) разработан финским студентом Линусом Торвальдсом в 1991 году, который тогда же разместил исходный код ядра системы в Internet. С тех пор множество программистов, общаясь посредством Internet, совершенствуют систему под руководством ее первого автора (ныне проживающего в США). Успешному распространению Linux способствуют усилия Фонда свободно распространяемых программ (Free Software Foundation − FSF), который предоставляет инструментальные средства для разработки программного обеспечения, работающего в среде данной системы.
112 чивают подобный режим в качестве основного способа взаимодействия с пользователем. Интерактивные ОС можно разделить, в свою очередь, на системы с графическим интерфейсом (например, системы семейства Windows) и интерфейсом типа “командная строка” (например, MS-DOS без использования программ-оболочек); − реального времени, когда исходные данные для обработки обеспечиваются физическими сигналами, поступающими от различных датчиков, встроенных в технологическое оборудование, а время является критическим параметром. Это означает, что “отклик” на изменение состояния контролируемого объекта (например, ядерного реактора), обеспечиваемый подобными системами, должен быть очень оперативным. По числу пользователей, одновременно работающих с одним и тем же экземпляром ОС, различают: − однопользовательские (например, MS-DOS, Windows 95, Windows NT Workstation и другие); − многопользовательские (например, Window NT Server, Novell NetWare 4.1 и другие). По числу одновременно выполняемых задач (программ) операционные системы делятся на два класса: − однозадачные (например, MS-DOS, MSX и другие); − многозадачные (например, Windows, Unix, OS/2 и другие). В свою очередь, многозадачные ОС могут использовать различный режим (метод) реализации многозадачности: − вытесняющую многозадачность, когда все процессорное время разбивается на равные по величине промежутки, называемые квантами. Каждой задаче, т.е. выполняющейся программе, предоставляется возможность использовать центральный процессор (ЦП − главный ресурс компьютера) в течение выделенного кванта времени; по истечении этого кванта процессор предоставляется другой задаче (такой способ планирования и диспетчеризации ЦП принят в большинстве современных многозадачных ОС, например, в Windows 95, 98, 2000, Linux, OS/2); − невытесняющая многозадачность, когда решение о передаче ЦП другой задаче принимает выполняющаяся в данный момент программа; она же должна периодически проверять очередь запросов (требований) ЦП (однако длительность периода между проверками у разных задач может быть различной). Такая многозадачность, называемая иногда коллективной, реализована, например, в Windows 3.1, в настоящее время уже вышедшей из употребления. По возможности распараллеливания вычислений в рамках одной задачи различают ОС: − однопотоковые, когда задача (процесс) сопоставляется только с одним потоком (thread) последовательно выполняющихся команд, а планирование и диспетчеризация работы выполняется на уровне процессов;
113 − многопотоковые, когда в задаче могут быть организованы несколько параллельно выполняющихся потоков команд, причем каждый поток выступает в качестве самостоятельной единицы планирования и диспетчеризации работы. Потоки процесса выполняются параллельно, причем каждый из потоков обладает рядом свойств, присущих самому процессу. В частности, каждый поток имеет так называемый контекст, включающий содержимое счетчика команд и указателя стека, а также собственную область стека28. Наиболее существенным отличием потоков от процессов является то, что процессы, как правило, обладают своим отдельным адресным пространством, а у потоков адресное пространство общее, принадлежащее породившему их процессу. По количеству поддерживаемых процессоров различают ОС: − однопроцессорные, спроектированные в расчете на использование только одного ЦП (например, Windows 95); − многопроцессорные, спроектированные в расчете на одновременное использование нескольких ЦП в составе одного компьютера (например, Windows 2000 Server). По реализованным архитектурным решениям различают ОС на основе: − монолитного ядра, обеспечивающего большинство возможностей ОС, включая планирование процессов, работу файловой системы, сетевые функции, операции драйверов различных устройств и другие. Обычно монолитное ядро реализуется как единый процесс, все элементы которого используют одно и то же адресное пространство. Большинство современных ОС имеют архитектуру монолитного ядра; − микроядра, обеспечивающего только базовые возможности ОС, к которым относятся планирование и управление адресным пространством процессов, обеспечение межпроцессного взаимодействия. Выполнение сервисных функций ОС обеспечивают вспомогательные процессы, называемые серверами. Эти процессы запускаются в пользовательском режиме и микроядро работает с ними так же, как и с другими приложениями.
4.6.2 Основные понятия операционной системы Windows Хронология появления различных версий Windows и краткая характеристика их функциональных возможностей
28
Стек − специальным образом организованная область оперативной памяти, доступ к которой осуществляется в соответствии с дисциплиной LIFO (last in first out − последним вошел, первым вышел). Стек заполняется в направлении своей вершины, на которую адресуется указатель стека (SP − Stack Pointer). Поддержка стека может быть реализована либо на уровне машинной архитектуры − включением SP в состав регистров ЦП и вводом специальных команд (PUSH − поместить в стек, POP − выбрать из стека), либо на программном уровне.
114 В сентябре 1981 года фирма Microsoft начала разработку программы “Менеджер интерфейса” (Interface Manager), названной впоследствии Microsoft Windows. Исторически семейство операционных систем Windows включает в свой состав следующие операционные системы: • Windows 1.0 − первая версия системы, о работе над которой фирма Microsoft объявила весной 1983 года. Выпуск системы состоялся 20 ноября 1985 года. Использовалась на персональных компьютерах с процессором 8088/8086, основывалась на MS-DOS 2.0 и обеспечивала достаточно примитивный − с современной точки зрения − графический интерфейс в виде трех неперекрывающихся окон, одновременно присутствующих на экране монитора29. В состав стандартных приложений Windows 1.0 были включены программа управления файлами (MS-DOS Executive), календарь, картотека, записная книжка, калькулятор, часы, текстовый редактор, графический растровый редактор и программа телекоммуникационной связи. В системе реализована поддержка 256 цветов, изменения размеров окон и зарезервированной области минимизированных программ (первоначальное представление панели задач). Изза существенных аппаратных и программных ограничений работу системы нельзя было считать эффективной, хотя она и позволяла пользователям переключаться с одной программы на другую без их перезагрузки. • Windows 2.0 − вторая версия системы, выпущенная 2 апреля 1987 года (известна также как Windows 2.0/286, так как была ориентирована на процессор 80286). В том же году, но чуть позже, была реализована версия Windows 2.0/386, ориентированная на расширенный режим процессора 80386. Windows 2.0 включала в свой состав такой же набор стандартных приложений, что и Windows 1.0, однако содержала множество усовершенствований в управлении. В частности, система обеспечивала графический интерфейс пользователя (Graphical User Interface − GUI), позволяющий частично перекрывать окна, т.е. располагать их “каскадом”, перемещать окна в любое место экрана, использовать так называемые горячие клавиши (hot keys) − комбинации клавиш − для выполнения наиболее часто используемых операций Windows. Система позволяла выполнять обмен данными между выполняющимися приложениями с помощью программно реализованного механизма динамического обмена (Dynamic Data Exchange − DDE). Кроме того, ориентация системы на современный для того времени процессор 80286/386 позволила ей использовать расширенные возможности управления памятью. Именно Windows 2.0 стала рассматриваться многими программистами
29
Следует отметить, что слово windows переводится с англ. как “окна”, т.е. Microsoft представила в качестве названия своей операционной системы основную особенность ее пользовательского интерфейса – многооконность.
115 как вполне приемлемая операционная система для разработки своих первых Windows-программ. • Windows 3.0 − третья версия системы, выпущенная 22 мая 1990 года. Представляла значительный шаг вперед по сравнению с предшествующими версиями Windows, поскольку ориентировалась на процессор 80386 с 32-разрядной адресацией. Новые возможности управления в системе представлены диспетчером программ (Program Manager), диспетчером файлов (File Manager), диспетчером печати (Print Manager) и улучшенным набором цветных пиктограмм (иконок). Дополнительно в системе была полностью переписана среда для разработки приложений, использующих модульные виртуальные драйверы устройств (VxD), а также реализована собственная поддержка приложений, запущенных в расширенной памяти, и обеспечена вытесняющая (приоритетная) многозадачность для программ MS-DOS. Однако в Windows 3.0 явно недостаточно были представлены средства мультимедийной и сетевой поддержки и, кроме того, она содержала ряд ошибок, потребовавших срочного исправления, что и было сделано в ближайшей модификации данной версии системы. • Windows 3.1 − модификация третьей версии системы, выпущенная 6 апреля 1992 года. Наиболее популярная (до появления Windows 95) версия Windows, которую использовали миллионы зарегистрированных пользователей. В данной версии были введены широкие возможности для использования шрифтов True Type (“истинная печать”), что позволило решать задачи сложной обработки текстов, а также была представлена встроенная мультимедийная поддержка, включающая средства обработки аудио- и видео-файлов. Встроенная поддержка компьютерных сетей в Windows 3.1 отсутствовала, но она была реализована в сетевой версии системы − Windows for Workgroups 3.1 (Windows для рабочих групп 3.1), выпущенной 27 октября 1992 года. Сетевая поддержка была существенно улучшена в версии системы Windows for Workgroups 3.11, выпущенной 15 февраля 1993 года. Эта версия обеспечивает организацию так называемых одноранговых “рабочих групп” и сетевое информационное взаимодействие между членами одной группы. В то же время, данная версия системы не содержала встроенных средств доступа к глобальной сети Internet через модем, подключенный к телефонной линии, что вынуждало пользователей прибегать к помощи программ, разработанных сторонними фирмами. При этом подобные программы часто конфликтовали с собственными программами Windows. • Windows NT 3.1 − новая операционная система, выпущенная в конце июля 1993 года. Пользовательский интерфейс системы подобен интерфейсу Windows 3.1 (этот факт нашел отражение в номере версии). Буквы “NT” в названии означают New Technology − новая технология. Win-
116 dows NT 3.1 стала первой операционной системой фирмы Microsoft, которая поддерживает корпоративные приложения, разработанные в соответствии с технологией “клиент-сервер”. При этом использовались две различные редакции операционной системы: на рабочих станциях (клиентах) − Windows NT 3.1, на сервере − Windows NT Advanced Server 3.1. Начало работ по созданию Windows NT приходится на осень 1988 года. Именно в это время руководство фирмы Microsoft пригласило на работу Дэвида Катлера (David Cutler) и предложило ему возглавить новый проект. До этого Катлер, будучи главным консультантом по разработке программного обеспечения фирмы DEC, на протяжении 17 лет участвовал в создании таких известных операционных систем, как RSX-11M (для 16-разрядных мини-компьютеров семейства PDP-11) и VAX/VMS (для 32-разрядных супермини-компьютеров семейства VAX-11), а также компиляторов языков программирования VAX-11 PL/I и VAX-11 C. Windows NT, в отличие от Windows 3.1, является полностью 32разрядной операционной системой, способной поддерживать 16разрядные приложения как MS-DOS и Windows 3.1, так и OS/2. В Windows NT представлен Win32 API − интерфейс прикладного программирования, открывший для вновь создаваемых приложений расширенные возможности операционной системы (в частности, средства для организации многопотоковых процессов и синхронизации их выполнения). Новая операционная система обеспечивала более надежную защиту выполняющихся программ и поддержку симметричных многопроцессорных компьютерных архитектур, имела развитые встроенные сетевые средства и эффективную файловую систему NTFS. Архитектура Windows NT основывается на концепции микроядра, позволившей реализовать приоритетную (вытесняющую) многозадачность, подобно тому, как это сделано в Unix. Разработка этой системы стала одной из важнейших вех на историческом пути развития операционных систем фирмы Microsoft. • Windows NT 3.5 − новая версия системы, выпущенная 6 сентября 1994 года. Эта версия системы так же, как и первоначальная, была представлена двумя различными редакциями, названными Windows NT 3.5 Workstation и Windows NT 3.5 Server соответственно. Содержала множество улучшений (например, поддерживала длинные имена файлов и графический стандарт OpenGL) и, кроме того, имела общую производительность на 50 % выше, чем у Windows NT 3.1. Данная версия системы позволила фирме Microsoft улучшить свои позиции на рынке программного обеспечения для серверных приложений, потеснив известную фирму Novell, поставляющую в то время сетевую операционную систему Novell NetWare 3.12.
117 • Windows NT 3.51 − модификация (update) системы, выпущенная в июне 1995 года. Основная причина ее появления заключается в необходимости поддержки приложений, разработанных для операционной системы Windows 95. • Windows 95 − новая операционная система, выпущенная 24 августа 1995 года. Кардинально отличается от предшествующих версий Windows 3.1 и Windows for Workgroups 3.1. В этой системе реализована концепция виртуальной машины, т.е. вычислительной среды, обеспечиваемой операционной системой для выполнения приложений пользователя. При этом могут использоваться два типа виртуальных машин: системная виртуальная машина, работающая постоянно и выполняющая приложения Windows, и виртуальная машина DOS, создаваемая для выполнения запущенных программ MS-DOS. Под управлением Windows 95 может создаваться только одна системная виртуальная машина, а виртуальных машин DOS может быть множество − по числу запущенных программ [48]. Помимо архитектурных отличий, в Windows 95 был представлен новый GUI, а также реализован стандарт “Plug and Play” (“Вставляй и играй”) для конфигурирования внешних устройств компьютера. Усовершенствований и новых возможностей в данной системе было множество, она пришлась “по вкусу” большинству пользователей персональных компьютеров и легко побила рекорд по числу продаж в течение первых трех месяцев после выпуска, ранее принадлежавший Windows 3.0. Всего в 1995 году было продано около 50 млн. копий Windows 95, а через год это количество уже составляло более 132 млн. легальных копий системы. Вслед за оригинальной версией Windows 95 на протяжении года были выпущены два так называемых “релиза” системы − Windows 95 Service Release 1 (95a) и Windows 95 OSR2 (OEM Service Release 2, 95b). В частности, второй релиз интегрировал в своем составе Microsoft Internet Explorer и обеспечивал работу с новой файловой системой FAT-32. • Windows NT 4.0 − новая версия Windows NT, выпущенная 24 августа 1996 года, т.е. спустя год после выхода Windows 95, и имеющая аналогичный интерфейс пользователя. По-прежнему, главный вектор развития и усовершенствования системы направлен на обеспечение надежного и эффективного сетевого взаимодействия; в частности, в данной версии системы обеспечен инструментарий для создания и управления корпоративными сетями intranet, а также представлен интегрированный Web-сервер (Internet Information Server − IIS). • Windows 98 − модернизированный вариант Windows 95, выпущенный 25 июня 1998 года (как результат “трехлетней работы над ошибками”). Фактически, Windows 98 рассматривается фирмой Microsoft как новая операционная система, полностью ориентированная на конечного пользователя. За счет оптимизации функций ядра системы значительно по-
118 вышены ее быстродействие (почти на 25 %) и надежность по сравнению с Windows 95. Повышению надежности системы способствует использование специальных служебных программ, автоматически выполняющих проверку состояния важнейших системных файлов и целостности структур файловой системы (после некорректного завершения работы с системой), контроль состояния системного реестра и устранение обнаруженных в нем ошибок при каждой загрузке операционной системы. Защита от сбоев реализована по “образу и подобию” Windows NT, позволяя по нажатию Ctrl+Alt+Del получать доступ к списку запущенных задач, выбирать в нем и отменять выполнение задачи, приведшей к критической ситуации − “зависанию” системы. Существенно расширена номенклатура поддерживаемых внешних устройств путем добавления более 1300 драйверов новых устройств. В частности, обеспечена поддержка DVD-ROM и USB-устройств (Universal Serial Bus − универсальная последовательная шина). Устранены проблемы при работе с устройствами, поддерживающими стандарт подключения SCSI (Small Computer System Interface − интерфейс малых компьютерных систем), которые имелись в Windows 95. Кроме того, в Windows 98 успешно реализована известная технология APM (Advanced Power Management − усовершенствованное управление питанием), позволяющая компьютеру работать в режиме пониженного расхода электроэнергии. В Windows 98 используется новая файловая система FAT-32, которая сменила устаревшую FAT-16. FAT-32 более эффективно распределяет пространство жесткого диска (за счет использования 4-байтового элемента FAT удается сэкономить 20…35 % общего объема диска). Это позволяет также не разбивать большой винчестерский диск (емкостью более 1024 Мбайт) на несколько логических дисков. Следует отметить, что Windows 98 поддерживает и FAT-16, а переход к новой FAT-32 осуществляется путем использования встроенной утилиты преобразования файловой системы без переформатирования диска; обратное преобразование (FAT-32 → FAT-16) не поддерживается. Еще одно существенное изменение, относящееся к файловой системе, состоит в том, что корневой каталог, имевший ранее фиксированный размер (зависящий от объема диска) и строго определенное место на диске, теперь можно при необходимости наращивать подобно подкаталогу. 5 мая 1999 года выпущена Windows 98 SE (Second Edition − вторая редакция), в которой устранены обнаруженные ошибки и сделаны некоторые улучшения Windows 98. В частности, в состав Windows 98 SE были включены Internet Explorer 5 (для обеспечения эффективной работы в глобальной компьютерной сети Internet) и NetMeeting 3.0 (для более простой организации видеоконференций с использованием Internet).
119 • Windows 2000 − выпущена 17 февраля 2000 года. Первоначально планировалась фирмой Microsoft на замену операционной системы Windows NT 4.0 и имела в связи с этим название “Windows NT 5.0”. Однако впоследствии была представлена как система, призванная сменить одновременно с Windows NT 4.0 также и Windows 95, 98. В настоящее время имеются следующие четыре версии: − Professional (профессиональная) − клиентская версия, предназначенная для использования на сетевых рабочих станциях и локальных компьютерах; − Server (сервер) − версия системы, предназначенная для организации в небольших подразделениях сервера “уровня входа” (entry-level), а также файлового сервера, сервера печати или intranet-сервера; − Advanced Server (усовершенствованный сервер) − версия системы, предназначенная для организации крупных серверов и серверов приложений, а также для построения небольших и средних Web-серверов; − Data Center Server (сервер центра данных) − версия системы, предназначенная для организации работы крупных серверных кластеров (large-scale server clusters); Основные особенности Windows 2000 связаны с реализацией новых средств защиты данных (на основе протокола Kerberos, разработанного в Массачусетском технологическом институте − MIT, и службы каталогов Active Directory), усовершенствованных средств симметричной многопроцессорной обработки, встроенных средств удаленного доступа и других. В настоящее время бóльшая часть пользователей, использовавших ранее Windows NT, перешли на платформу Windows 2000. • Windows Millenium Edition (ME) − несколько запоздалая (в связи с выходом в свет Windows 2000) модернизация Windows 98, выпущенная 14 сентября 2000 года и ориентированная, главным образом, на домашних пользователей, по-прежнему использующих Windows 98. Добавлен ряд возможностей, среди которых − новый медиа-проигрыватель, встроенная поддержка большего количества типов файлов, многоцветные значки (пиктограммы) и некоторые другие. Особого интереса у ITпрофессионалов данная система не вызвала, более того, в их среде она получила титул “худшей операционки” из тех, что были разработаны Microsoft в последние годы [49]. • Windows XP − выпущена 25 октября 2001 года (буквы “XP” являются частью английского слова “experience”, которое переводится как “жизненный опыт, знания”). Windows XP имеет две основные версии: профессиональную (Professional Edition) и домашнюю (Home Edition). В свою очередь профессиональная версия представлена тремя вторичными версиями: Media Center Edition, Tablet PC Edition и Windows XP
120 Embedded. Профессиональная версия Windows XP заимствовала лучшие черты от Windows NT: высокую производительность, приоритетную многозадачность, отказоустойчивость, защиту памяти системы. Она предлагает заново спроектированный интерфейс и обеспечивает возможности как для деловой, так и “продвинутой” домашней компьютерной обработки, включая дополнительные настройки для рабочего стола, шифрование файловой системы, восстановление системы и усовершенствованные сетевые средства. Домашняя версия Windows XP предлагает непрофессиональным пользователям множество новых возможностей: более простой и визуально привлекательный интерфейс (например, многоцветное оформление окон и кнопки округлой формы), мастер установки сети (Network Setup Wizard), проигрыватель медиафайлов, создатель видеофильмов (Windows Movie Maker), расширенные средства для работы с цифровыми фотографиями. • Windows Server 2003 − выпущена 24 апреля 2003 года, использует лучшие решения, реализованные в Windows 2000, и представлена следующими четырьмя версиями: − Windows Server 2003, Standard Edition (стандартная редакция). Надежная сетевая операционная система, ориентированная на использование в небольших компаниях и подразделениях и обеспечивающая: совместное использование (разделение) файлов и принтеров, безопасное взаимодействие с Internet, централизованное развертывание настольных приложений. − Windows Server 2003, Enterprise Edition (промышленная редакция). Полнофункциональная серверная операционная система универсального назначения, предназначенная для использования в компаниях и подразделениях любого размера. Обеспечивает одновременное управление несколькими процессорами (максимально 8), средства для кластеризации (до 8 узлов и 32 Гбайт памяти), возможность использования 64-разрядного процессора Intel Itanium (до 8 процессоров и 64 Гбайт оперативной памяти). − Windows Server 2003, Datacenter Edition (редакция центра данных). Наиболее мощная и многофункциональная система из всех серверных операционных систем, когда-либо предлагавшихся фирмой Microsoft. Предназначена для обеспечения работы приложений, требующих максимального уровня масштабируемости и доступности. Поддерживает 32 способа симметричной многопроцессорной обработки (SMP) и 64 Гбайта оперативной памяти, обеспечивает в качестве стандартных средств как кластеризацию (до 8 узлов), так и сервисы балансирования загрузки (load balancing services), допускает использование на
121 64-разрядных вычислительных платформах с поддержкой 64 процессоров и 512 Гбайт оперативной памяти. − Windows Server 2003, Web Edition (редакция Web). Система спроектирована, главным образом, как Web-сервер на базе IIS версии 6.0, обеспечивающий легкость развертывания и управления Web-службами и приложениями. Может служить платформой для быстрой разработки Web-приложений и XML Webслужб, использующих технологию ASP.NET − ключевой компонент рабочей среды .NET. Обзор основных особенностей Windows Наиболее важными особенностями операционных систем семейства Windows являются: • Графический интерфейс пользователя (Graphical User Interface − GUI). Характерной чертой GUI является полный отказ от непосредственного ввода командной строки. Пользователь “общается” с системой путем выбора команд меню или графических символов (значков и/или ярлыков) соответствующих программ и файлов данных с помощью манипулятора “мышь”. Для идентификации различных информационных объектов, представленных в системе (программ, файлов данных, папок и т.п.) используются значки и ярлыки. Значок − пиктографическое (т.е. в виде миниатюрного рисунка) представление информационного объекта. Манипуляции со значком равносильны действиям с самим информационным объектом. Например, удаление значка, представляющего некоторый файл, приводит к удалению самого файла. Ярлык также является пиктограммой, представляющей ссылку на некоторый информационный объект. Манипуляции с ярлыком не затрагивают самого объекта, например, удаление ярлыка не приводит к удалению соответствующего файла. Внешне ярлык отличается от значка наличием изогнутой стрелки, представленной в левом нижнем углу пиктограммы. На диске ярлык представлен файлом небольшого размера (как правило, менее 1K байта), имеющим расширение имени lnk (от англ. link − связь). Окно (window) − важнейшее понятие GUI. Почти каждая программа, разработанная для использования в Windows, ассоциируется с некоторым окном, которое используется для отображения как данных, выводимых программой, так и данных, вводимых пользователем. Для программ, выполняющихся в так называемом консольном режиме (например, для программ разработанных в MS-DOS), также предоставляется окно (консольное окно), в котором может вводиться и отображаться алфавитно-цифровая информация.
122 В Windows могут использоваться окна нескольких классов окон, среди которых представлены основное (обрамленное) окно и различные виды диалоговых окон. Более подробно различные классы окон рассмотрены ниже. • Многозадачный режим работы. Возможность независимого запуска и параллельного выполнения нескольких программ. Более того, возможен независимый запуск нескольких экземпляров одной и той же программы. Каждая запущенная пользователем программа представлена на панели задач соответствующей кнопкой, позволяющей выполнять переключение с одной задачи на другую. В современных версиях Windows многозадачный режим работы основывается на таких базовых понятиях, как процесс и поток. Процесс можно определить как выполняющуюся программу. Поток (иногда говорят − нить) представляет отдельную часть кода, т.е. процесс может содержать несколько потоков, допускающих параллельное выполнение. • Интерфейс графических устройств (Graphics Device Interface − GDI). Windows предоставляет подмножество API, обеспечивающее поддержку аппаратно-независимой графики. Благодаря GDI Windowsприложения могут выполняться на компьютерах различной конфигурации. • Интегрированная среда обработки. В состав системы входят средства, необходимые для ее работы и обслуживания, а также для запуска Windows-приложений и DOS-программ. Понятие окна. Классификация окон Окно − основной графический объект операционной системы Windows. Обычно окно представляет собой прямоугольную область экрана монитора, которая может содержать пользовательскую область, предназначенную для отображения информации и включающую также множество различных элементов управления, c помощью которых пользователь взаимодействует с программой. В качестве примера окна с необходимыми пояснениями на рис. 4.11 показано окно программы Блокнот − простейшего текстового редактора Windows. В заголовке окна отображается информация, идентифицирующая запущенное приложение, и возможно файл или документ, открытый данным приложением. В левом конце заголовка находится пиктограмма системного меню, содержащая команды для манипуляции с окном: переместить, свернуть, изменить размер, закрыть окно и другие. Следует отметить, что закрытие окна означает окончание работы с приложением. В правом конце заголовка расположена группа из трех кнопок, обеспечивающих возможности минимизации (до размеров кнопки на панели задач), максимизации (до размеров полного экрана монитора) и закрытия окна. После того, как нажата кнопка максимизации, изменяет-
123 ся ее вид, означающий, что теперь ее можно использовать для возврата окна к его первоначальному (нормальному) размеру. Выбор любой из команд главного меню окна приводит, как правило, к появлению ниспадающего (pull-down) меню. В свою очередь, некоторые из команд ниспадающего меню, помеченные символом 4, приводят к появлению ниспадающего меню следующего уровня. Команды ниспадающего меню, заканчивающиеся многоточием (…), приводят к появлению диалогового окна, позволяющего задать дополнительные параметры, требующиеся для выполнения команды.
Заголовок Меню
Кнопки минимизации, максимизации и закрытия окна
Рабочая область Рамка Кнопка прокрутки Бегунок Горизонтальная полоса прокрутки
Вертикальная полоса прокрутки
Пиктограмма системного меню
Рис. 4.11 Окно редактора текстов Блокнот Если размер отображаемого текста или изображения превосходит размеры рабочей области окна, то можно воспользоваться полосками прокрутки (скроллинга), содержащими кнопки прокрутки и бегунок. Бегунок показывает относительное местоположение отображаемого фрагмента текста или изображения в документе. Кроме того, захватив бегунок левой кнопкой мыши, можно выполнить быстрое позиционирование в документе. API Windows обеспечивает средства для создания окон различных классов. Кроме того, в рамках одного класса можно менять стиль окна. Большинство приложений в Windows использует обрамленное окно (framed window), которое выступает в качестве контейнера для области (окна) просмотра (view), пане-
124 лей инструментов, меню и других объектов. На основе класса обрамленного окна разработана архитектура приложения “документ/вид” с однодокументным (Single Document Interface − SDI) и многодокументным (Multiple Document Interface − MDI) интерфейсом. SDI обычно поддерживает только одну область просмотра (см. выше рис. 4.11), MDI − несколько областей просмотра, по одному для каждого открытого приложением документа (рис. 4.12).
Рис. 4.12 Процессор электронных таблиц Microsoft Excel как пример мощного приложения, использующего MDI Архитектура приложения “документ/вид” использует такие основные понятия как документ и область просмотра. Документ − это данные, связанные с приложением; при этом документ относится к любым данным, не ограничиваясь только текстовыми файлами. Например, это может быть растровый рисунок или рабочая книга электронной таблицы. Область просмотра соответствует виду документа, т.е. она фактически содержит физическое представление данных. Отображение документа в области просмотра неоднозначно и не ограничено одним лишь экранным представлением. Например, при печати документа определяется совершенно другая область просмотра. Таким образом, документ содержит “чистые” данные, а область просмотра определяет конкретный способ их представления [50].
125 Создание приложений в соответствии с архитектурой “документ/вид” автоматизировано в Windows с помощью средств, обеспечиваемых системами программирования (например, Microsoft Application Wizard и MFC − Мастер приложений и библиотека базовых классов, соответственно, обеспечиваемые системой программирования языка Visual C++, входящей в состав Microsoft Visual Studio 6.0). Библиотека MFC (Microsoft Foundation Classes − базовые классы Microsoft) позволяет также создавать окна, не связанные с архитектурой “документ/вид” (рис. 4.13).
Рис. 4.13 Пример окна, созданного с помощью библиотеки MFC Другим часто используемым в Windows типом окна является диалоговое окно. Диалоговые окна − важный компонент GUI, используемый в большинстве приложений Windows и предоставляющий пользователю возможность взаимодействия с приложением. Существует два основных вида диалоговых окон: модальные и немодальные. Модальное диалоговое окно перехватывает управление у своего родительского окна, временно блокируя его работу, и удерживает управление вплоть до своего закрытия. Пример модального диалогового окна, показанный на рис. 4.14, содержит ряд распространенных элементов управления Windows, включая вращатели (spiners), селекторные кнопки (radio buttons), переключатели (check boxes) и другие. Приложение может также вывести на эк-
126 ран немодальное диалоговое окно и продолжать выполнять другие задачи, не закрывая диалога.
Рис. 4.14 Пример модального диалогового окна Помимо перечисленных выше типов окон, в Windows используются и другие их разновидности. Например, часто прибегают к окну с закладками (вкладками), один из примеров которого представлен на рис. 4.15. В окне с закладками представлены несколько страниц, каждая из которых имеет собственный набор элементов управления. У всех страниц имеется выступающий корешок, щелкнув по которому можно открыть соответствующую страницу. Элементы управления Windows Элемент управления (control) − это дочернее окно, которое приложение использует для взаимодействия с другим окном, обеспечивает простейшие операции ввода-вывода. В большинстве случаев элементы управления используются в диалоговых окнах, хотя их можно использовать и при работе с окнами других типов. Кнопки относятся к наиболее распространенным элементам управления в Windows-приложениях. Они отличаются большим разнообразием, однако чаще других используются основные типы кнопок, перечисленные ниже. Вращатель (счетчик) − элемент управления Windows, представленный парой связанных кнопок с изображением стрелок. Назначение вращателя − сбор информации от пользователя, который с помощью кнопок имеет возможность увеличивать или уменьшать внутреннее значение (текущее положение) вращателя, т.е. “прокручивать” значения. Например, в диалоговом окне, показанном на рис. 4.14, с помощью больших кнопок вращателя “Вперед-Назад” можно прокручивать названия изделий (фактически значение вращателя опре-
127 деляет номер, или индекс, соответствующего изделия в массиве изделий), а с помощью “малых” вращателей можно изменять значения размеров изделия.
Рис. 4.15 Пример диалогового окна с закладками Селекторная кнопка (кнопка выбора) − элемент управления Windows, представленный небольшим кружком. Селекторная кнопка обеспечивает возможность выбора одного из нескольких взаимоисключающих вариантов. Например, в диалоговом окне, приведенном на рис. 4.14, с помощью группы селекторных кнопок можно выбрать одну ориентацию изделия из восьми возможных. Переключатель (флажок) − элемент управления Windows, представленный небольшим квадратом, в котором может быть выставлена пометка (например, “галочка”). Переключатели используются, если необходимо выбрать несколько вариантов, не являющихся взаимоисключающими. В диалоговом окне на рис. 4.14 представлены четыре переключателя: “Нестандартный типоразмер”, “Свес крышки”, “Пластик” и “Карниз”. Нажимаемая кнопка − элемент управления Windows, представленный экранной кнопкой (push button), которая посылает приложению команду пользователя. В диалоговом окне на рис. 4.14 использованы три экранные кнопки: “ОК”, “Отмена” и “Помощь”.
128 Групповой блок − элемент управления Windows, представленный видимой прямоугольной рамкой с текстом. В диалоговом окне на рис. 4.14 групповой блок “Размеры (мм)” объединяет в группу поля ввода и связанные с ними вращатели. Кроме того, с помощью групповых блоков оформлены селекторные кнопки диалога. К отмеченным выше стандартным элементам управления необходимо добавить также следующие часто используемые элементы [51]: − текстовое поле − простейший редактор, позволяющий пользователю просматривать и редактировать поле. Возможность редактирования может быть отключена установкой атрибута поля “Только для чтения”; − список − элемент управления, отображающий список некоторых элементов (например, имен файлов) и позволяющий выбрать один или несколько подобных элементов; − комбинированный список − элемент управления, объединяющий список и однострочное текстовое поле. Обеспечивает размещение выбранного элемента в текстовое поле и его редактирование; − статический элемент − элемент управления, исключающий прямое воздействие на него со стороны пользователя, обычно применяется в качестве надписи для других элементов; − изменяемый список − специальный тип списка, позволяющий перетаскивать его элементы, меняя порядок отображения; − заголовок − дочернее окно, обычно располагаемое над столбцами текста или цифр, содержит заголовок для каждого столбца и позволяет изменять ширину столбцов; − просмотр списка − окно, использующееся для просмотра элементов списка и позволяющее, помимо текста, отображать значки, связанные с элементами списка (рис. 4.16, справа); − строка состояния − горизонтальное окно в нижней части родительского окна, служащее для отображения различной информации приложения, например, подсказки для выбранного пункта меню; − панель инструментов − дочернее окно, состоящее из набора кнопок быстрого вызова тех или иных команд (рис. 4.16, вверху); − подсказка − небольшое всплывающее окно с текстом краткого описания некоторого элемента управления, например, кнопки; − просмотр дерева − окно, использующееся для просмотра данных, организованных в виде дерева, например содержимого диска или каталога. При этом каждый элемент дерева может, помимо текста, иметь и некоторое растровое изображение (рис. 4.16, слева); − окно свойств − диалоговое окно, позволяющее просмотреть и редактировать свойства некоторого объекта (рис. 4.17). Доступ к группам параметров объекта осуществляется с помощью закладок. На базе данного окна строятся так называемые мастера (wizard), осуществляющие переход от одного этапа за-
129 проса пользователя к последующему или предыдущему по нажатию соответствующих кнопок; − текстовое поле с форматированием − окно редактирования, обеспечивающее возможность управления шрифтами, цветом и выравниваем абзацев, а также поддерживающее работу с внедренными объектами (OLE − Object Linking and Embedding); − индикатор − окно, содержащее средство индикации в виде прямоугольной полоски, которая постепенно заполняется от начала до завершения операции; − просмотр видеоклипов − окно, позволяющее просматривать видеоклипы формата AVI (Audio Video Interleaved − чередующиеся аудио и видеоданные), но без звука; − список рисунков − вспомогательный элемент управления, представленный массивом растровых изображений одинакового размера и обеспечивающий доступ к каждому изображению по индексу.
Панель инструментов
Просмотр дерева
Просмотр списка
Рис. 4.16 Окно приложения “Проводник”, содержащее дочерние окна для просмотра списка и дерева, инструментальное меню Необходимо отметить один терминологический нюанс, касающийся элементов управления Windows [52]. Иногда при описании GUI делаются ссылки как на стандартные (standard), так и на общие (common) элементы управления.
130 При этом под стандартными обычно понимают 16-битные элементы управления, которые были реализованы еще в Windows 3.x; к ним относятся большинство нажимаемых кнопок, полосы прокрутки, окна стандартных списков, часть инструментальных панелей, обычные поля редактирования и некоторые другие. Общие элементы управления являются 32-битными элементами, разработанными позднее в среде Windows 95. Они представлены просматриваемыми списками (см. выше рис. 4.16), окнами редактирования с форматированием и множеством других элементов, совместно образующими привлекательный интерфейс в стиле Windows 95. Иногда в руководствах пользователя по современным операционным системам Windows стандартные и общие элементы управления называют стандартизованными, а не стандартными (поскольку официального стандарта для них пока еще не существует).
Рис. 4.17 Окно свойств с закладками Помимо перечисленных выше стандартизованных элементов, Windowsприложение может использовать и более “экзотические” виды элементов управления, например, календарь (рис. 4.18). Кроме того, в операционных системах Windows ME и Windows XP (Home Edition), ориентированных на домашних пользователей, интерфейс отличается от классически выдержанного стиля, представленного в Windows 95/98/2000. “Домашний” интерфейс стал красочнее (полноцветнее), кнопки приобрели округлую форму, а окна − закругленные углы. Однако, эти новшества, вызвавшие
131 бурный восторг у непрофессиональных пользователей, были весьма сдержанно, если не сказать скептически, встречены в среде IT-профессионалов.
Рис. 4.18 Диалоговое окно, содержащее элемент управления “Календарь”
4.6.3 Документо-ориентированный подход к обработке информации в Windows В процессе эволюции операционной системы Windows окончательно сформировался документо-ориентированный подход к обработке информации, который выражается в переносе фокуса внимания пользователей с программ на обрабатываемые ими документы. Внешним проявлением этого является, прежде всего, использование новой терминологии Windows (файлы данных стали называться документами, каталоги − папками, начальный экран Windows − рабочим столом и т.д.) и соответствующих значков и ярлыков, представляющих различные информационные объекты.
132 Более глубокое, внутреннее, проявление подобного подхода представляется включением в Windows механизмов, реализованных программными модулями системы, для поддержки разработки и сопровождения сложных документов (и, прежде всего, OLE-автоматизации30). Технология OLE представляет собой механизм доступа к объектам, являющимися составной частью текущего документа, но расположенными за его пределами. Вместо этого в документе находится информация о том, где на диске размещены используемые объекты. С точки зрения производительности обновление документа из внешнего источника занимает больше времени, чем в случае, когда копия непосредственно находится в самом документе. Однако OLE позволяет поддерживать документ в актуальном состоянии в случае, когда внедренные объекты, размещенные за пределами документа, подвергаются изменениям. В этом случае не потребуется тратить время на копирование и выполнение вставки объекта в документ. Это преимущество особенно заметно, если один и тот же объект внедрен в несколько различных документов. Кроме того, использование технологии OLE потенциально сохраняет дисковое пространство. Действительно, если компоновать сложный документ простым копированием объекта (например, растрового рисунка) в документ, это приведет к появлению двух экземпляров объекта − оригинала изображения и его копии в документе. В то же время OLE поддерживает только один экземпляр объекта − оригинал изображения. В документе присутствует информация, представляющая связь с оригиналом объекта, но объем этой информации гораздо меньше, чем размер оригинала объекта. С другой стороны, использование OLE может слегка уменьшить общую производительность системы, особенно на компьютере с недостаточно быстрыми ЦП и жестким диском. Это связано с тем, что при открытии документа потребуется дополнительно выполнить проверку связей с объектами, загрузку объектов в память и их отображение на экране монитора. Следует также отметить, что документы, созданные с использованием технологии OLE, обладают меньшей переносимостью (мобильностью). Это обусловлено тем, что при передаче основного документа требуется обеспечить и все файлы, содержащие внедренные в него объекты. Кроме того, при переносе копий внедренных объектов в другую систему приходится размещать связанные файлы на тех же дисках и в тех же папках, что и в исходной системе. В противном случае связи, представленные в документе, в новой системе будут неточны и связанные объекты не загрузятся. При описании механизмов OLE-технологии часто используют такие термины, как OLE-сервер и OLE-клиент, которые нуждаются в кратком пояснении. Итак, необходимо иметь в виду, что объекты − это достаточно специфические образования, создавать которые могут не всякие приложения, разработанные 30
OLE − аббревиатура от англ. Object Linking and Embedding, что переводится как “встраивание (иногда говорят − погружение) и связывание объекта”.
133 для работы под управлением Windows. Приложения, которые способны создавать объекты, предназначенные для передачи в другие приложения, называются OLE-серверами. Приложения, которые позволяют внедрять или связывать чужие объекты в свои документы, называются OLE-клиентами. Например, при вставке рисунка в текстовый документ графический редактор выступает в роли OLE-сервера, а текстовый редактор − в роли OLE-клиента.
4.6.4 Использование DOS-программ в Windows Пользователи, проработавшие некоторое время в операционной системе DOS, знают, наверное, как непросто конфигурировать некоторые программы, разработанные для выполнения в этой системе. Кроме того, создав оптимальные условия для выполнения одной программы, нельзя было гарантировать, что это не скажется пагубно на выполнении других программ, т.е. настройки некоторых программ могли конфликтовать друг с другом. Разработчики Windows постарались обеспечить для запуска и использования DOS-программ такие условия, которые в подавляющем большинстве случаев не требуют участия пользователя в настройке программ. В версиях Windows, предшествующих Windows 95, для корректного запуска любой DOSпрограммы требовалось создать PIF (Program Information File − файл информации о программе). Для этой цели ранее использовался специальный редактор PIF, содержащийся в программной группе Главная. Необходимость использования PIF в Windows 95 и более поздних версиях завуалирована, однако эти файлы по-прежнему применяются. Редактор PIF более не включается в состав Windows, поскольку для внесения изменений в PIF используется диалоговое окно Свойства (см. выше рис. 4.17). Кратко рассмотрим процедуру создания PIF в Windows 95 [48]. При запуске DOS-программы (или любого другого исполняемого файла DOS, например, пакетного командного файла) Windows 95 просматривает папку, содержащую эту программу, с целью нахождения там соответствующего PIF. Если PIF не обнаружен, то он создается автоматически. При создании PIF Windows 95, прежде всего, проверяет файл APPS.INF, который находится в папке \WINDOWS\INF, на предмет наличия в нем данных об исполняемом файле. В этом файле содержатся конфигурационные параметры для более чем 400 распространенных DOS-программ. Если данные о программе в APPS.INF имеются, то они используются при создании PIF. Если же нужная информация о файле не найдена, то на основе файла Сеанс MS-DOS.pif (MS-DOS Prompt.pif), находящегося в папке \WINDOWS\Главное меню\Программы (\WINDOWS\START MENU\PROGRAMS) создается PIF по умолчанию. PIF, автоматически созданный Windows 95, помещается в ту же папку, где находится соответствующий исполняемый файл DOS. При этом ему дается имя исполняемого файла, но с расширением INF.
134 Ранее созданный PIF можно модифицировать. Для этого можно использовать один из следующих способов: − щелкнуть правой кнопкой мыши на пиктограмме исполняемого файла или на самом PIF, а затем выбрать в контекстном меню пункт Свойства (Properties); − во время выполнения DOS-программы щелкнуть правой кнопкой мыши на заголовке окна программы и затем выбрать в контекстном меню пункт Свойства (Properties). Как отмечалось выше, Windows создает виртуальную DOS-машину для каждой запущенной DOS-программы. При этом параметры, содержащиеся в PIF, определяют способы создания Windows такой виртуальной машины, т.е. они фактически управляют вычислительной средой для DOS-программы. Наиболее простой способ запуска DOS-программы или внутренней команды DOS заключается в вызове сеанса MS-DOS, который представлен соответствующим окном (рис. 4.19). В инструментальной панели окна представлены кнопки, позволяющие осуществлять ряд базовых функций Windows: копирование, вставку, изменение шрифта и размеров окна и т.п.
Рис. 4.19 Окно сеанса MS-DOS в Windows 98 Для вызова сеанса MS-DOS необходимо сначала нажать кнопку Пуск, расположенную в левом конце Панели задач, затем в открывшемся меню выбрать команду Программы 4 и, наконец, в подменю − команду Сеанс MSDOS. Пользователи могут настроить основные параметры сеанса MS-DOS, использовав для этой диалоговое окно Свойства: Сеанс MS-DOS, которое появляется, если щелкнуть правой кнопкой мыши на заголовке окна (см. выше рис.
135 4.19) и выбрать в контекстном меню команду Свойства (то же самое можно выполнить и с командой Сеанс MS-DOS).
4.6.5 Служебные программы Windows В составе системного программного обеспечения выделяют так называемые служебные, или сервисные, программы (утилиты), которые, с одной стороны, не являются неотъемлемой частью операционных систем, а с другой − расширяют и дополняют функциональность операционных систем. Ниже кратко рассмотрены некоторые служебные программы Windows и выполняемые ими функции. Вызов нескольких служебных программ Windows можно осуществить с помощью выбора следующих команд: Пуск8Программы8Стандартные 8Служебные. Программы, включенные в эту категорию, поставляются в составе дистрибутивного набора Windows и устанавливаются вместе с операционной системой (полностью или выборочно). Дефрагментация диска − служебная процедура, оптимизирующая использование жесткого диска компьютера. Доступ к файлам на дефрагментированном диске выполняется быстрее, чем на фрагментированном. Однако следует отметить, что сама дефрагментация диска − достаточно длительная процедура, заключающаяся в переносе и размещении информации, относящейся к одному файлу, в смежных кластерах диска. Кроме того, файлы перемещаются ближе к началу диска, что уменьшает время доступа к ним, способствуя повышению быстродействия системы в целом. Применительно к дискам IBM PCсовместимых компьютеров подобная процедура впервые была реализована одной из служебных программ пакета Norton Utilities (утилиты Нортона) в операционной системе MS-DOS31. Проверка диска − служебная процедура, позволяющая выявить и исправить ряд ошибок в файловой системе, появление которых обычно связано со сбоями при выполнении операции записи в файлы. Запуск этой процедуры выполняется как описано выше. Данная процедура обеспечивает проверку целостности файловой системы, которая определяется следующими факторами: − правильностью имен файлов; − правильностью даты и времени создания файла; − уникальностью имен файлов; − отсутствием файлов с общими кластерами; − отсутствием потерянных кластеров, т.е. кластеров, не принадлежащих ни одному файлу.
31
Программа, входящая в состав пакета Norton Utilities (NU) и выполняющая дефрагментацию диска, называется Speed Disk, что можно перевести с английского как “быстрый диск”.
136 Кроме стандартной проверки диска, определяющей целостность файловой системы, может быть выполнена и полная проверка, включающая также проверку поверхности диска; это позволяет выявить дефектные кластеры диска, т.е. такие кластеры, которые физически не в состоянии хранить записанную информацию (например, в случае локального повреждения магнитного слоя на поверхности диска). Процедура полной проверки диска является достаточно длительной, поэтому обычно она выполняется не часто. Очистка диска − служебная процедура, позволяющая освободить диск от ненужных файлов, которые накапливаются в процессе работы с различными программами (например, временные файлы, создаваемые некоторыми программами). Запуск этой процедуры выполняется аналогично запуску описанных выше процедур. Ненужные файлы в ходе выполнения очистки диска предварительно помещаются в корзину, значок которой размещен на рабочем столе Windows. Затем пользователь может окончательно удалить их с диска, очистив корзину. Преобразование в FAT32 − служебная процедура, позволяющая автоматически преобразовать формат файловой системы из FAT16 в FAT32, если размер жесткого диска превышает 512 Мбайт. Данная процедура может выполняться на дисках, уже заполненных информацией. Как правило, при этом высвобождается дополнительно 100-200 Мбайт на каждый гигабайт емкости жесткого диска. Следует отметить, что обратное преобразование данная процедура не выполняет. Кроме того, если диск используется для работы других операционных систем, то преобразование его в новый формат выполнять не следует. Запуск процедуры преобразования выплняется подобно тому, как описано выше. Форматирование диска − служебная процедура, позволяющая подготовить магнитные диски к использованию (см. выше п. 4.2). В результате форматирования информация, ранее записанная на диске, теряется. Для запуска процедуры форматирования необходимо щелкнуть правой кнопкой мыши на значке соответствующего диска, а затем в контекстном меню выбрать команду Форматировать. Таким способом можно отформатировать как дискеты, так и жесткие диски, за исключением диска, с которого производилась загрузка операционной системы. Помимо описанного выше способа для форматирования диска можно воспользоваться утилитой FORMAT.COM, запущенной в сеансе MSDOS.
Вопросы для самопроверки 1. Объяснить, в чем заключается “многослойность” программно-технической организации компьютера. С какой целью используется “многослойная” (многоуровневая) структура программного обеспечения? Что образует верхний программный слой? Нижний программный слой?
137 2. Перечислить основные функции базовой системы ввода-вывода (ROM-BIOS) IBM PC. Что такое программа POST? В чем заключается принцип расширямого диагностического ядра, реализованный в программе POST? 3. Что такое драйвер устройства ввода-вывода? Перечислить основные функции драйверов. Перечислить стандартные части драйвера, разработанного для использования в операционной системе MS-DOS. 4. Перечислить основные составные части (модули) MS-DOS. Какие функции выполняет каждый из модулей MS-DOS? 5. Что такое файловая система? Какие функции выполняет файловая система? Какие составные части образуют файловую систему? 6. Кратко описать логическую структуру a) гибкого магнитного диска (дискеты); б) жесткого магнитного диска (винчестера). В чем их сходство и отличие? 7. Что представляет собой файл с точки зрения хранения информации на диске? Каким образом система осуществляет доступ к информации, хранящейся в файле? 8. Перечислить основные команды MS-DOS для работы с файлами и каталогами. Каким образом можно получить краткую справку по той или иной команде MS-DOS? 9. Как организовать перенаправление ввода-вывода в MS-DOS? Что такое информационный канал в MS-DOS? С какой целью организуются информационные каналы? 10. Какие задачи решают программы, относящиеся к командным (операционным) оболочкам? Как называлась первая командная оболочка для MS-DOS? Кто ее автор? 11. Перечислить и кратко пояснить, какие критерии могут использоваться для классификации операционных систем? Перечислить основные исторические “вехи” семейства операционных систем Windows. Кратко описать основные особенности операционных систем семейства Windows. 12. Что такое окно с точки зрения пользователя Windows? Какие типы окон используются в Windows? 13. Описать элементы основного (обрамленного) окна Windows. Что такое однодокументный (SDI) и многодокументный (MDI) интерфейс приложения? Привести примеры приложений с интерфейсом SDI и MDI. 14. Перечислить и кратко описать основные элементы управления Windows. 15. В чем заключается сущность документо-ориентированного подхода к обработке информации в Windows? Что такое OLE-автоматизация и для чего она используется? 16. В чем состоит особенность использования DOS-программ в Windows? Как подготовить DOS-программу к запуску в среде Windows? Каким образом можно настроить параметры сеанса MS-DOS? 17. Что представляют собой служебные программы (утилиты)? Какие функции они выполняют? Какие основные служебные программы используются совместно с операционной системой Windows?
138 Библиографический список 1. Государственный образовательный стандарт высшего профессионального образова-
ния. Специальность 060800 − Экономика и управление на предприятии (по отраслям) [Электронный ресурс] / Федеральный портал “Российское образование”. Режим доступа: http://www.edu.ru/db/portal/spe/os/060800_2000.zip, свободный. 2. Государственный образовательный стандарт высшего профессионального образования. Специальность 060500 − Бухгалтерский учет, анализ и аудит [Электронный ресурс] / Федеральный портал “Российское образование”. Режим доступа: http://www.edu.ru/db/portal/spe/os/060500_2000.zip, свободный. 3. Примерная программа дисциплины “Информатика” (для направлений: 521100 − Социальная работа, 521200 − Социология, 521500 − Менеджмент, 521600 − Экономика, 522000 − Коммерция, 522100 − Аграрная экономика, 522200 − Статистика, 522300 − Информационные системы в экономике, 540300 − Социально-экономические знания), одобренная президиумом Научно-методического совета по информатике и утвержденная начальником Управления образовательных программ и стандартов высшего и среднего профессионального образования [Текст] / Москва, 2000. − 14 с. 4. Юзвишин, И.И. Информациология или закономерности информационных процессов и технологий в микро- и макромирах Вселенной [Текст] / И.И. Юзвишин. − 3-е изд., испр. и доп. − М. : Радио и связь, 1996. − 215 с. 5. Поспелов, Д.А. Становление информатики в России [Текст] : сб. “Очерки истории информатики в России” / Ред.-сост. Д.А. Поспелов, Я.И. Фет. − Новосибирск : Науч.-изд. центр ОИГГМ СО РАН, 1998. − 662 с. 6. Мейер, Б. Методы программирования [Текст] : [пер. с франц.] / Б. Мейер, К. Бодуэн. − В 2-х томах. − М. : Мир, 1982. − Т. 1 : 356 с. 7. Бауэр, Ф.Л. Информатика. Вводный курс [Текст] : [пер. с нем.] / Ф.Л. Бауэр, Г. Гооз. − В 2-х частях. − М. : Мир, 1990. − Ч. 1 : 336 с. ; Ч. 2 : 423 с. 8. Семенюк, Э.П. Информатика: достижения, перспективы, возможности [Текст] / Э.П. Семенюк. − М. : Наука, 1988. − 176 с. 9. Урнов, В.А. Преподавание информатики в компьютерном классе [Текст] / В.А. Урнов, Д.Ю. Климов. − М. : Просвещение, 1990. − 226 с. 10. Борковский, А.Б. Англо-русский словарь по программированию и информатике (с толкованиями) [Текст] / А.Б. Борковский. − М. : Рус. яз., 1987. − 335 с. 11. Брой, М. Информатика. Основополагающее введение [Текст] : [пер. с нем.] / М. Брой. − В 4-х частях. − М. : Диалог-МИФИ, 1996. − Ч. 1 : 299 с. 12. Дубова, Н. Очерки истории советской вычислительной техники. Очерк первый: ИТМ и ВТ. Машины 1 и 2 поколений [Текст] / Н. Дубова // Открытые системы. − № 1. − 1999. 13. Дубова, Н. Очерки истории советской вычислительной техники. Очерк второй: Школа Б.И. Рамеева. Универсальные ЭВМ [Текст] / Н. Дубова // Открытые системы. − № 2. − 1999. 14. Кузминский, М. Современные суперкомпьютеры: состояние и перспективы [Текст] / М. Кузминский, Д. Волков // Открытые системы. − № 6. − 1995. 15. Знакомьтесь: компьютер. [Текст] : [пер. с англ.] / Под ред. В.М. Курочкина. − М. : Мир, 1989. − 240 с.
139 16. Язык компьютера. [Текст] : [пер. с англ.] / Под ред. В.М. Курочкина. − М. : Мир,
1989. − 240 с. 17. Татарников, О. К 40-летию микросхемы (краткая хронология ключевых событий компьютерной индустрии) [Текст] / О. Татарников. − Компьютер Пресс. − № 11. − 1998. − С. 9-17. 18. Виртуальный музей отечественной вычислительной техники [Электронный ресурс] / Режим доступа: http://www.computer-museum.ru, http://www.icfcst.kiev.ua/museum, свободный. 19. Головкин, Б.А. Параллельные вычислительные системы [Текст] / Б.А. Головкин. − М. : Наука, 1980. − 520 с. 20. Майерс, Г. Архитектура современных ЭВМ [Текст] : [пер. с англ.] / Г. Майерс. − В 2-х кн. − М. : Мир, 1985. − Кн. 1 : 324 с. ; Кн.2 : 312 c. 21. Фомин, С.В. Системы счисления [Текст] : серия “Популярные лекции по математике” / С.В. Фомин. − Вып. 40. − 3-е изд. − М. : Наука, 1975. − 48 с. 22. Шеннон, К. Математическая теория связи [Текст] : [пер. с англ.] / К. Шеннон. − Кн. : Работы по теории информации и кибернетике. − М. : ИЛ, 1963. 23. Хэмминг, Р.В. Теория кодирования и теория информации [Текст] : [пер. с англ.] / Р.В. Хэмминг. − М. : Радио и связь, 1983. − 176 с. 24. Лю, Ю-Ч. Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектирование микрокомпьютерных систем [Текст] : [пер. с англ.] / Ю-Ч. Лю, Г. Гибсон. − М. : Радио и связь, 1987. − 512 с. 25. Спектор, Л. ПК в возрасте 20 лет [Текст] : [пер. с англ.] / Л. Спектор. − Мир ПК. − № 9. − 2001. 26. Ичбиа, Д. Билл Гейтс и сотворение Microsoft [Текст] : [пер. с англ.] / Д. Ичбиа, С. Кнеппер. − Ростов н/Д : Феникс, 1997. − 352 с. 27. Рыбаков, М.А. Анатомия персонального компьютера [Текст] / М.А. Рыбаков. − М. : СП “Интермеханика”, 1990. − 224 с. 28. Нортон, П. Программно-аппаратная организация IBM PC [Текст] : [пер. с англ.] / П. Нортон. − М. : Радио и связь, 1991. − 328 с. 29. Рош, У.Л. Библия по техническому обеспечению Уинна Роша [Текст] : [пер. с англ.] / У.Л. Рош. − Мн. : МХХК “Динамо”, 1992. − 416 с. 30. Фролов, А.В. Аппаратное обеспечение персонального компьютера [Текст] / А.В. Фролов, Г.В. Фролов. − М. : ДИАЛОГ-МИФИ, 1997. − 304 с. 31. Информатика. Базовый курс [Текст] / Симонович С.В. [и др.]. − СПб. : Изд-во “Питер”, 1999. − 640 с. 32. Нортон, П. Работа с жестким диском IBM PC [Текст] : [пер. с англ.] / П. Нортон, Р. Джордейн. − М. : Мир, 1992. − 560 с. 33. Семенов, В. Обеспечение совместимости дисководов DS/DD и DS/HD [Текст] / В. Семенов // Монитор (журнал для программистов-практиков). − № 6. − 1994. − С. 38-39. 34. Джордейн, Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT [Текст] : [пер. с англ.] / Р. Джордейн. − М. : Финансы и статистика, 1992. − 544 с. 35. Фролов, А.В. MS-DOS для программиста [Текст] / А.В. Фролов, Г.В. Фролов. − М. : ДИАЛОГ-МИФИ, 1995. − 256 с.
140 36. Лей, Р. Написание драйверов для MS-DOS [Текст] : [пер. с англ.] / Р. Лей и “Уэйт-
Груп”. − М.: Мир, 1995. − 527 с. 37. ROM-BIOS [Текст] : Справочное руководство / СПб. : НТК “Программпродукт”, 1992. − 160 с. 38. Экономическая информатика [Текст] / Под ред. П.В. Конюховского, Д.Н. Колесова. − СПб. : Питер, 2001. − 560 с. 39. Брябрин, В.М. Программное обеспечение персональных ЭВМ [Текст] / В.М. Брябрин. − М. : Наука. Гл. ред. физ.-мат. лит., 1988. − 272 с. 40. Богумирский, Б.С. MS-DOS 6. Новые возможности для пользователя [Текст] / Б.С. Богумирский. − СПб. : Питер, 1994. − 410 с. 41. Харин, В.Н. Информатика [Текст] : метод. указания к лабораторным занятиям для студентов спец. 060800 − Экономика и управление на предприятиях лесного комплекса. Часть II. Подготовка магнитных дисков IBM PC-совместимого компьютера к работе / В.Н. Харин, А.В. Стариков, Г.В. Кулешова ; ВГЛТА. − Воронеж, 1996. − 30 с. 42. Фигурнов, В.Е. IBM PC для пользователя [Текст] / В.Е. Фигурнов. − Изд. 5-е, исправл. и доп. − Уфа, 1993. − 352 с. 43. Информация из интерактивного справочника MS-DOS Help [Электронный ресурс] : операционная системы MS-DOS версии 6.22. 44. Харин, В.Н. Информатика [Текст]: метод. указания к лабораторным занятиям для студентов спец. 060800 − Экономика и управление на предприятиях лесного комплекса. Часть I. Начальное знакомство с IBM PC-совместимым компьютером / В.Н. Харин, А.В. Стариков, Г.В. Кулешова ; ВГЛТА. − Воронеж, 1996. − 48 с. 45. Харин, В.Н. Информатика [Текст]: метод. указания к лабораторным занятиям для студентов спец. 060800 − Экономика и управление на предприятиях лесного комплекса. Часть III. Текстовые редакторы MS-DOS / В.Н. Харин, А.В. Стариков, Г.В. Кулешова ; ВГЛТА. − Воронеж, 1996. − 40 с. 46. Столингс, В. Структурная организация и архитектура компьютерных систем: проектирование и производительность [Текст] : [пер. с англ.] / В. Столингс. − 5-е изд. − М. : Издательский дом “Вильямс”, 2002. − 896 с. 47. Столингс, В. Операционные системы: внутреннее устройство и принципы проектирования [Текст] : [пер. с англ.] / В. Столингс. − 4-е изд. − М. : Издательский дом “Вильямс”, 2002. − 848 с.. 48. Уатт, А.Л. Оптимизация Windows 95 [Текст] : [пер. с англ.] / А.Л. Уатт, Б.Дж. Синит. − К. : НИПФ “ДиаСофт Лтд.”, 1996. − 352 с. 49. История развития семейства операционных систем Windows [Электронный ресурс] / Режим доступа: http://www.neowin.com/articles/microsoft_windows_history.htm, свободный. 50. Шилдт, Г. MFC: Основы программирования [Текст] : [пер. с англ.] / Г. Шилдт. − К. : Издательская группа BHV, 1997. − 560 с. 51. Мешков, А.В. Visual C++ и MFC [Текст] / А.В. Мешков, Ю.В. Тихомиров. − 2-е изд. − СПб. : БХВ−Санкт-Петербург, 1999. − 1040 с. 52. Нортон, П. Руководство Питера Нортона. Программирование в Windows 95/NT 4 с помощью MFC [Текст] : [пер. с англ.] / П. Нортон, Р. Макгрегор. − В 2-х книгах. − М. : “СК Пресс”, 1998. − Кн.1 : 616 с.
141
Оглавление Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Цели и задачи учебной дисциплины . . . . . . . . . . . . . . . . . . . . . . . . . Что такое информатика? . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . Что такое информация? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Способы представления информации в повседневной жизни, науке и технике . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Информационные процессы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Глава 1. Начальные сведения о компьютерах . . . . . . . . . . . . . . . . . . . . 1.1. Краткий экскурс в компьютерное прошлое . . . . . . . . . . . . . . . . . 1.2. Принципы Джона фон Неймана . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Общая организация и принципы работы компьютера . . . . . . . . . . 1.3.1. Центральный процессор . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2. Оперативная память . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3. Устройства ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Программное обеспечение компьютера . . . . . . . . . . . . . . . . . . . . Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Глава 2. Двоичная арифметика и представление информации в компьютере . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Двоичная, восьмеричная и шестнадцатеричная системы счисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Двоичная арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Сложение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Вычитание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Умножение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. Деление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Представление числовых данных . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Представление целых чисел . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2. Представление вещественных чисел . . . . . . . . . . . . . . . . . 2.3.3. Представление отрицательных чисел . . . . . . . . . . . . . . . . 2.4. Кодирование символьной информации . . . . . . . . . . . . . . . . . . . . . Вопросы и задания для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . Глава 3. Технические средства персонального компьютера . . . . . . . . 3.1. Основные понятия микропроцессорной техники . . . . . . . . . . . . . 3.2. Феномен персонального компьютера . . . . . . . . . . . . . . . . . . . . . . . 3.3. “Открытая архитектура”, или всё дело в принципе . . . . . . . . . . . . 3.4. Хронология важнейших событий . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Аппаратная организация IBM PC . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1. Системный блок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2. Монитор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.3. Клавиатура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.4. Мышь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Стр. 3 3 4 6 7 8 9 9 15 16 19 21 23 25 27 28 28 31 31 32 32 33 33 34 35 35 37 39 39 39 43 44 46 48 49 56 59 61
142 Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Глава 4. Системное программное обеспечение персонального компьютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. Иерархия программных средств . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Базовая система ввода-вывода (ROM-BIOS) . . . . . . . . . . . . 4.1.2. Драйверы устройств ввода-вывода . . . . . . . . . . . . . . . . . . . 4.1.3. Структура MS-DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Файловая система . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Логическая организация дискеты . . . . . . . . . . . . . . . . . . . . 4.2.2. Понятие кластера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3. Блок начальной загрузки (БНЗ) . . . . . . . . . . . . . . . . . . . . . . 4.2.4. Таблица размещения файлов (FAT) . . . . . . . . . . . . . . . . . . 4.2.5. Корневой каталог . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.6. Логическая организация жесткого диска . . . . . . . . . . . . . . 4.3. Организация хранения информации в MS-DOS . . . . . . . . . . . . . . 4.3.1. Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2. Каталоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3. Диски . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4. Маршруты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.5. Спецификация файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.6. Шаблоны имен файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.7. Спецификация каталога . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. Краткое руководство по важнейшим командам MS-DOS . . . . . . . 4.4.1. Общий синтаксис команд MS-DOS . . . . . . . . . . . . . . . . . . 4.4.2. Получение краткой справки по командам MS-DOS . . . . . . 4.4.3. Управление файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.4. Управление каталогами . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.5. Перенаправление ввода-вывода и организация информационного канала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. Командные оболочки MS-DOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Современные операционные системы IBM PC-совместимых компьютеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1. Классификация операционных систем . . . . . . . . . . . . . . . . 4.6.2. Основные понятия операционной системы Windows . . . . . 4.6.3. Документо-ориентированный подход к обработке информации в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.4. Использование DOS-программ в Windows . . . . . . . . . . . . . 4.6.5. Служебные программы Windows . . . . . . . . . . . . . . . . . . . . . Вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Библиографический список . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62 62 63 64 65 68 71 72 73 74 74 76 79 83 83 85 86 87 89 89 90 91 91 92 93 101 107 109 111 112 114 132 134 136 137 139
Учебное издание
Стариков Александр Вениаминович ОСНОВЫ ИНФОРМАТИКИ Учебное пособие
Часть I Введение в информатику Программно-техническая организация персонального компьютера
Редактор В.В. Терлецкая
Подписано в печать Формат 60х841/16. Объём 9,0 п. л. Усл. п. л. 8,37. Уч.-изд. л. 11,0. Тираж 150 экз. Заказ № ___ ГОУ ВПО «Воронежская государственная лесотехническая академия» РИО ГОУ ВПО «ВГЛТА». 394613, г. Воронеж, ул. Тимирязева, 8 Отпечатано в тип. ИП Хасанова И.Б. 394087, г. Воронеж, ул. Ломоносова, 87