Конспект лекций по дисциплине «Операционные системы и среды»

Вид материалаКонспект
3.Структура Windows 2000
3.1.Защищенные подсистемы
3.2.Исполнительная система
Подобный материал:
1   2   3   4   5   6   7   8

3.Структура Windows 2000


Структурно Windows 2000 можно разделить на две части: одна работает в пользо­вательском режиме (защищенные подсистемы Windows 2000), а другая — в режи­ме ядра (исполнительная система NT). Подробно структура Windows 2000 изобра­жена на рис. 2-6.

Серверы Windows 2000 называются защищенными подсистемами (protected subsystems), так как каждый из них — это отдельный процесс, память которого защищена от других процессов системой виртуальной памяти исполнительной системы NT. Так как совместное использование памяти подсистемами не реали­зуется автоматически, то коммуникации между ними осуществляются путем пе-_редачи сообщений' Сплошные линии на рис. 2-6 обозначают пути передачи сообщений между клиентом и сервером или между двумя серверами. Все сооб­щения проходят через исполнительную систему, но для простоты на рисунке это не показано.

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

3.1.Защищенные подсистемы


Термин "сервер" подразумевает, что каждая защищенная подсистема обеспечи­вает API, который могут использовать программы. Когда приложение (или дру­гой сервер) вызывает некоторую процедуру API, серверу, реализующему данную процедуру, посылается сообщение при помощи средства локального вызова процедур (local procedure call, LPC) — оптимизированного механизма исполни­тельной системы NT для локальной передачи сообщений. Сервер же посылает ответное сообщение вызывающей программе.

В Windows 2000 имеется два типа защищенных подсистем: подсистемы сре­ды (environment subsystems) и неотъемлемые подсистемы (integral subsystems). Подсистема среды — это сервер пользовательского режима, реализующий API некоторой ОС. Когда приложение вызывает функцию API, этот вызов доставля­ется посредством LPC подсистеме среды. Та исполняет вызов и возвращает ре­зультаты прикладному процессу, посылая другой LPC. Самая важная подсистема среды в Windows 2000 — это подсистема Win32, которая предоставляет прикладным программам API 32-разрядной Windows. Кроме того, подсистема среды Win32 реализует графический интерфейс поль­зователя Windows 2000 и управляет всем вводом пользователя и выводом приложений1. В Windows 2000 также имеются подсистемы среды POSIX, OS/2, 16-раз­рядной Windows и MS-DOS (две последние не показаны на рис. 2 6). Данные подсистемы предоставляют свои API, но используют для получения пользова­тельского ввода и отображения результатов подсистему Win32.

Другие защищенные подсистемы — неотъемлемые подсистемы — это сер­веры, выполняющие важные функции ОС. В процессе разработки Windows 2000 некоторые неотъемлемые подсистемы появлялись и исчезали, но одна присут­ствовала всегда: подсистема защиты. Подсистема защиты исполняется в пользо­вательском режиме и регистрирует правила контроля доступа, определенные для локального компьютера. Например, она отслеживает, какие учетные записи пользователей имеют особые привилегии, доступ к каким системным ресурсам подлежит аудиту и должны ли генерироваться сообщения или предупреждения аудита. Кроме того, подсистема защиты ведет базу данных учетных записей пользователей, содержащую идентификаторы пользователей, пароли, группы, к которым отнесен пользователь, и особые привилегии, которыми он обладает. Она также принимает регистрационную информацию пользователя и иниции­рует аутентификацию подключения пользователя к системе.

Некоторые компоненты сетевого обеспечения Windows 2000 также реализо­ваны как защищенные подсистемы. Заслуживают упоминания две из них: сервис рабочей станции и сервис сервера. Каждый из этих сервисов (services), как часто называют сетевые подсистемы, является процессом пользовательского режима, реализующим API для доступа и управления, соответственно, сетевым редирек­тором и сервером LAN Manager. Редиректор — это сетевой компонент, ответ­ственный за посылку запросов ввода-вывода по сети, если файл или устройство, к которому осуществляется обращение, не является локальным. На удаленной машине такие запросы принимаются сервером. И редиректор, и сервер LAN Manager реализованы как драйверы файловых систем — т. е. являются частью системы ввода-вывода NT, описываемой далее.

