10.1. История развития ОС семейства Windows.
История развития версий Windows (по данным Microsoft) изображена на рис.1. Многие из версий ОС Windows имеют несколько реализаций, в частности существует 64-разрядное издание Windows XP, предназначенное для работы на 64-разрядном процессоре Intel. Для этого издания потребовалось полностью переписать HAL, переработать зависимый от ЦП код ядра, и менеджер памяти. Тем не менее была объявлена полная переносимость исходных текстов 32-разрядных приложений.
Кроме того, существует линия встроенных ОС: Windows CE (версии 2, 3, Net, Mobile), Windows XP Embedded, Windows NT Embedded. Windows Microsoft CE –, масштабируемая 32-разрядная платформа Windows для широкого диапазона устройств связи, развлечений и карманных ЭВМ различных производителей. К таким устройствам относятся: промышленные контроллеры, связные концентраторы, кассовые терминалы, бытовая техника типа камер, приборов Internet и интерактивного телевидения. Большое внимание при разработке этой ОС было уделено требованиям РВ (предсказуемость времени обработки системных вызовов и прерываний). Для разработчиков приложений предоставляется подмножество Win32, а также система программирования eMbedded Visual C++, использующая MFC.
В отличие от обычной Windows XP (NT), Windows XP (NT) Embedded имеет модульную структуру (т.е. включает двоичные файлы, ключи регистрации и другие ресурсы) и может компоноваться для формирования средств, необходимых для обеспечения функциональных возможностей конкретного устройства.
10.2. ОС Windows 98/Ме
10.2.1. Обзор реестра
Центральная информационная БД Windows 98 называется registry. Она хранит все данные по настройкам ОС и делает ее более адаптивной. В частности, данные по оборудованию и поддержки компонент Plug and Play.
|
10.2.2. Менеджер виртуальных машин
Виртуальная чашина (Virtual machine – VM) создается в оперативной памяти так, что она выглядит как отдельная ЭВМ со всеми ресурсами, имеющимися на реальном РС. Менеджер виртуальных машин (Virtual Machine Manager – VMM) предоставляет каждому приложению все необходимые ему системные ресурсы. В Windows 98 есть одна VM (System VM), на которой выполняются системные процессы. Каждое 32-разрядное приложение работает на своей VM. Все 16-разрядные приложения разделяет ресурсы одной VM. Каждое приложение MS-DOS работает на своей собственной VM (рис.2).
Virtual Machine Manager – это 32-разрядная ОС в ядре Windows 95/98. Она отвечает за создание, выполнение, контроль и завершение ВМ. VMM обеспечивает управление памятью, процессами, прерываниями. VMM взаимодействует с виртуальными устройствами (ВУ) – программными модулями, предназначенными для обработки прерываний (когда приложения пытаются обратиться в внешним устройствам и BIOS).
Сама VMM и ВУ выполняются в едином адресном пространстве с наивысшим уровнем привилегий.
VMM обеспечивает мультипотоковое приоритетное диспетчеризация. Код VMM не реентерабельный, поэтому ВУ должны синхронизовать между собой доступ к службам VMM. Для этого VMM предоставляет объекты синхронизации, такие как семафоры и события.
Virtual Machine Manager управляет ресурсами для каждого приложения и системного процесса. Virtual Machine Manager создает и поддерживает операционную среду виртуальных машин, на которых выполняются приложения и системные процессы – управляет памятью, задачами, прерываниями и защитой памяти.
Три основные функции Virtual Machine Manager:
|
-Диспетчеризация процессов
-Свопинг памяти
-Поддержку режима MS-DOS
Поддержка режима MS-DOS.Некоторые приложения MS-DOS требуют исключительного доступа к системным ресурсам. VMM создает для них специальное операционное окружение – режим MS-DOS Mode. Когда приложения MS-DOS работают в таком режиме, они монополизируют эти ресурсы и никакие другие приложения не смогут их использовать
10.2.3. Диспетчеризация и мультизадачность
Планировщик (Process Scheduler) обеспечивает приложения системными ресурсами и диспетчеризацию процессов для обеспечения мультизадачности. Process Scheduler в Windows 98 использует два метода для диспетчеризации конкурирующих процессов – кооперативную мультизадачность и приоритетную мультизадачность.
В Windows 3.1 используется метод кооперативной мультизадачности – когда приложения должны периодически опрашивать очередь сообщений и по результатам опроса – отдавать управление другим выполняющимся приложениям. Приложения, которые не проверяют очередь сообщений, могут монополизировать ЦП и не позволить выполняться другим приложениям. В целях совместимости Windows 98 поддерживает кооперативную мультизадачность для приложений Win16.
Windows 98 использует приоритетную диспетчеризацию для приложений Win32. Приложение Win32 – это процесс, состоящий из одного или нескольких потоков. Поток – часть программного кода, который может получить временной квант ЦП для выполнения, т.е. диспетчеризуются – потоки.
VMM реализует приоритетную диспетчеризацию с квантованием времени для виртуальных машин (ВМ). ВМ с исполнительным приоритетом ниже, чем наивысший, не получает управление. VMM присваивает исполнительный приоритет ВМ при ее создании. VMM и виртуальные устройства могут затем повышать и понижать исполнительные приоритеты.
|
Windows 3.1 не поддерживает мультипотоковых приложений.
10.2.4. Управление памятью
Windows 98, как и Windows NT, использует постраничную систему виртуальной памяти. Эта система базируется на линейном адресном пространстве с 32-разрядными адресами.
Каждому процессу выделяется виртуальное адресное пространство 4 Гб. Верхние 2Гб используются системой, а нижние 2 – приложением. Это виртуальное адресное пространство разделено на равные блоки или страницы.
Запрос страниц – это метод, при котором код и данные перемещаются страницами из физической памяти в область страничного обмена на диске. По мере необходимости (по запросу) эти страницы возвращаются обратно в физическую память
Memory Pager отображает вирт.адреса адресного пространства процесса в физические страницы памяти РС. Адресные пространства процессов защищены друг от друга.
Для поддержки обратной совместимости с 16-разрядной средой Windows 3.1 и MS-DOS, Windows 98 поддерживает сегментированную память (16-разрядный адрес сегмента и 16-разрядный адрес внутри сегмента – 64Кб).
Для Win32 Windows 98 использует 32-разрядную адресацию – 4Гб.
10.2.5. Виртуальные устройства
ВУ (Virtual devices) это 32-разрядный исполнимый код, управляющий внешним устройством или ПО (ROM BIOS), с тем чтобы это устройство могло бы использоваться несколькими приложениями одновременно для поддержки мультизадачности Windows. ВУ вместе с ОС обеспечивают обработку прерываний и выполнение операций в/в в интересах конкретных приложений.
ВУ представляют все периферийное оборудование обычной ЭВМ, включая контроллер прерываний, таймер, диски, последовательные и параллельные порты, клавиатура и дисплей. Если ресурсы реального устройства могут разделяться несколькими приложениями, то оно должно иметь соответствующее виртуальное устройство.
Реальные устройства вырабатывают прерывание в ходе обмена данными с ЭВМ. ВУ, как правило, перехватывают эти прерывания не напрямую, а через виртуальный контроллер прерываний (ВКП). ВУ включает в себя callback procedure, которую вызывает ВКП при наступлении аппаратного прерывания. Сallback procedure обслуживает устройство, вызвавшее прерывание, или переадресует прерывание через ВКП другому обработчику.
Взаимодействие устройств с ЭВМ обычно происходит через регистры ввода/вывода. ВУ монопольно захватывают доступ к этим регистрам и эмулируют для приложений в/в данных. Если устройство использует буферную память (например видео память для адаптеров дисплея), то ВУ захватывает эту память, чтобы предотвратить ее использование любым процессом, в т.ч. и системным.
10.2.5. Обработка прерываний
VMM контролирует обработку всех прерываний для ВУ. VMM handler получает управления всякий раз, когда происходит аппаратное или программное прерывание (если приложение пытается обратиться к внешнему устройству) или нарушение защиты памяти. VMM handler вызывает callback procedures, предусмотренные ВУ, для обработки этого прерывания или нарушения защиты следующим образом:
-Приложение в ВМ генерирует программное прерывание или выполняет операцию, приводящую к нарушению защиты.
-ОС вызывает соответствующий VMM handler (как в системной таблице соответствия).
-VMM handler передает данные о прерывании соответствующей callback procedure(s).
-Сallback procedure может либо обработать, либо игнорировать прерывание. Но в любом случае управление возвращается к VMM handler. В большинстве случаев ВУ взводит некое событие и определяет процедуру его обработки для конкретного прерывания.
-После возврата управления в VMM handler, он проверяет наличие взведенных событий. При их обнаружении VMM вызывает процедуры их обработки.
-Если callback procedure для прерывания не предусмотрено, то VMM handler передает прерывание обратно в ВМ для стандартной системной обработки.
-После завершения обработки прерывания VMM возвращает управление приложению на ВМ.
10.3. ОС Windows NT/2000
Более подробно ОС Windows NT была рассмотрена в курсе «Системы реального времени». В Windows NT существуют два режима работы: пользовательский (user) режим и привилегированный (kernel) режим.
10.3.1. Пользовательский и привилегированный режим
В непривилегированном режиме выполняются прикладные процессы (например, программы Win32) и набор защищенных подсистем. Эти подсистемы называются защищенными, потому что каждому из них предоставляется его собственное защищенное виртуальное адресное пространство (рис.4). Наиболее важная подсистема - Win32, реализующая функциональные возможности Win32.
В привилегированном режиме программы имеют прямой доступ ко всей памяти, включая адресные пространства всех процессов непривилегированного режима и к аппаратным средствам. Этот режим называется иногда режим супервизора, защищенный режим или Кольцо 0. В привилегированном режиме работает сама ОС Windows NT и ее ядро. Исполнительная система (executive) реализует такие системные вызовы со стороны защищенных подсистем, как файловые операции, ввод-вывод и механизмы синхронизации. Выделение защищенных подсистем и исполнительной системы упрощает структуру ОС и позволяет расширить возможности защищенных подсистем без модификации ядра. Ядро обеспечивает SMP, диспетчеризацию и межзадачную синхронизацию.
10.3.2. Подсистема POSIX
Другая важная подсистема - подсистема POSIX (Portable Operating System Interface). Стандарт POSIX не ограничен средой UNIX и был реализован в ряде не-UNIX операционных систем, включая Windows NT. POSIX подсистема обеспечивает стандартизованные интерфейсы и упрощает переносить приложения в Windows из других ОС, соответствующих этому стандарту.
10.3.3. Отличия Windows NT/2000 и Windows 98
Несмотря на схожесть экранных интерфейсов, ОС Windows NT и Windows 98 имеют серьезные отличия, например:
- Windows NT мобильная ОС, т.е. может работать не только с процессорами Intel, но и MIPS, Alpha, PowwerPC (Windows – Pentium, Itanium64).
- Windows NT – многопроцессорная ОС (Windows 2000 – до 32 процессоров).
- Windows NT, в отличие от Windows 98, имеет реентерабельное ядро.
- Windows NT использует ФС NTFS, Windows 98 - FAT32.
- В Windows NT усовершенствована безопасность по классу защищенности С2 США.
==================================================================================
ВОПРОСЫ:
1.Линии развития и разновидности ОС Windows
2.Функции менеджера ВМ Windows 98
3.Понятие ВМ Windows 98
4.Алгоритмы диспетчеризации Windows 98
5.Назначение и распределение ВМ в Windows 98
6.Управление памятью в Windows 98
7.Виртуальные устройства Windows 98
8.Обработка прерываний в Windows 98
9.Пользовательский и привилегированный режимы Windows NT
10. Защищенные подсистемы Windows NT
11. Отличия Windows NT и Windows 98