Имена объектов
Важное условие для создания множества объектов — эффективная система учета. Для учета диспетчеру объектов нужна следующая информация:
• способ, которым можно было бы отличать один объект от другого;
• метод поиска и получения конкретного объекта.
Первое требование реализуется за счет присвоения имен объектам. Это расширение обычной для большинства операционных систем функциональности, в которых отдельным системным ресурсам, например файлам, каналам или блокам разделяемой памяти, можно присваивать имена. Исполнительная система, напротив, позволяет именовать любой объект, представляющий ресурс. Второе требование (поиск и получение объектов) также реализуется через именование объектов. Если диспетчер хранит объекты в соответствии с их именами, он может быстро найти объект по его имени.
Имена объектов отвечают и третьему требованию, не упомянутому в предыдущем списке: процессам должна быть предоставлена возможность совместного использования объектов. Пространство имен объектов исполнительной системы является глобальным, видимым любому процессу в системе.
Если один процесс создает объект и помещает его имя в глобальное пространство имен, то другой процесс может открыть описатель этого объекта, указав нужное имя. Если объект не предназначен для совместного использования, процесс-создатель просто не присваивает ему имя.Для большей эффективности диспетчер объектов не ищет имя объекта при каждой попытке его использования. Поиск по имени ведется только в двух случаях. Во-первых, при создании процессом именованного объекта: перед тем как сохранить имя объекта в глобальном пространстве имен, диспетчер проверяет, нет ли в нем такого же имени. Во-вторых, открывая описатель именованного объекта, диспетчер ищет объект по имени и возвращает его описатель, который затем используется для ссылки на объект.
Диспетчер позволяет выбирать, надо ли при поиске учитывать регистр букв. Эта функциональность поддерживается POSIX и другими подсистемами окружения, в которых имена файлов чувствительны к регистру букв.Где именно хранятся имена объектов, зависит от типа объектов. B таблице 3–8 перечислены стандартные каталоги объектов, имеющиеся на всех системах под управлением Windows. Пользовательским программам видны только каталоги \BaseNamedObjects и \GLOBAL?? (\?? в Windows 2000).
Поскольку имена базовых объектов ядра вроде мьютексов, событий, семафоров, ожидаемых таймеров и разделов хранятся в одном каталоге, они не должны совпадать, даже если относятся к объектам разных типов. Это ограничение подчеркивает, насколько осторожно надо выбирать имена, чтобы они не конфликтовали с другими (используйте, например, префиксы имен в виде названия вашей компании и программного продукта).
Имена объектов глобальны в пределах компьютера (или всех процессоров на многопроцессорной системе) и невидимы через сеть. Однако метод parse диспетчера объектов позволяет получать доступ к именованным объектам, существующим на других компьютерах. Так, диспетчер ввода-вывода, предоставляющий сервисы объектов «файл», расширяет функции диспетчера объектов для работы с файлами на удаленных компьютерах. При запросе на открытие объекта «файл» на удаленном компьютере диспетчер объектов вызывает метод parse, что позволяет диспетчеру ввода-вывода перехватить запрос и направить его сетевому редиректору — драйверу, обращающемуся к файлам через сеть. Серверный код на удаленной Windows-системе вызывает диспетчер объектов и диспетчер ввода-вывода на этой системе для поиска нужного объекта «файл» и возврата данных через сеть.
ЭКСПЕРИМЕНТ: просмотр именованных базовых объектов
Список именованных базовых объектов можно просмотреть с помощью утилиты Winobj. Запустите Winobj.exe и щелкните каталог \BaseNamedObjects, как показано ниже.
Именованные объекты отображаются справа. Тип объектов обозначается следующими значками:
• «stop» — мьютексы;
• в виде микросхем памяти — разделы (объекты «проекция файла»);
• в виде восклицательного знака — события;
• похожие на светофоры — семафоры;
• в виде изогнутой стрелки — символьные ссылки.
Еще по теме Имена объектов:
- Имена и фамилии
- Имена и фамилии
- ЗАПОМИНАЙТЕ ИМЕНА ЛЮДЕЙ
- Имена, названия
- Статья 298. Незаконное проведение поисковых работ на объекте археологического наследия, уничтожение, разрушение или повреждение объектов культурного наследия
- ОБЪЕКТ: ПРИВЯЗАННОСТЬ
- ОБЪЕКТ-ЛИБИДО
- ОБЪЕКТ
- НАУКА: ОБЪЕКТ
- ОБЪЕКТ РЕФЕРЕНТНОСТИ
- Тема 6. Объекты гражданских прав
- ОБЪЕКТ СЕКСУАЛЬНЫЙ: ВЫБОР
- 2. Объект аренды.
- Тема 11. Объекты гражданских правоотношений
- ОБЪЕКТ СЕКСУАЛЬНЫЙ: ВЫБОР: ТИП