Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособение для экзамена.pdf
Скачиваний:
3
Добавлен:
16.05.2024
Размер:
1.02 Mб
Скачать

4. ОБЗОР ОСНОВНЫХ ОСОБЕННОСТЕЙ НЕКОТОРЫХ ОС

4.1.DOS

Обозначение DOS расшифровывается как дисковая операционная система. Она возникла в начале 80-х годов 20-го века как разработка фирмы Microsoft – MS-DOS для компьютеров типа IBM PC. Кроме данного варианта ОС также существует много других версий DOS: PC-DOS, DR-DOS, FreeDOS и т.д.

Хотя в настоящее время данная ОС достаточно устарела, однако есть несколько направлений, где она может быть использована. В первую очередь это относится к выполнению старых программ, изначально написанных для DOS. Как известно, семейство ОС MS Windows имеет ограниченную совместимость с DOS, и не все старые программы могут быть выполнены под ними. В частности те, которые используют прямой доступ к аппаратной части компьютерной системы или специфичные методы DOS по адресации памяти.

Другое направление, где DOS до сих пор разумно использовать, относится к различным системам управления реальными объектами и сбора информации, например, экспериментальной. Действительно, DOS является однозадачной системой и, следовательно, в процессе функционирования нашей программы какие либо ее прерывания со стороны других задач исключены, что делает DOS оптимальной системой для процессов реального времени.

Другое направление использования DOS касается системы проверки и настройки компьютера. Действительно, при возникновении ситуации, когда наша компьютерная система под управлением многозадачной ОС начинает вести себя нестабильно, мы должны в первую очередь понять причины такого поведения – проблемы оборудования или ОС. Т.к. DOS функционирует в самых ограниченных условиях, то загрузка с нее и старт различных программ проверки оборудования позволяет выделить возможные причины проблем. Так же может быть организованна и настройка компьютера, в частности разбиение жесткого диска и т.д.

При работе с DOS (далее будем рассматривать MS-DOS) в первую очередь выделим основные системные файлы. Это io.sys, который служит расширителем системы ввода - вывода BIOS. Далее идет msdos.sys, являющийся, в сущности, ядром ОС и

45

command.com – командный интерпретатор. Он служит для обработки команд пользователя.

В соответствии с данной последовательностью происходит и загрузка ОС. Вначале загружаются файлы io.sys и msdos.sys. Необходимо понимать, что они должны располагаться в четко установленных местах загрузочного диска. Далее проверяется наличие в корневом каталоге загрузочного диска файла config.sys, который позволяет настраивать работу некоторых компонент ОС – например, оперативной памяти, и подключать драйвера оборудования. Если данный файл отсутствует, то параметры загрузки ОС берутся по умолчанию. Далее загружается command.com. Затем проверяется наличие в корневом каталоге загрузочного диска файла autoexec.bat. Данный файл в свою очередь позволяет настроить работу командного интерпретатора. Если он отсутствует, то опять все параметры берутся по умолчанию. На этом загрузка ОС заканчивается. В состав DOS входят еще другие утилиты, например, для работы с диском. Однако минимальный набор файлов DOS позволяет создать загрузочный диск даже на гибком диске.

Архитектура использования ОП в DOS в упрощенном виде показана на рис.6. В первую очередь необходимо помнить, что процессоры, предназначенные изначально для DOS, могли напрямую адресовать только 1024К ОП. Далее в данном участке ОП выделяется основная память, где находится ядро ОС и работают программы пользователя. Выше до 1024К находится технический сегмент, куда отображается BIOS, видеопамять и т.д. Пользовательские программы в нормальном режиме там не размещаются. Выше 1024К находится 64 килобайтный сегмент - HMA (high memory area – область верхней памяти), в который путем задания соответствующих параметров в config.sys можно переместить часть ядра ОС и освободить основную память. Так же полезно помнить, что DOS является 16 разрядной и наибольший участок адресуемой памяти в программе –

64Кб.

