→ Пошук по сайту       Увійти / Зареєструватися
Знання Архитектура пк ДИСПЕТЧЕР ОБЪЕКТОВ И КОНТРОЛЬ ДОСТУПА Объекты исполнительной системы NT

Использование объектов

Исполнительная система NT реализует два типа объектов: объекты исполнительной системы (executive object) и объекты ядра (kernel object). Объекты исполнительной системы представляются различными компонентами исполнительной системы NT. Они доступны программам пользовательского режима (защищенным подсистемам) посредством базовых сервисов NT и могут создаваться и использоваться как подсистемами, так и исполнительной системой NT.

Объекты ядра — это более примитивный набор объектов, реализованный ядром NT. Эти объекты невидимы коду пользовательского режима, а создаются и используются только внутри исполнительной системы NT. Объекты ядра обеспечивают фундаментальные функции, такие как возможность изменять планирование в системе, которые могут выполняться только самым низким уровнем ОС — ядром. Многие объекты исполнительной системы содержат (инкапсулируют) один или несколько объектов ядра. На данный момент мы будем иметь дело только с типами объектов, видимыми в режиме пользователя, которые перечислены в табл. 3-1 вместе с определяющими их компонентами исполнительной системы.


Таблица 3-1. Объекты исполнительной системы

Тип объекта Реализующий компонент Что представляет собой
Процесс Диспетчер процессов Один вызов программы, включая адресное пространство и ресурсы, необходимые для ее исполнения
Поток Диспетчер процессов Исполняемая сущность внутри процесса
Секция Диспетчер памяти Область совместно используемой памяти
Файл Диспетчер ввода-вывода Образец открытого файла или устройства ввода-вывода
Порт Механизм LPC Место назначения сообщений, пересылаемых между процессами
Маркер доступа Система защиты Закодированный идентификатор, содержа­щий информацию о правах доступа зарегистрировавшегося в системе пользователя
Событие Вспомогательные сервисы исполнительной системы Объявление о том, что произошло системное событие
Пара событий Тоже Уведомление о том, что специальный по­ток клиента скопировал сообщение серве­ру Win32 или наоборот (используется только подсистемой Win32)
Мутант2 Тоже Механизм обеспечения взаимного исклю­чения для сред Win32 и OS/2
Семафор Тоже Счетчик, регулирующий число потоков, которые могут использовать некоторый ресурс
Таймер* Тоже Счетчик времени
Каталог объектов Диспетчер объектов Хранилище в памяти для имен объектов
Символическая связь Тоже Механизм косвенной ссылки на имя объекта
Профиль Ядро Механизм, позволяющий оценить распределение времени исполнения внутри блока ко­да (для оптимизации производительности)
Параметр реестра Диспетчер конфигурации Индексный ключ для ссылки на записи в базе данных конфигурации Windows NT

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

Данная глава посвящена объектам исполнительной системы, т.е. тем, которые реализуются исполнительной системой NT. Их не следует путать с объектами, доступ к которым предоставляется прикладным программам посредством API Win32, POSIX или OS/2.


2 Имя мутант имеет интересную историю. В начале разработки Windows NT Дэйв Катлер создал объект ядра — мьютекс, реализующий низкоуровневое взаимное исключение. Позднее он обнаружил, что OS/2 требует для взаимного исключения версии семафора, имеющей дополни-тельную семантику, которую Дэйв посчитал "повреждающей рассудок" и которая оказалась не-совместимой с первоначальным объектом (конкретно, поток мог покинуть объект и оставить его в недоступном состоянии). Тогда Дэйв создал версию мьютекса для OS/2 и дал ей имя мутант. Позднее он изменил объект-мутант, чтобы устранить зависимость от OS/2 и дать возможность использовать этот объект системе Win32. В API Win32 модифицированный объект называется мьютекс, но в базовых сервисах сохранилось имя мутант.

* В Windows NT версии 3.51 Service Pack 3 добавлен новый объект — ожидающий таймер. Подробнее см. сноску в следующей главе.

Файловая модель

Для прикладного программиста Windows NT выглядит или как Windows, или как MS-DOS, или как POSIX, или как OS/2. Только системным программистам, которые пишут подсистему среды, файловую систему, базовый драйвер уст-ройства или другую специализированную программу, приходится изучать объекты исполнительной системы и непосредственно их использовать.

Объектная модель

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

загрузка...
Сторінки, близькі за змістом