- •Общие сведения, ос 90-х годов.
- •Рабочие станции
- •Цели проекта Windows nt: расширяемость и переносимость.
- •Расширяемость
- •Переносимость
- •Цели проекта Windows nt: надежность, совместимость и производительность.
- •Совместимость
- •Производительность
- •Модели Windows nt: клиент-сервер.
- •Объектная модель. Симметричная мультипроцессорная обработка.
- •Защищенные подсистемы. Исполнительная система.
- •Исполнительная система
- •Основные понятия: сессия регистрации, подсистемы среды.
- •Сессия регистрации
- •Подсистемы среды
- •Базовые сервисы: объекты, объекты в памяти.
- •Объекты
- •Объекты размещаются в памяти ос.
- •Ввод-вывод и файловые системы
- •Интернационализация, регионы, Unicode.
- •Интернационализация
- •Регионы
- •Структурная обработка исключений.
- •Удержание объектов
- •Учет использования ресурсов
- •Методы объектов.
- •Защита объектов. Маркеры доступа.
- •Маркеры доступа
- •Списки контроля доступа. Общий принцип работы.
- •Как все это работает вместе
Исполнительная система
Исполнительная система NT (NT executive) — это часть Windows NT, исполняющаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда компонентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только компонентам исполнительной системы. Эти интерфейсы изображены на рис. 2-7.
Хотя исполнительная система и предоставляет системные сервисы, похожие на API, она фундаментально отличается от подсистем среды. Исполнительная система не исполняется постоянно в собственном процессе, а работает в контексте некоторого существующего процесса, завладевая выполняющимся потоком, когда происходит важное системное событие. Например, когда поток вызывает системный сервис и перехватывается процессором, или когда внешнее устройство вызывает прерывание процессора, ядро получает управление потоком, который выполнялся процессором. Оно вызывает соответствующий системный код для обработки события, выполняет его и затем возвращает управление коду, выполнявшемуся перед прерыванием.
Компоненты исполнительной системы поддерживают независимость друг от друга, для чего каждый из них создает необходимые системные структуры данных и работает с ним. Так как интерфейсы между компонентами тщательно контролируются, можно полностью удалить некоторый компонент и заменить другим, работающим иначе. Если новый компонент корректно реализует все системные сервисы и внутренние интерфейсы, то ОС работает как прежде. Сопровождение ОС также упрощается, поскольку компоненты исполнительной системы NT взаимодействуют предсказуемым образом.
Ниже перечислены различные компоненты исполнительной системы и их области ответственности:
• Диспетчер объектов. Создает, поддерживает и уничтожает объекты исполнительной системы NT — абстрактные типы данных, представляющие системные ресурсы.
• Справочный монитор защиты. Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения.
• Диспетчер процессов. Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
• Средство локального вызова процедур (LPC). Передает сообщения между клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC — это гибкая, оптимизированная версия удаленного вызова процедур (remote procedure call, RPC), средства коммуникации между клиентскими и серверными процессами по сети, являющегося промышленным стандартом.
Рис. 2-7. Системные интерфейсы.
• Диспетчер виртуальной памяти. Реализует виртуальную память (virtual memory, VM) — схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов. Если память используется слишком интенсивно, то диспетчер виртуальной памяти переносит содержимое выбранного блока памяти на диск и загружает обратно, когда он снова понадобится. Такая практика называется подкачкой страниц (paging).
• Ядро. Реагирует на прерывания и исключения, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы NT для реализации объектов более высокого уровня.
• Система ввода—вывода. Состоит из группы компонентов, отвечающих за выполнение ввода-вывода на разнообразные устройства. В систему ввода-вывода входят следующие подкомпоненты:
• Диспетчер ввода-вывода. Реализует средства ввода-вывода, не зависящие от типа устройства, и устанавливает модель для ввода-вывода исполнительной системы NT.
• Файловые системы. Драйверы NT, принимающие запросы файлового ввода-вывода и транслирующие их в запросы, привязанные к конкретному устройству.
• Сетевой редиректор (network redirector) и сетевой сервер (network server). Драйверы файловой системы, передающие удаленные запросы ввода-вывода на машины в сети и принимающие от них такие запросы.
• Драйверы устройств исполнительной системы NT Низкоуровневые драйверы, напрямую работающие с оборудованием для записи вывода или считывания ввода с физических устройств или с сети.
• Диспетчер кэша. Повышает производительность файлового ввода-вывода, сохраняя информацию, считанную с диска последней, в системной памяти. Диспетчер кэша использует средство подкачки страниц диспетчера виртуальной памяти для автоматической записи информации на диск в фоновом режиме.
• Слой абстрагирования от оборудования (HAL). Помещает кодовую прослойку между исполнительной системой NT и аппаратной платформой, на которой работает ОС. Скрывает аппаратно-зависимые детали, такие как интерфейсы ввода-вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того, чтобы обращаться к аппаратуре непосредственно, исполнительная система NT сохраняет максимальную переносимость, обращаясь к функциям. HAL , когда ей нужна платформенно-зависимая информация.
Windows NT — это переносимая ОС, разработанная так, чтобы ограничить объем кода, который зависит от конкретной архитектуры оборудования. Тем не менее, некоторый объем такого кода необходим; он располагается на самых нижних уровнях ядра NT плюс небольшие порции в диспетчере виртуальной памяти. Эти компоненты, особенно ядро NT, скрывают процессорные различия от остальной части ОС.
Код, зависящий от платформы, — т. е. от способа реализации некоторым производителем,— располагается в HAL и поставляется самими производителями компьютеров. Драйверы устройств содержат, конечно, код, зависящий от устройства, но избегают кода, зависящего от процессора или платформы, вызывая процедуры ядра NT и HAL.