3.2.Исполнительная система


Исполнительная система NT (NT executive) — это часть Windows 2000, исполняю­щаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда ком­понентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только ком­понентам исполнительной системы. Эти интерфейсы изображены на рис. 2-7.

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

Компоненты исполнительной системы поддерживают независимость друг от друга, для чего каждый из них создает необходимые системные структуры данных и работает с ним. Так как интерфейсы между компонентами тщательно контролируются, можно полностью удалить некоторый компонент и заменить другим, работающим иначе. Если новый компонент корректно реализует все системные сервисы и внутренние интерфейсы, то ОС работает как прежде. Со­провождение ОС также упрощается, поскольку компоненты исполнительной системы NT взаимодействуют предсказуемым образом. Ниже перечислены различные компоненты исполнительной системы и их области ответственности:
  • Д
    испетчер объектов. Создает, поддерживает и уничтожает объекты ис­полнительной системы NT — абстрактные типы данных, представляю­щие системные ресурсы.
  • Справочный монитор защиты. Гарантирует выполнение политики за­щиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения.
  • Диспетчер процессов. Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
  • Средство локального вызова процедур (LPC). Передает сообщения меж­ду клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC — это гибкая, оптимизированная версия удаленного вызова процедур (remote procedure call, RPC), средства комму­никации между клиентскими и серверными процессами по сети, являю­щегося промышленным стандартом

Диспетчер виртуальной памяти. Реализует виртуальную память (vir­tual memory, VM) — схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и за­щищает это пространство от других процессов. Если память использу­ется слишком интенсивно, то диспетчер виртуальной памяти перено­сит содержимое выбранного блока памяти на диск и загружает обрат­но, когда он снова понадобится. Такая практика называется подкачкой страниц (paging).


Ядро. Реагирует на прерывания и исключения, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию и предос­тавляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы NT для реализации объектов более высокого уровня.
  • Система ввода-вывода. Состоит из группы компонентов, отвечающих за выполнение ввода-вывода на разнообразные устройства. В систему ввода-вывода входят следующие подкомпоненты:
  • Диспетчер ввода-вывода. Реализует средства ввода-вывода, не зави­сящие от типа устройства, и устанавливает модель для ввода-вывода исполнительной системы NT.
  • Файловые системы. Драйверы NT, принимающие запросы файлово­го ввода-вывода и транслирующие их в запросы, привязанные к кон­кретному устройству.
  • Сетевой редиректор (network redirector) и сетевой сервер (net­work server). Драйверы файловой системы, передающие удаленные запросы ввода-вывода на машины в сети и принимающие от них такие запросы.
  • Драйверы устройств исполнительной системы NT. Низкоуровневые драйверы, напрямую работающие с оборудованием для записи вы­вода или считывания ввода с физических устройств или с сети.
  • Диспетчер кэша. Повышает производительность файлового ввода-вывода, сохраняя информацию, считанную с диска последней, в си­стемной памяти. Диспетчер кэша использует средство подкачки страниц диспетчера виртуальной памяти для автоматической запи­си информации на диск в фоновом режиме.
  • Слой абстрагирования от оборудования (HAL). Помещает кодовую про­слойку между исполнительной системой NT и аппаратной платформой, на которой работает ОС. Скрывает аппаратно-зависимые детали, такие как интерфейсы ввода-вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того, чтобы обращаться к аппаратуре непосредственно, исполнительная система NT сохраняет максималь­ную переносимость, обращаясь к функциям HAL, когда ей нужна платформенно–зависимая информация.


Windows 2000 — это переносимая ОС, разработанная так, чтобы ограничить объем кода, который зависит от конкретной архитектуры оборудования. Тем не менее, некоторый объем такого кода необходим; он располагается на самых нижних уровнях ядра NT плюс небольшие порции в диспетчере виртуальной памяти. Эти компоненты, особенно ядро NT, скрывают процессорные различия от остальной части ОС.

Код, зависящий от платформы, — т. е. от способа реализации некоторым производителем, например, компьютера MIPS R4000 — располагается в HAL и поставляется самими производителями компьютеров. Драйверы устройств со­держат, конечно, код, зависящий от устройства, но избегают кода, зависящего от процессора или платформы, вызывая процедуры ядра NT и HAL.