пространстве объектов, информацию защиты (при открытии объекта
выполняется определенная проверка), а также список процессов, у
которых есть открытые дескрипторы к данному объекту (если
установлен определенный флаг отладки).
Каждый заголовок объекта также содержит поле цены квоты,
представляющей собой плату, взимаемую с процесса за открытие
объекта. Если файловый объект стоит один пункт, а процесс
принадлежит к заданию, у которого есть 10 пунктов квоты, то
суммарно все процессы этого задания могут открыть не более 10 фай-
лов. Таким образом, для объектов каждого типа могут
реализовываться ограничения на ресурсы.
Объекты занимают важный ресурс – участки виртуального
адресного пространства ядра – поэтому, когда объект более не нужен,
он должен быть удален, а его адресное пространство возвращено
системе. Для этого в заголовке каждого объекта содержится счетчик
ссылок на объект. Этот счетчик увеличивается на единицу каждый
раз, когда объект открывается, и уменьшается на единицу при
закрытии объекта. Когда значение счетчика уменьшается до 0, это
означает, что никто более не пользуется этим объектом. Когда объект
открывается или освобождается компонентом исполняющей системы,
используется второй счетчик, даже если настоящий дескриптор при
этом не создается. Когда оба счетчика уменьшаются до 0, это
означает, что этот объект более не используется ни одним пользо-
вателем и ни одним исполняющим процессом, то есть объект может
быть удален, а его память освобождена.
Менеджеру объектов бывает необходимо получать доступ к
динамическим структурам данных (объектам), но он не единственная
часть исполняющей системы, которой это нужно. Другим частям
исполняющей системы также бывает нужно динамически получать на
время участки памяти. Для этого исполняющая система содержит два
пула в адресном пространстве ядра: для объектов и для других
динамических структур данных. Один пул является выгружаемым, а
другой невыгружаемым (фиксированным в памяти). Объекты,
обращения к которым часты, хранятся в невыгружаемом пуле.
Объекты, обращения к которым редки, например ключи реестра и
некоторая информация, относящаяся к безопасности, хранятся в
выгружаемом пуле. Когда памяти не хватает, этот пул может быть
выгружен на диск и загружен обратно по страничному прерыванию. В
Пример практической реализации
операционной системы: Windows 2000