При запуске программ в DOS наиболее частый вопрос возникает о том, как запустить программы с требованием по памяти больше чем 640К. Для решения данной проблемы в DOS используются расширители памяти. Существуют три основных версии – EMS, extended memory и DPMI. Последний является наиболее совершенным. Для их включения в config.sys указываются параметры dos=high,umb и загружается драйвер расширенной памяти. Обычно это himem.sys. Данные драйвера так же позволяют использовать 32-х разрядный режим работы программ в DOS.

46

64Мб

дополнительная

память

HMA – 64K

1024К

технический

сегмент

640К

основная память

Рис.6. Архитектура использования памяти в DOS.

4.2.Windows 3.1

По мере развития аппаратной части компьютерных систем и требований пользователей в мире возникла тенденция по использованию графического интерфейса в ОС. Основная мотивация была в создании более дружественной среды при работе в ОС и, таким образом, упрощению действий пользователя, ускорения его работы, уменьшению числа возможных ошибок. Все это также предоставляет возможность освоения современных компьютерных систем широкими массами населения.

Откликаясь на эти тенденции, фирма Microsoft выпустила первые версии системы Windows, из которых версия 3.1 имела чрезвычайный коммерческий успех. Необходимо сразу сказать, что Windows 3.1 в сущности не являлась самостоятельной ОС как таковой, а была лишь графической надстройкой над DOS. ОС была изначально 16 разрядной, но давала возможность выполнения 32-х разрядных программ. Архитектура ОС представлена

на рис.7.

47

4 Гб

Ядро ОС

Все прикладные программы

Win16 – Win32

1 Мб

Драйвера устройств реального времени

Рис.7. Архитектура использования памяти в Windows 3.1.

Как видно, все прикладные программы и ядро ОС находятся в едином адресном пространстве. Таким образом, плохо написанная программа может легко испортить другие задачи и, даже, ядро ОС. В дополнение ОС использовала корпоративную многозадачность. Все это объясняет плохие функциональные качества ОС и низкую ее надежность. В настоящее время данная ОС вряд ли может найти где-либо применение и приводится для иллюстрации тенденций развития архитектур ОС.

4.3.Windows 9x

Понимая данные проблемы, фирма Microsoft выпустила следующие версии ОС семейства Windows 9x. Это Windows 95, 98 и ME. Основное их отличие от Windows 3.1

это использование в ОС 32-х разрядных программ и большая надежность архитектуры. В 48

то же время ставилась задача обеспечить широкую совместимость с DOS и Windows 3.1, что обусловило сохранение определенной ненадежности работы ОС. Архитектура ОС представлена на рис 8.

4 Гб

компоненты ядра ОС

3 Гб

Прикладные программы Win16

Системные DLL

2 Гб

Прикладные

программы

Win32

4 Мб

Драйвера устройств реального времени

Рис.8. Архитектура использования памяти в Windows 9x.

Каждая программа Win32 видит свое виртуальное адресное пространство до 2 Гб. Таким образом, задачи защищены друг от друга. До 4 Мб пространство используется совместно всеми процессами для обеспечения совместимости с ранними ОС. В то же время любой процесс может испортить находящиеся здесь данные других процессов. В общем пространстве от 2 до 3 Гб находятся 16 – разрядные программы Win16 и 16 разрядные системные компоненты ОС. Таким образом, здесь также имеется возможность взаимодействия программ и потенциальная опасность для ОС. Компоненты ядра ОС в адресном пространстве от 3 до 4Гб также видны всем программам Win32 и доступны для записи.

Из этого следует, что хотя определенная совместимость со старыми версиями ОС была достигнута, однако ОС данного семейства отличалась достаточной ненадежностью и

49

наличием большого числа 16-ти разрядных системных компонент, что замедляло ее работу по сравнению с полностью 32-х разрядными ОС аналогами. В настоящее время ОС этого семейства еще можно встретить там, где эксплуатируются экспериментальные и другие устройства старого типа, имеющие интерфейс, настроенный на данный тип ОС. Так же необходимо отметить, что на компьютерных системах ограниченных параметров одни и те же приложения под ОС Windows 9x будут работать существенно быстрее, чем под OC семейства MS Windows NT.

4.4.OS/2

Внастоящее время данный тип ОС в России является достаточно экзотичным, однако в 90-х годах 20-го века данная ОС достаточно часто использовалась как платформа для научных вычислений. Мы рассмотрим здесь самые общие черты данной ОС по тем же причинам, что и у предыдущей ОС.

