Объекты, менеджер объектов.
Для слаженной работы системы ресурсов Windows создает объекты, управление которыми происходит с помощью менеджера объектов. Когда приложение открывает файл, создает поток или семафор, оно получает описатель объекта. Например, h Semaphore = CreateSemaphore (NULL, 0, MaxCount, “SemaphoreName”) – создается семафор и возвращается ссылка на объект. Объекты – это абстрактная концепция, которая активно используется Windows для регулирования системных ресурсов. Наличие таких объектов является достоинством ОС. Преимущества:
Объекты ядра. Поддержка объектов ядра выполняется ядро и исполнительной системой. Помимо объектов ядра существуют объекты для управления окнами (user) и графикой (gdi). Они уже реализуются подсистемой поддержки окон и графики. Ядро поддерживает базовые объекты двух видов: объекты диспетчера – события, мьютексы, семафоры, потоки ядра, таймеры и т.д.; управляющие объекты – DPC, APC, прерывания, процессы, профили и т.д. Над объектами ядра находятся объекты исполнительной системы, каждый из которых инкапсулирует один или несколько объектов ядра. Они предназначены для управления памятью, процессами и межпроцессным обменом. Экспортируются в распоряжение приложений через win32-функции. К ним относятся процесс, поток, открытый файл, семафор, мьютекс, маркер доступа и др.
Внешние отличия объектов ядра от user и gdi состоит в наличии атрибутов защиты. Объект представляет собой блок памяти в виртуальном адресном пространстве и содержит информацию об объекте в виде структуры данных. Объекты создаются в процессе загрузки и функционирования ОС и теряются при перезагрузке и выключении питания. Содержимое доступно только ядру. Структура объектов. Каждый объект имеет заголовок объекта – содержит в себе имя объекта, каталог объекта, информация о защите, квота (устанавливает ограничение на количество процессов), счетчик ссылок, список процессов с открытыми описателями объектов (ссылки на процессы, по умолчанию максимум = 230), тип объекта (содержит имя типа, виды доступа, права доступа, является ли данный объект синхронизируемым или нет, методы: открыть, закрыть, удалить, проверка прав, запрос имени). Тело объекта специфично для каждого типа объекта и содержит данные объекта. Методы вызываются диспетчером объектов при создании и уничтожении объекта, при открытии и закрытии описателя объекта, изменении параметров защиты. Кроме того, система позволяет динамически создавать новые типы объектов, при этом требуется, чтобы его метод был зарегистрирован у диспетчера. Описатели объектов. Создаются при вызове win32-функций. В случае успешного выполнения создается 64-битное описатель. При этом описатель находится в таблице описателей процессов. Из 64 разрядов 29 используется для ссылки на блок памяти объекта ядра, 3 – для флагов, 32 – для маски прав доступа. Маска прав формируется на этапе создания. По умолчанию описатель передан другому процессу быть не может, тем не менее существует возможность его дублирования. На самом деле win32-функция, создающая объект, возвращает приложению не сам описатель, а индекс в таблице описателей.
Именование объектов. У каждого объекта есть имя для поиска и установки прав доступа. Пространство имен объектов, как и пространство имен реестров и файлов, организовано в виде дерева. В качестве вершины используется объект «каталог объектов» – включает информацию, необходимую для трансляции имен объектов и указателей на сами объекты.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|