Обзор архитектуры Windows 3.x,Windows 95,OS2 Warp,Windows NT

  d8ef8794     

WINDOWS NT WORKSTATION


Windows NT Workstation 3.51 по существу представляет собой операционную систему сервера, приспособленную для использования на рабочей станции. Этим обусловлена архитектура, в которой абсолютная защита прикладных программ и данных берет верх над соображениями скорости и совместимости. Чрезвычайная надежность Windows NT обеспечивается ценой высоких системных затрат, поэтому для получения приемлемой производительности необходимы быстродействующий ЦП и по меньшей мере 16-Мбайт ОЗУ. Как и в OS/2 Warp, в системе Windows NT безопасность нижней памяти достигается за счет отказа от совместимости с драйверами устройств реального режима. В среде Windows NT работают собственные 32-разрядные NT-прикладные программы, а также большинство прикладных программ Windows 95. Так же, как OS/2 Warp и Windows 95, система Windows NT позволяет выполнять в своей среде 16-разрядные Windows- и DOS-программы.

Схема распределения памяти Windows NT разительно отличается от распределения памяти систем Windows 95 и OS/2 Warp. Собственные прикладным программам выделяется 2-Гбайт особого адресного пространства, от границы 64 Кбайт до 2 Гбайт (первые 64 Кбайт полностью недоступны). Прикладные программы изолированы друг от друга, хотя могут общаться через буфер обмена Clipboard, механизмы DDE и OLE.

В верхней части каждого 2-Гбайт блока прикладной программы размещен код, воспринимаемый прикладной программой как системные библиотеки DLL кольца 3. На самом деле это просто заглушки, выполняющие перенаправление вызовов, называемые DLL клиентской стороны (client-side DLLs). При вызове большинства функций API из прикладной программы библиотеки DLL клиентской стороны обращаются к локальным процедурам (Local Process Communication - LPC), которые передают вызов и связанные с ним параметры в совершенно изолированное адресное пространство, где содержится собственно системный код. Этот сервер-процесс (server process) проверяет значения параметров, исполняет запрошенную функцию и пересылает результаты назад в адресное пространство прикладной программы. Хотя сервер-процесс сам по себе остается процессом прикладного уровня, он полностью защищен от вызывающей его прикладной программы и изолирован от нее.


Между отметками 2 и 4 Гбайт расположены низкоуровневые системные компоненты Windows NT кольца 0, в том числе ядро, планировщик потоков и диспетчер виртуальной памяти. Системные страницы в этой области наделены привилегиями супервизора, которые задаются физическими схемами кольцевой защиты процессора. Это делает низкоуровневый системный код невидимым и недоступным по записи для программ прикладного уровня но приводит к падению производительности во врем переходов между кольцами.

Для 16-разрядных прикладных Windows-программ Windows NT реализует сеансы Windows on Windows (WOW). Как и OS/2 Warp, Windows NT дает возможность выполнять 16-разрядные программы Windows индивидуально в собственных пространствах памяти или совместно в разделяемом адресном пространстве. Почти во всех случаях 16- и 32-разрядные прикладные программы Windows могут свободно взаимодействовать, используя OLE (при необходимости через особые процедуры thunk) независимо от того, выполняются они в отдельной или общей памяти. Собственные прикладные программы и сеансы WOW выполняются в режиме вытесняющей многозадачности, основанной на управлении отдельными потоками. Множественные 16-разрядные прикладные программы Windows в одном сеансе WOW выполняются в соответствии с кооперативной моделью многозадачности. Windows NT может также выполнять в многозадачном режиме несколько сеансов DOS. Поскольку Windows NT имеет полностью 32-разрядную архитектуру, не существует теоретических ограничений на ресурсы GDI и USER.


Содержание раздела