→ Пошук по сайту       Увійти / Зареєструватися

Каталоги

При определении структуры имен объектов основным ограничением для разработчиков были файловые системы MS-DOS и POSIX, в которых существуют иерархические схемы имен файлов и каталогов. В исполнительной системе NT файлы и каталоги файлов представлены как объекты; таким образом, чтобы выполнять поиск файловых объектов, диспетчер объектов обязан понимать формат имен файлов. Следовательно, имеет смысл, чтобы имена объектов напо-минали имена файлов.

Имена объектов NT имеют некоторые характеристики имен файлов как MS-DOS, так и POSIX. На рис. 3-3 изображена иерархия имен объектов NT в виде дерева.

Обратите внимание, что корнем иерархического дерева является обратная косая черта ( \ ), как в MS-DOS. Листовые узлы представляют отдельные объекты, а промежуточные узлы — имена каталогов объектов. Для получения имени объекта следует начать из корня и пройти до данного объекта по всей иерархии. Как в MS-DOS и OS/2, для разделения имен при указании пути используется обратная косая черта.

Объект-каталог объектов (object directory object) — это средство поддержания изображенной выше иерархической структуры имен диспетчером объектов. Он является аналогом каталога файловой системы и содержит имена других объектов, возможно, даже других каталогов объектов. Подсистема Win32 и другие подсистемы, равно как и компоненты исполнительной системы NT, могут создавать произвольные иерархии каталогов объектов для хранения именованных объектов,

На рис. 3-4 показана обобщенная сводка важнейших, уникальных характеристик объекта-каталога объектов. На этом и других рисунках в данной книге тип объекта (object type) обозначает описываемый класс объектов. Атрибуты тела объекта (object body attributes) обозначают поля данных, хранящиеся в телах объектов этого типа. Сервисы (services) — это базовые системные сервисы, предоставляемые некоторым компонентом исполнительной системы NT для работы с атрибутами объекта. (Атрибуты из заголовка объекта не показаны, так как они одинаковы для объектов всех типов, Аналогично, универсальные объектные сервисы, описанные выше, работают с объектами всех типов).

Иерархия имен объектов

Рис. 3-3. Иерархия имен объектов.


Объект-каталог объектов

Рис. 3-4. Объект-каталог объектов5.


Сервисы создания и открытия используются для создания каталогов объектов и открытия их описателей. После того, как поток открыл описатель каталога объектов (с доступом по записи), он может создавать другие объекты и помещать их в этот каталог.

Сервис опроса позволяет просматривать список имен объектов, хранящихся в каталоге. Объект-каталог объектов содержит достаточно информации, чтобы транслировать имена объектов в указатели на сами объекты. Диспетчер объектов использует эти указатели для создания описателей объектов, которые он возвращает программам пользовательского режима.

Каталоги объектов могут создаваться как кодом ядра, так и кодом пользо-вательского режима (таким как подсистемы). Например, диспетчер ввода-вывода создает каталог с именем \Device, в котором хранятся имена объектов, представляющих устройства ввода-вывода.

Трио объектных сервисов создания, открытия и опроса часто встречается в исполнительной системе NT. Система ввода-вывода реализует сервис открытия файла для своих файловых объектов, а диспетчер объектов — сервис создания процесса для своих объектов-процессов. Хотя разработчики NT рассмат ривали возможность использования единого, виртуального сервиса создания объекта, такая процедура на С была бы очень сложной, так как набор параметров, необходимый для инициализации, к примеру, файлового объекта, заметно отличается от того, который нужен для инициализации объекта-процесса. Еди-ная процедура на С становилась бы все более сложной по мере добавления к системе новых типов объектов. Кроме того, при всяком вызове потоком объект-ного сервиса диспетчеру объектов пришлось бы нести дополнительные накладные расходы на определение типа объекта, на который ссылается описатель, и вызов соответствующей версии сервиса. По этим и другим причинам сервисы создания, открытия и опроса реализованы отдельно для каждого типа объектов.


5 Такое изображение объектов является упрощенной версией формата, предложенного Питером Кодом и Эдвардом Йордоном в книге Object-oriented Analysis (Englewood Cliffs, N. J.: Prentice-Hall, 1990).

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