Объекты Windows 2000


 

Устройство операционной системы W2K в значительной мере основано на объектно-ориентированных концепциях. Этот подход способствует совместному использованию ресурсов и данных различными процессами, а также защите ре­сурсов от несанкционированного доступа. Операционная система W2K использу­ет следующие объектно-ориентированные концепции.

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

Классы объектов и экземпляры.Класс объекта представляет собой шаблон,
в котором перечислены его атрибуты и сервисы, а также определены неко­торые его характеристики. При необходимости операционная система мо­жет создавать экземпляры объектов класса. Например, имеется класс одиночных процессов, объектом которого является текущий процесс. Такой подход упрощает создание объектов и управление ими.

Наследование.Этот механизм не поддерживается на уровне пользователя, но в
некоторой степени поддерживается на уровне исполнительной системы. Например, объекты-каталоги являются примерами объектов-контейнеров, одним из
свойств которых является то, что содержащиеся в них объекты могут наследо­вать свойства контейнеров. Например, предположим, что у нас имеется каталог
файловой системы с установленным флагом сжатия. В таком случае у всех
файлов, создаваемых в этом каталоге, будет установлен этот флаг.

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

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

Этот диспетчер отвечает за создание и удаление объектов, нужных для работы приложений, а также за предоставление доступа к сервисам и данным объектов.

Каждый объект исполнительной системы (иногда эти объекты называются объектами ядра, чтобы отличать их от объектов пользовательского уровня, не имеющих отношения к исполнительной системе) находится в области памяти, выделяемой ядром, доступ к которой имеет только ядро. Некоторые элементы структуры данных присущи объектам всех типов (например, имена объектов, параметры безопасности, счетчик использований). С другой стороны, каждый отдельный тип объектов имеет свои специфические элементы (например, при­оритет потока объекта). Структуры данных объектов ядра доступны только через ядро; приложение не может ни размещать в памяти эти структуры данных, ни непосредственно считывать или записывать в них информацию. Вместо этого приложения манипулируют объектами опосредованно, через набор функций для работы с объектами, которые поддерживаются исполнительной системой. Когда создается объект для какого-нибудь приложения, последнему возвращается де­скриптор созданного объекта, который, по сути, является указателем на объект. Впоследствии дескриптор объекта может использоваться любым потоком этого процесса при вызове функций Win32, работающих с объектами.

С объектами может быть связана информация о безопасности, представлен­ная в виде дескриптора безопасности (Security Descriptor — SD). Эта информа­ция используется для ограничения доступа к объекту. Например, процессом мо­жет быть создан объект, являющийся именованным семафором, открывать и ис­пользовать который будет позволено лишь некоторым пользователям. В дескрипторе защиты этого семафора могут быть перечислены пользователи, ко­торым разрешен (или запрещен) к нему доступ, а также тип разрешенного дос­тупа (для чтения, записи, изменения и т.д.).

В операционной системе W2K объекты могут быть именованными или не­именованными. Если при работе процесса создается неименованный объект, то диспетчер объектов возвращает дескриптор этого объекта. Впоследствии обра­титься к этому объекту можно будет только через его дескриптор. У именован­ного объекта есть имя, с помощью которого другие процессы могут получить его дескриптор. Например, если нужно, чтобы процесс А выполнялся синхронно с процессом В, в нем можно создать объект-событие, а затем передать его имя процессу В, в котором это событие будет использовано для синхронизации. Од­нако если нужно синхронизовать два потока одного и того же процесса А, то в нем можно создать неименованный объект-событие, потому что другие процессы не должны ничего о нем знать.

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

Объекты управления. Объекты этого типа используются для управления
операциями микроядра, не связанными с диспетчеризацией и синхрониза­цией. Объекты управления микроядра перечислены в табл. 2.6.

Объекты диспетчера. Используются для диспетчеризации и синхронизации
операций системы. Эти объекты описаны в главе 6, "Взаимоблокировка и
голодание".

Таблица 2.6. Объекты управления микроядра NT [MS96]

 

Асинхронный Используется для прерывания выполнения определенного потока и

вызов процедуры вызова процедуры в указанном режиме процессора

Прерывание Используется для связи источника прерывания с программой обслужива

ния прерывания посредством записи из таблицы диспетчеризации преры­ваний (Interrupt Dispatch Table — IDT). Такая таблица, используемая для диспетчеризации прерываний, имеется у каждого процессора

Процесс Представляет собой виртуальное адресное пространство и управляющую

информацию, которые необходимы для выполнения набора потоков. В процессе содержится указатель на карту адресов, список готовых к вы­полнению потоков, список всех потоков процесса, совокупное время вы­полнения всех потоков процесса, а также базовый приоритет

Профиль Используется в качестве меры при распределении времени выполне-

ния в пределах блока кода. Профиль может быть определен как для кода пользователя, так и для кода системы

 

 

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

 



Дата добавления: 2016-06-05; просмотров: 1699;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.