OS/2 начала разрабатываться совместно фирмами IBM и Microsoft в конце 80-х годов. Однако позже фирма Microsoft покинула проект ради платформы MS Windows. IBM продолжило разрабатывать ОС и после нескольких версий в начале 90-х была выпущена версия ОС 2.0 в 1992 году а затем 3.0, которые были существенно более развиты по сравнению с платформой MS Windows на тот день. В версии 2.0 32разрядность использовалась гораздо шире, чем в более поздней версии MS Windows 95 - за исключением видеосистемы все было 32-х разрядным. Использование виртуальных DOS-машин (VDM) позволяет запускать сразу несколько DOS- и Windows-задач. Для запуска программ Windows использовалась Win-OS/2, основанная на лицензированной IBM Windows 3.1. Использование виртуальных машин позволило изолировать Windows и DOS-задачи, в результате чего сбои в программах не препятствовали продолжению выполнения других программ. Были реализованы также такие механизмы межпрограммного взаимодействия, как динамический обмен данных (Dynamic Data Exchange) и буфер обмена. В OS/2 можно использовать специально разработанную для нее файловую систему HPFS. Данная система была призвана решить следующие проблемы файловой системы FAT: ограничения, налагаемые на размер файлов и дискового пространства; ограничение длины имени файла; фрагментация файлов, приводящая к снижению быстродействия системы и износу оборудования; непроизводительные затраты памяти, вызванные большими размерами кластеров;

50

подверженность потерям данных. В отличие от MS Windows, в OS/2 как и в Unix подобных системах можно не загружать графическую оболочку, получая при этом работоспособную систему в режиме командной строки. Общая схема распределения памяти в ОS/2 представлена на рис. 9.

Последняя полуофициальная версия OS/2 Аврора была выпущена в 1999 году. В настоящее время данная ОС IBM не поддерживается.

OS/2 широко использовалась в ранних моделях банкоматов. «Aurora» (OS/2 WSeB 4.5x) была популярна в качестве файлового сервера из-за производительности, надёжности и набора возможностей. OS/2 встречалось в 1990-х годах в институтских лабораториях — там, где много управляющих программ. OS/2 была популярна в конце 1990-х годах для разработки программ на Java.

 

4 Гб

Системный код

512 Мб

 

32

разрядные

прикладные

программы OS/2

виртуальные

машины Win16

Рис.9. Архитектура использования памяти в семействе OS/2.

51

4.5.ОС семейств MS Windows NT

Семейство MS Windows NT начало свой отсчет с появления в начале 90-х годов одноименной ОС [8]. При создании проекта разработчики изначально поставили перед собой весьма амбициозные задачи по выполнению в системе следующих требований: переносимость, надежность, мультипроцессорная обработка, масштабируемость, распределенные вычисления, совместимость с POSIX (см. 1.6), уровень защиты от несанкционированного доступа уровня С2, расширяемость. Общую суть этих требований мы рассмотрели ранее. Для выполнения данных требований разработчики базировались на следующих основных концепциях:

модели клиент – сервер для предоставления пользователям различных сред ОС

объектная модель для предоставления унифицированной модели управления ресурсами ОС

использование концепции микроядра при построении ядра ОС для обеспечения повышенной надежности системы

Все перечисленные концепции достаточно органично сочетаются в MS Windows NT. Общая структура ОС представлена на рис. 10.

 

клиент OS/2

 

 

клиент Win32

 

 

 

клиент POSIX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

подсистема

 

 

 

 

подсистема

 

 

 

подсистема

 

 

OS/2

 

 

 

 

Win32

 

 

 

 

POSIX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ввод-вывод

ввод-вывод

 

Пользовательский режим

Исполнительная система Windows NT

средство локального вызова

режим ядра

процедур LPC

 

 

 

Системные сервисы

 

Диспетчер ввода -

 

 

вывода

Ядро

 

 

 

 

 

 

Слой абстрагирования от оборудования (HAL)

Аппаратура

Рис.10. Общая структура ОС MS Windows NT.

52

