Архитектурные модули Windiws NT
Как показано на следующем рисунке ,Windows NT представляет из семодульную (более совершенную ,чем монолитная )операционную систему ,которая состоит из отдельных взаимосвязанных относительно простых модулей. Основными модулями Windows NT являются (перечислены в порядке следования от нижнего уровня архитектуры к верхнему ) : уровень аппаратных абстракций HAL (Hardware Abstraction Layer ) ,ядро (Kernel ) , исполняющая система (Executive) ,защищенные подсистемы (protected subsystems) и подсистемы среды (environment subsystems ).
Краткое описание модульной структуры Windows NT представлено далее .Дальнейший материал посвящён детальному рассмотрению каждого из компонентов Windows NT ,начиная с уровня аппаратных абстракций HAL ,который распологается между аппаратными средствами компьютера и остальной частью операционной системы .
Уровень аппаратных абстракций
Уровень аппаратных абстракций ( HAL ) представляет собой создаваемый производителями аппаратных средств слой программного обеспечения, который скрывает (или абстрагирует ),особенности и различия аппаратуры от верхних уровней операционной системы .Таким образом, благодаря обеспечиваемому HALом фильтру ,различные аппаратные средства выглядят аналогично с точки зрения операционной системы ; снимается необходимость специальной поднастройки операционной системы под используемое оборудование.
При создании уровня аппаратных абстракций ставилась задача подготовки процедур ,которые позволяли бы единственному драйверу конкретного устройства поддерживать функционирование этого устройства для всех платформ . HAL ориентирован на большое число разновидностей аппаратных платформ с однопроцессорной архитектурой ; таким образом для каждого из аппаратных вариантов не требуется отдельной версии операционной системы.
Процедуры HAL называются как средствами операционной системы (включая ядро) , так и драйверами устройств .При работе с драйверами устройств уровень аппаратных абстракций обеспечивает поддержку различных технологий ввода - вывода (вместо традиционной ориентации на одну аппаратную реализацию или требующей значительных затрат адаптации под каждую новую аппаратную платформу).
Уровень аппаратных абстракций позволяет также “скрывать” от остальных уровней операционной системы особенности аппаратной реализации симметричных мультипроцессорных систем.
Ядро
Ядро (Kernel) является Усердцем Ф Windows NT и работает в тесном контакте с уровнем аппаратных абстракций . Этот модуль , в первую очередь, занимается планированием действий компьютерного процессора . В случае если компьютер содержит несколько процессоров , ядро синхронизирует их работу с целью достижения максимальной производительности системы.
Ядро осуществляет диспетчеризацию нитей управления (threads ,иногда называются подзадачами ,ответвлениями или потоками ), которые являются основными объектами в планируемой системе .Нити управления определяются в контексте процесса ;процесс включает адресное пространство , набор доступных процессу объектов и совокупность выполняемых в контексте процесса нитей управления . Объектами являются управляемые операционной системой ресурсы.
Ядро производит диспетчеризацию нитей управления таким образом, чтобы максимально загрузить процессоры системы и обеспечить первоочередную обработку нитей с более высоким приоритетом. ( Всего существует 32 значения приоритета, которые сгруппированы в два класса приоритетов :real-time и variable ).Подобный подход позволяет достичь максимальной эффективности операционной системы.
Под компоненты исполняющей системы , такие как диспетчер ввода-вывода и диспетчер процессов , используют ядро для синхронизации действий .Они также взаимодействуют с ядром для более высоких уровней абстракции ,называемых объектами ядра ;некоторые из этих объектов экспортируются внутри пользовательских вызовов интерфейса прикладных программ (API).
Ядро управляет двумя типами объектов.
Управляющие объекты включают в себя асинхронные вызовы процедур, прерывания ,уведомления и состояния источника питания ,процессы и профили (asynhcronous procedure calls , interupts ,power notifies, power statuses,processes ,profiles).
Исполняющая система Windows NT
Исполняющая система ( Executive ) , в состав которой входит ядро и уровень аппаратных абстракций HAL , обеспечивает общий сервис системы, который могут использовать все подсистемы среды . Каждая группа сервиса находится под управлением одной из отдельных составляющих исполняющей системы:
Монитор безопасности совместно с процессором входа в систему ( Logon ) и защищёнными подсистемами реализует модель безопасности Windows NT.
Верхний уровень исполняющей системы называется системным сервисом (System Services ) . Показанный на следующем рисунке системный сервис представляет собой интерфейс между подсистемами среды пользовательского режима и привилегированным режимом.
Диспетчер кэша
Архитектура ввода - вывода содержит единственный диспетчер кэша (Cache Manager),который осуществляет кэширование для всей системы ввода - вывода .Кэширование (Caching) - метод ,используемый файловой системой для увеличения эффективности .Вместо непосредственной записи и считывания с диска ,часто используемые файлы временно сохраняются в кэш-памяти; таким образом, работа с этими файлами выполняется в памяти . Операции с данными ,находящимися в памяти , производятся значительно быстрее операций с данными на диске.
Диспетчер кэша использует модель отображения файла,которая интегрированна с диспетчером виртуальной памяти Windows NT .Диспетчер кэша обеспечивает службу кэширования для всех файловых систем и сетевых компонентов ,функционирующих под управлением диспетчера ввода - вывода. В зависимости от объёма доступной оперативной памяти диспетчер кэша может динамически увеличивать или уменьшать размер кэша .Когда процесс открывает файл ,который уже находился в кэше ,диспетчер кэша просто копирует данные из кэша в виртуальное адресное пространство.
Диспетчер кэша поддерживает службы типа ленивой записи (lazy write) и ленивой фиксации (lazy commit), которые могут значительно увеличить эффективность файловой системы . В процессе ленивой записи изменения регистрируются в кэше файловой структуры ,обеспечивающем более быстрый доступ .Позднее ,когда загрузка центрального процессора снижена , диспетчер кэша заносит изменения на диск .Ленивая фиксация подобна ленивой записи .Вместо немедленной маркировки транзакции как успешно завершившейся ,переданная информация кэшируется и позднее в фоновом режиме записывается в журнал файловой системы .
Драйверы файловой системы
В архитектуре ввода - вывода Windows NT управление драйверами файловой системы осуществляет диспетчер ввода - вывода . Windows NT допускает использование множества файловых систем , включая существующие файловые системы типа FAT . Для обеспечения совместимости снизу вверх с операционными системами MS-Dos , Windows 3.x и OS/2 , Windows NT поддерживает файловые системы FAT и HPFS.
Кроме того ,Windows NT также поддерживает NTFS - новую файловую систему ,разработанную специально для использования с Windows NT . NTFS обеспечивает множество возможностей , включая средства восстановления файловой системы , поддержку Unicode ,длинных имён файлов и поддержку для POSIX.
Архитектура ввода - вывода Windows NT не только поддерживает традиционные файловые системы, но и обеспечивает функционирование сетевого редактора и сервера в качестве драйверов файловой системы . С точки зрения диспетчера ввода - вывода , нет никакой разницы между работой с файлом ,сохранённым на удалённом компьютере сети ,и работой с файлом на локальном жёстком диске. Редиректоры и серверы могут быть загружены и выгружены динамически ,так же как и любые другие драйверы ;на одном компьютере может одновременно находиться большое число редиректоров и серверов .
Сетевые драйверы