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

Имена объектов

При создании большого количества объектов необходимо иметь эффективную систему их отслеживания. Для этой цели диспетчеру объектов необходимы:

  • способ отличить один объект от другого;
  • метод поиска и выборки заданного объекта.

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

Второе требование, возможность поиска объекта, также выполняется благодаря тому, что объекты имеют имена. Если диспетчер объектов хранит объекты по именам, то он может провести поиск объекта по его имени.

Имена объектов позволяют выполнить и еще одно требование — дают процессам возможность совместно использовать объекты. Пространство имен объектов исполнительной системы NT является глобальным, доступным всем процессам в системе. Один процесс может создать объект и поместить его имя в глобальное пространство имен, а другой процесс может открыть описатель данного объекта, указав его имя. Если объект не предназначен для совместного использования подобным образом, то его создателю не нужно присваивать объекту имя.

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

Имена объектов являются глобальными для данного компьютера (или для всех процессоров на многопроцессорной машине), но не видимы по сети. Однако для доступа к именованным объектам, расположенным на другой машине, диспетчер объектов предоставляет средство перехвата — так называемый метод разбора. Например, диспетчер ввода-вывода, реализующий сервисы для файловых объектов, расширяет функции диспетчера объектов для обеспечения доступа к удаленным файлам. При получении запроса на открытие удаленного файлового объекта диспетчер объектов вызывает метод разбора, что позволяет диспетчеру ввода-вывода перехватить запрос и направить его сетевому редиректору — драйверу для доступа к файлам по сети. Процесс сервера на удаленной машине Windows NT вызывает диспетчер объектов и диспетчер ввода-вывода той системы для поиска объекта и возвращения информации обратно по сети. Будущие расширения системы смогут использовать то же самое средство перехвата диспетчера объектов для управления другими удаленными объектами. (Методы описаны подробнее в разд. 3.2.3; поддержка сетей в Windows NT описана в гл. 9.)

Каталоги

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

Домены

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

Символические связи

В некоторых файловых системах (например, в некоторых системах UNIX) символическая связь дает пользователю возможность создать имя файла или каталога, которое при его использовании транслируется ОС в другое имя файла или каталога. Это простой метод неявного совместного использования файлов или содержимого каталога — путем создания перекрестной ссылки между разными каталогами в обычно иерархической структуре каталогов.

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