В первой версии MS Windows NT подход по микроядру строго соблюдался. В ОС было выделено относительно небольшое количество особо ответственных компонент, которые работали в привилегированном режиме. Остальные приложения ОС, а тем более пользовательские приложения, работали в обычном пользовательском режиме и напрямую к ядру доступа не имели. Для выполнения команд, требующих системного сервиса, каждое приложение в духе концепции клиент – сервер обращается к серверу своего типа. Причем обращение производится не напрямую, а через исполнительную систему MS Windows NTLPC, которая проверяет правильность вызова. В ОС изначально имелось три основные подсистемы (сервера): основная Win32 и две для обеспечения совместимости – OS/2 и POSIX. Каждая подсистема после проверки и обработки команд от клиента при необходимости могла передавать их далее компонентам ОС, работающим на уровне ядра. Подсистемы OS/2 и POSIX для операций ввода вывода могли использовать только подсистему Win32. Каждая подсистема после обработки команд клиента возвращает результаты клиенту опять через LPC. Распределение памяти для ОС приведено на рис. 11.

 

4 Гб

компоненты

ядра ОС

 

2 Гб

 

DLL

Win32

клиентской

стороны

 

 

Система Win32

Прикладные

программы

Win32

 

Рис. 11 Общее распределение памяти в семействе ОС MS Windows NT.

53

Как мы видим, каждый 32-х разрядный клиент имеет свое виртуальное адресное пространство в 2 Гб. Для обеспечения связи между клиентами и основной подсистемой Win32 в верхней части адресного пространства программы находятся «заглушки», которые воспринимаются ею как системные библиотеки. На самом деле их функция заключается в передаче вызовов подсистеме Win32, как было описано ранее.

В первоначальной версии ОС NT 3.1 для соблюдения всех правил концепции микроядра очень много системных компонент было вынесено в пользовательский режим и функционировало в виде отдельных серверов, например, графическая система ОС. Нетрудно видеть, что данная концепция теоретически обеспечивает повышенную надежность и безопасность системы. В тоже время, очевидно, что данная концепция требует существенно больших компьютерных ресурсов и будет более медленной по сравнению с другими.

Действительно, при переходе от старых версий ОС семейства MS Windows к ОС MS Windows NT пользователи замечали значительно большую устойчивость системы, однако существенно большая требовательность к ресурсам и, как следствие, замедление работы в определенной степени свело на нет все достижения. Так же надо отметить, что совместимость со старыми версиями даже MS Windows и DOS была очень ограничена. Приложения OS/2 и POSIX могли выполняться только в алфавитно-цифровом режиме.

Все это обусловило серьезную переработку концепции ОС, в частности, перенос наиболее ресурсоемких и часто вызываемых системных сервисов с пользовательского уровня на уровень ядра. Т.е. это фактически означало отказ от концепции чистого микроядра ОС в сторону гибридного ядра. Все это и серьезная оптимизация принесли свои плоды и, начиная с версии MS Windows NT 4.0, ОС данного семейства достаточно успешно завоевывают рынок. Версии ОС семейства MS Windows NT по текущий момент приведены в таблице 1.

В данном обзоре не имеет смысл останавливаться на всех версиях данной ОС. Однако, из анализа таблицы видно, что в настоящее время при выпуске ОС фирма Microsoft придерживается стратегии изготовления двух основных версий на одном и том же ядре – для рабочих станций и серверного варианта. Каждая из версий в свою очередь разбивается на различные редакции, которые подстраиваются под разные сегменты рынка. Понятно, что редакции для использования в задачах ЯЭ должны быть самые расширенные для обеспечения свойств защищенности и надежности.

54

Таблица 1

Версии ОС семейства MS Windows NT

Версия

Название ОС

Основные редакции

 

Год

ядра

 

 

 

 

выпуска

 

 

 

 

 

NT 3.1

Windows NT 3.1

Рабочая станция, сервер

 

1993

 

 

 

 

 

NT 3.5

Windows NT 3.5

Рабочая станция, сервер

 

1994

 

 

 

 

 

NT 3.51

Windows NT 3.51

Рабочая станция, сервер

 

1995

 

 

 

 

NT 4.0

