
- •[2.2] Некоторые понятия защищенного режима
- •[2.3] Основные характеристики Windows nt
- •[2.3.1] Многопоточность
- •[2.3.2] Вытесняющая многозадачность
- •[2.3.3] Виртуальная память с подкачкой страниц по требованию [2.3.4] Мультипроцессорная обработка
- •[2.3.5] Модель модифицированного микроядра
- •[2.3.6] Независимость от архитектуры процессора
- •[2.4] Исполнительная Система (The Executive)
- •[2.4.1] Диспетчер Объектов.
- •[2.4.2] Справочный монитор защиты (security reference monitor).
- •[2.4.3] Диспетчер процессов (process manager).
- •[2.4.4] Средство локального вызова процедур (lpc).
- •[2.4.5] Диспетчер памяти и Диспетчер кэша (memory manager и cache manager).
- •[2.4.6] Поддержка среды Win32 (Win32 support)
- •[2.4.7] Диспетчер Конфигурации (configuration manager)
- •[2.4.8] Диспетчер ввода-вывода (I/o manager).
- •[2.4.9] Микроядро [2.4.10] Слой Абстрагирования от Оборудования
[2.3.6] Независимость от архитектуры процессора
Микроядро и Слой Абстрагирования от Оборудования изолируют подсистемы Исполнительной Системы от конкретной архитектуры процессора.
Другой аспект независимости от архитектуры состоит в том, что правильно написанный драйвер (общающийся с внешним миром только посредством функций, предоставляемых различными компонентами исполнительной системы) переносим между всеми поддерживаемыми NT платформами на уровне исходных текстов.
Микроядро OS Windows NT обеспечивает единый интерфейс для использования ресурсов, общих для определенной аппаратной платформы, на которой может работать OS. Например, микроядро обеспечивает интерфейсы к обработке и управлению прерываниями, сохранению и восстановлению контекста потоков и мультипроцессорной синхронизации.
HAL обеспечивает поддержку и отвечает за предоставление стандартного интерфейса к ресурсам процессора, которые могут меняться в зависимости от модели внутри одного семейства процессоров. Возможность замены слоя HAL обеспечивает всем вышележащим слоям операционной системы независимость от аппаратной архитектуры.
Подсистемы окружения операционной системы NT реализованы как системы клиент/сервер. Как часть процесса компиляции, прикладные программы прикрепляются на этапе компоновки к API операционной системы, который экспортируют подсистемы окружения ОС NT . Связывание на этапе компоновки подключает прикладную программу к клиентским DLLs подсистем окружения, которые осуществляют экспорт API. Например, Win32 программа - это клиент подсистемы окружения Win32, поэтому она связана с клиентскими DLL Win32, включая Kernel32.dll, gdi32.dll, и user32.dll. Программа POSIX была бы связана с клиентской DLL POSIX , psxdll.dll.
Клиентские DLL выполняют задачи от имени их серверов, но они выполняются как часть клиентского процесса. Как показывает рис.__, в некоторых случаях пользовательская DLL может полностью реализовывать API без необходимости обращаться к помощи сервера; в других случаях, сервер должен помочь. Помощь сервера обычно необходима только, когда должна быть модифицирована общая информация, связанная с подсистемой окружения. Когда пользовательская DLL требует помощи от сервера, DLL посылает сообщение, известное как вызов локальной процедуры (LPC), на сервер. Когда сервер завершает указанный запрос и возвращает ответ, DLL может завершить функцию и возвратить управление клиенту. И пользовательская DLL и сервер могут использовать родной API, когда это необходимо. API подсистем окружения дополняют родной API дополнительными специфическими функциональными возможностями или семантикой.
[2.4] Исполнительная Система (The Executive)
Подсистемы Исполнительной Системы NT составляют наиболее существенный слой в режиме ядра, и они исполняют большую часть функций, традиционно связанных с операционными системами. В Таблице 1 перечислены подсистемы Исполнительной Системы NT, и Рисунок 8 показывает их позицию в архитектуре NT. Эти подсистемы имеют разные обязанности и названия, так что Вы могли бы подумать, что они являются различными процессами. Например, когда программа типа Microsoft Word запрашивает обслуживание операционной системы типа распределения памяти, поток управления передается от Word'а в режим ядра через родной интерфейс системных сервисов NT. Тогда обработчик системного обслуживания для распределения памяти напрямую вызывает соответствующую функцию Диспетчера Виртуальной Памяти. Запрошенное распределение памяти выполняется в контексте процесса (Word), который запросил его - нет никакого переключения контекста к другому системному процессу.
Таблица 1. Подсистемы Исполнительной Системы NT и их предназначение
Подсистема |
Предназначение |
Диспетчер Объектов (Object Manager) |
Управляет ресурсами и реализует глобальное пространство имен |
Монитор Безопасности (Security Reference Monitor) |
Реализует модель безопасности NT на основе Идентификаторов Безопасности (SID) и Списков Разграничительного Контроля Доступа (Discretionary Access Control List - DACL) |
Диспетчер Виртуальной Памяти (Virtual Memory Manager) |
Определяет адресное пространство процесса и распределяет физическую память |
Диспетчер Ввода/Вывода (I/O Manager) |
Служит интерфейсом между прикладными программами и драйверами устройств |
Диспетчер Кэша (Cache Manager) |
Реализует глобальный файловый кэш |
Средство Вызова Локальных Процедур (Local Procedure Call (LPC) Facility) |
Обеспечивает эффективную межпроцессную коммуникацию |
Диспетчер Конфигурации (Configuration Manager) |
Управляет Реестром |
Диспетчер Процессов (Process Manager) |
Экспортирует программные интерфейсы (API) процессов и потоков |
Win32 |
Реализует Win32-функции обмена сообщениями и рисования (новые для NT 4.0) |
Диспетчер Plug-and-Play (Plug-and-Play Manager) |
Уведомляет драйверы устройств о включении или отключении устройства (новые для NT 5.0) |
Диспетчер Электропитания (Power Manager) |
Контролирует состояние электропитания компьютера (появился в NT 5.0) |