специальным образом оптимизирован по занимаемому объёму и эффек-
тивности функционирования .Ядро отвечает за планирование выполнения
потоков , синхронизацию работы нескольких процессоров , обработку аппа-
ратных прерываний и исключительных ситуаций .
· Исполняющая система включает в свой состав набор программных конст-
рукций привилегированного режима ( kernel - mode ) , представляющих ба-
зовый сервис операционной системы подсистемам среды . Исполняющая
система состоит из нескольких компонентов ; каждая из них предназначена
для поддержки определённого системного сервиса . Так , один из компо-
нентов - монитор безопасности (Security Reference Monitor) - функциониру-
ет совместно с защищёнными подсистемами и обеспечивает реализацию
модели безопасности системы .
· Подсистемы среды представляют собой защищённые серверы пользова-
тельского режима (user-mode) ,которые обеспечивают выполнение и под-
держку приложений ,разработанных для различного операционного окруже-
ния (различных операционных систем ) . Примером подсистем среды могут
служить подсистемы Win32 и OS/2 .
Уровень аппаратных абстракций
Уровень аппаратных абстракций ( HAL ) представляет собой создавае-
мый производителями аппаратных средств слой программного обеспечения,
который скрывает (или абстрагирует ),особенности и различия аппаратуры от
верхних уровней операционной системы .Таким образом,благодаря обеспечи-
ваемому HALом фильтру ,различные аппаратные средства выглядят аналогич-
но с точки зрения операционной системы ; снимается необходимость специ -
альной поднастройки операционной системы под используемое оборудова -
ние .
При создании уровня аппаратных абстракций ставилась задача подго-
товки процедур ,которые позволяли бы единственному драйверу конкретного
устройства поддерживать функционирование этого устройства для всех
платформ . HAL ориентирован на большое число разновидностей аппаратных
платформ с однопроцессорной архитектурой ; таким образом для каждого из
аппаратных вариантов не требуется отдельной версии операционной сис-
темы .
Процедуры HAL называются как средствами операционной системы
(включая ядро) , так и драйверами устройств .При работе с драйверами уст-
ройств уровень аппаратных абстракций обеспечивает поддержку различных
технологий ввода - вывода (вместо традиционной ориентации на одну аппа-
ратную реализацию или требующей значительных затрат адаптации под каж-
дую новую аппаратную платформу ).
Уровень аппаратных абстракций позволяет также “скрывать” от осталь-
ных уровней операционной системы особенности аппаратной реализации
симметричных мультипроцессорных систем .
Ядро
-6-
Ядро (Kernel) является “сердцем ” Windows NT и работает в тесном
контакте с уровнем аппаратных абстракций . Этот модуль , в первую очередь ,
занимается планированием действий компьютерного процессора . В случае
если компьютер содержит несколько процессоров , ядро синхронизирует их
работу с целью достижения максимальной производительности системы .
Ядро осуществляет диспетчеризацию нитей управления (threads ,иног-
да называются подзадачами ,ответвлениями или потоками ), которые являют-
ся основными объектами в планируемой системе .Нити управления определя-
ются в контексте процесса ;процесс включает адресное пространство , набор
доступных процессу объектов и совокупность выполняемых в контексте про-
цесса нитей управления . Объектами являются управляемые операционной
системой ресурсы .
Ядро производит диспетчеризацию нитей управления таким образом ,
чтобы максимально загрузить процессоры системы и обеспечить первооче-
редную обработку нитей с более высоким приоритетом . ( Всего существует
32 значения приоритета ,которые сгруппированы в два класса приоритетов :
real-time и variable ).Подобный подход позволяет достичь максимальной эф-
фективности операционной системы .
Под компоненты исполняющей системы , такие как диспетчер ввода -
вывода и диспетчер процессов , используют ядро для синхронизации дейст-
вий .Они также взаимодействуют с ядром для более высоких уровней абст-
ракции ,называемых объектами ядра ;некоторые из этих объектов экспорти-
руются внутри пользовательских вызовов интерфейса прикладных программ
(API) .
Ядро управляет двумя типами объектов .
· Объекты диспетчеризации (dispatcher objects) характеризуются сигнальным
состоянием ( signaled или nonsignaled ) и управляют диспетчеризацией и
синхронизацией системных операций .Эти объекты включают события , му-
танты ,мутэксы ,семафоры , нити управления и таймеры ( events , mutants ,
mutexes ,semaphores ,threads ,timers ).
· Управляющие объекты ( control objects ) используются для операций управ-
ления ядра , но не воздействуют на диспетчеризацию или синхронизацию .
Управляющие объекты включают в себя асинхронные вызовы процедур ,
прерывания ,уведомления и состояния источника питания ,процессы и про-
фили (asynhcronous procedure calls , interupts ,power notifies, power statuses,processes ,profiles).
Исполняющая система Windows NT
Исполняющая система ( Executive ) , в состав которой входит ядро и
уровень аппаратных абстракций HAL , обеспечивает общий сервис системы ,
который могут использовать все подсистемы среды . Каждая группа сервиса
находится под управлением одной из отдельных составляющих исполняющей
системы :
· диспетчера объектов (Object Manager)
· диспетчера виртуальной памяти (Virtual Memory Manager);
· диспетчера процессов (Process Manager)
-7-
· средства вызова локальных процедур (Local Procedure Call Facility);
· диспетчера ввода - вывода (E/O Maneger);
· мониторы безопасности (Security Reference Monitor).
Монитор безопасности совместно с процессором входа в сиситему
( Logon ) и защищёнными подсистемами реализует модель безопасности
Windows NT .
Верхний уровень исполняющей системы называется системным серви-
сом (System Services ) . Показанный на следующем рисунке системный сервис
представляет собой интерфейс между подсистемами среды пользовательско-
го режима и привилегированным режимом .
Диспетчер кэша
Архитектура ввода - вывода содержит единственный диспетчер кэша
(Cache Manager),который осуществляет кэширование для всей системы вво-
да - вывода .Кэширование (Caching) - метод ,используемый файловой систе-
мой для увеличения эффективности .Вместо непосредственной записи и счи-
тывания с диска ,часто используемые файлы временно сохраняются в кэш -
памяти ;таким образом ,работа с этими файлами выполняется в памяти . Опе-
-8-
рации с данными ,находящимися в памяти , производятся значительно быст-
рее операций с данными на диске .
Диспетчер кэша использует модель отображения файла,которая интег-
рированна с диспетчером виртуальной памяти 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 не только поддерживает тра-
диционные файловые системы ,но и обеспечивает функционирование сете-
вого редактора и сервера в качестве драйверов файловой системы . С точки
зрения диспетчера ввода - вывода , нет никакой разницы между работой с
файлом ,сохранённым на удалённом компьютере сети ,и работой с файлом на
локальном жёстком диске . Редиректоры и серверы могут быть загружены и
выгружены динамически ,так же как и любые другие драйверы ;на одном ком-
пьютере может одновременно находиться большое число редиректоров и
серверов .
Сетевые драйверы
Следующим типом драйверов ,присутствующих в качестве компонента
в архитектуре ввода - вывода ,являются сетевые драйверы .Windows NT вклю-
чает интегрированные возможности работы с сетями и поддержку для рас-
пределённых приложений .Как показано на следующем рисунке работа с се-
-9-
тями обеспечивается рядом сетевых драйверов .
Редиректоры и серверы функционируют как драйверы файловой сис-