Windows NT 3

Рабочая станция, сервер, сервер

1996

 

 

предприятия, сервер терминалов

 

 

 

 

 

 

NT 5.0

Windows 2000

Профессиональная,

сервер,

2000

 

 

расширенный сервер, сервер центра

 

 

 

данных

 

 

 

 

 

 

 

NT 5.1

Windows XP

Домашняя, профессиональная, 64х

2001

 

 

разрядная

 

 

 

 

 

 

 

NT 5.2

Windows XP

64-разрядная редакция 2003

2003

 

 

 

 

NT 5.2

Windows Server 2003

Стандартная, предприятия, центр

2003

 

 

данных, Веб, сервер малого бизнеса и

 

 

 

т.д.

 

 

 

 

 

 

 

NT 5.2

Windows XP

Профессиональная х64 редакция

2005

 

 

 

 

NT 5.2

Windows Server 2003 R2

Стандартная, предприятия, центр

2005

 

 

данных, Веб, сервер малого бизнеса и

 

 

 

т.д.

 

 

 

 

 

 

 

 

 

NT 5.2

Windows Home Server

нет

 

 

2007

 

 

 

 

 

 

NT 6.0

Windows Vista

Начальная,

домашняя

основная,

2006

 

 

домашняя

премиум,

бизнес,

 

 

 

предприятия, Ultimate

 

 

 

 

 

 

NT 6.0

Windows Server 2008

Foundation, стандартная, предприятия,

2008

 

 

центр данных, веб сервер и т.д.

 

 

 

 

 

 

 

NT 6.1

Windows 7

Стартовая,

домашняя

основная,

2009

 

 

домашняя

 

премиум,

 

 

 

профессиональная,

предприятия,

 

 

 

Ultimate

 

 

 

 

 

 

 

NT 6.1

Windows Server 2008 R2

Foundation, стандартная, предприятия,

2009

 

 

центр данных, веб сервер и т.д.

 

 

 

 

 

 

 

55

На текущий момент последняя версия семейства ОС MS Windows NT для рабочих станций является Windows 7, использующая ядро NT 6.1. В общем, первоначальная идеология построения ОС мало изменилась к настоящему времени. Эволюция в основном касалась развития интерфейса, расширения поддержи различных устройств, оптимизации работы, расширения коммуникационных возможностей и т.п. Посмотрим, что же наиболее существенного произошло при последнем переходе на ядро NT 6.0 в версии

Windows Vista по заявлениям фирмы Microsoft.

В ядро введен менеджер транзакций, позволяющий проводить операции типа транзакция между различными системными и пользовательскими объектами. Данное нововведение похоже на то, что имеется в журнальных файловых системах и имеет также две стороны. С одной надежность системы существенно улучшается. С другой стороны требования ко всем ресурсам существенно увеличивается, что сказывается на быстродействии.

Менеджеры управления памятью и процессами, структуры данных и алгоритмы существенно улучшены.

Уменьшены накладные расходы при создании процессов.

Введен класс защищенных процессов. Т.е. таких, состоянием и данными которых не могут оперировать другие процессы системы.

Улучшена работа системы с многонитевыми приложениями.

Введено понятие виртуализации данных. Это свойство может быть использовано, например, когда приложение не имеет достаточных прав для доступа к данным, и создает собственную виртуальную версию их. Потенциально данное свойство может улучшить безопасность ОС.

Полностью изменена процедура старта ОС.

Полностью переделана и улучшена процедура ведения системного журнала, который базируется сейчас на основе XML формата.

Введена система динамического адресного пространства, которая позволяет распределять виртуальную память и таблицы ядра по мере необходимости.

Улучшена поддержка для архитектур типа NUMA (неравномерный доступ к памяти

.т.е. предоставлении каждому процессору своей памяти).

Страницы памяти могут помечаться как только для чтения, чтобы избегнуть их повреждения.

Улучшена работа механизма сброса страниц виртуальной памяти на диск.

Проведена оптимизация для СМО систем.

56

Улучшена работа транзакций NTFS для обеспечения большей сохранности данных.

Улучшена система шифровки данных на диске для предотвращения неавторизованного доступа к данным.

Введены в NTFS символьные связи как в UNIX-подобных ОС.

Улучшена система самоисправления ошибок NTFS, которая сейчас функционирует в виде отдельной фоновой нити.

ОС координирует загрузку зависимых процессоров.

Автоматически регулируется состояние процессора от его загрузки.

Производится расширенное кэширование наиболее часто используемых данных в оперативную память.

Приоритизация операций ввода-вывода позволяет регулировать приоритет соответствующих операций на внешние устройства памяти, что похоже на регуляцию приоритета задач для доступа к процессору.

Проведена серьезная оптимизация работы жесткого диска.

Здесь мы перечислили нововведения и улучшения, коснувшиеся системного уровня, которые в первую очередь относятся к функционированию компьютерной системы в задачах ЯЭ. Остальные нововведения типа нового графического интерфейса и т.п. здесь не рассматриваются, как не относящиеся к теме. По приведенным данным видно, что фирма Microsoft заявляла серьезное улучшение функционирование ОС при переходе на ядро NT 6.0 и, в частности, на MS Windows Vista. Однако на практике этого не произошло. Система оказалась чрезвычайно требовательна к ресурсам и поэтому достаточно медлительна. В целом, по отзывам многих экспертов, данная версия ОС оказалась коммерческим провалом.

Для исправления ситуации код системы был сильно оптимизирован и выпущен под новой маркой MS Windows 7 с ядром NT 6.1. Кроме различных улучшений по интерфейсу, работы с мультимедиа и т.п., была существенно улучшена работа системы на многоядерных процессорах – в настоящее время ОС поддерживает до 256 логических процессоров. Тестовые расчеты подтвердили действительно серьезное улучшение масштабируемости параллельных расчетов по сравнению с MS Windows XP. Улучшена процедура загрузки ОС, улучшена работа ядра. В частности был введен больший параллелизм в работу ОС. В качестве другой интересной особенности можно выделить группировку таймеров. Основная идея состоит в синхронизации различных программных таймеров для уменьшения циклов переключения процессоров между режимами с

57

различным уровнем энергопотребления. Также был введен режим возможности управления выполнением нитей на уровне пользователя в отличии от существовавшего до сих пор управления только на уровне ядра.

Для улучшения безопасности файловой системы в ее шифрование добавлен вариант с использованием эллиптических кривых. Кроме шифрования внутренних дисков в ОС добавлена возможность проведения данной операции над любыми внешними устройствами. Также к области повышения безопасности можно отнести возможность работы с биометрическими системами, такими как считыватели отпечатков палец. Добавлена возможность для администраторов компьютеров определять, какие приложения могут запускаться, а какие будут блокироваться.

Необходимо заметить, что MS Windows 7 выпущено в двух вариантах 32-х и 64-х битных. 32-х битный вариант является, пожалуй, данью совместимости, т.к. с массовым переходом 64-х битных процессоров на рынке дальнейший переход всех ОС на 64-х битную разрядность очевиден. Следующая версия данного семейства будет называться MS Windows 8 и ее выход планируется в 2012 году. Однако по ней информации системного плана пока мало.

При рассмотрении всей тенденции развития семейства MS Windows можно выделить следующие основные части.

Сторонние приложения, как правило, работают на 10% – 15% медленнее под новой версией ОС семейства MS Windows, чем под предыдущей.

Каждая новая версия оказывается, как правило, более требовательная к компьютерным ресурсам, чем старая и требует перехода на самый последний уровень компьютерной техники.

Надежность и безопасность ОС с каждой новой версией улучшается. Однако т.к. семейство MS Windows доминирует на рынке общих компьютерных систем, то она в первую очередь становиться мишенью для кибератаки.

Каждый переход на новую версию ядра (систему) сопровождается наличием существенного количества ошибок в системе. После накопления критического количества ошибок и их исправлений фирма Microsoft выпускает либо новую версию, например, MS Windows Vista MS Windows 7 или сервис паки. Поэтому переход на новою версию оптимален после данных исправлений.

Исходный код ОС семейства MS Windows является полностью закрытым. Поэтому ее использование в ответственных задачах ЯЭ в свете соображений о компьютерной

58