В этом разделе изложены основные особенности операционной системы Windows 2000. Описание операционной системы UNIX представлено в следующем разделе. Для краткости вместо Windows 2000 мы будем употреблять название W2K.
История возникновения
Операционная система W2K появилась в результате развития операционной системы под названием MS-DOS (или PC-DOS), разработанной фирмой Microsoft для первого персонального компьютера фирмы IBM. Первая версия этой операционной системы, DOS 1.0, была выпущена в августе 1981 года и существенно отличалась от современной W2K. Операционная система DOS 1.0 содержала в себе 4000 строк исходного ассемблерного кода. Эта система работала на микропроцессоре Intel 8086 и занимала 8 Кбайт памяти.
Когда фирма IBM начала выпускать персональные компьютеры PC XT с жестким диском, фирма Microsoft разработала DOS 2.0, которая вышла в 1983 году. Данная версия операционной системы обеспечивала поддержку жесткого диска, а также иерархическую структуру каталогов. До этого на диске мог находиться только один каталог с файлами, количество которых не превышало 64. Если в эпоху дискет этого было достаточно, то с появлением жесткого диска это стало слишком сильным ограничением. Новая версия операционной системы позволяла хранить в каталогах не только файлы, но и подкаталоги, а кроме того, она предоставляла пользователю более богатый набор команд. С помощью этих команд можно было выполнять действия, которые в предыдущей версии выполнялись с помощью внешних служебных программ. Некоторые добавленные возможности были привнесены из операционной системы UNIX, например, такие, как перенаправление ввода-вывода (т.е. возможность изменять источник ввода и приемник вывода данного приложения) и печать в фоновом режиме. Постоянно находящаяся в оперативной памяти часть этой операционной системы возросла до 24 Кбайт.
Когда в 1984 году фирма IBM объявила о выпуске компьютера PC AT, Microsoft выставила на рынок программных продуктов версию DOS 3.0. Персональные компьютеры AT работали на процессоре Intel 80286, который обладал по сравнению со своим предшественником дополнительными возможностями расширенной адресации и защиты памяти. Операционной системой DOS эти возможности не использовались. Чтобы сохранять совместимость с предыдущими версиями, эта операционная система использовала процессор 80286 просто как "быстрый процессор 8086". Эта система обеспечивала поддержку новой клавиатуры и новых жестких дисков. Даже с учетом таких ограниченных возможностей потребляемая операционная память возросла до 36 Кбайт. С тех пор было сделано несколько обновлений версии 3.0, о которых следует упомянуть. Система DOS 3.1, вышедшая в 1984 году, поддерживала сети персональных компьютеров. Размер ее резидентной части не изменился, что было достигнуто за счет увеличения подкачиваемой с диска части операционной системы. DOS 3.3, выпущенная в 1987 году, обеспечивала поддержку новой серии машин фирмы IBM — PS/2. Эта версия, как и предыдущие, не использовала всех преимуществ процессора компьютера PS/2, которые предоставлялись благодаря микросхемам 80286 и 32-битовой 80386. На этой стадии минимальная резидентная часть системы, которая зависела от определенных дополнительных возможностей, возросла до 46 Кбайт.
До этого времени операционная система DOS далеко не полностью использовала возможности системы, на которой она эксплуатировалась. Появившийся процессор 80486, а впоследствии и Pentium, обеспечивали возможности и производительность, которые бесхитростная операционная система DOS была просто не в состоянии использовать. Тем временем в начале 80-х годов фирма Microsoft начала разрабатывать графический интерфейс пользователя (graphical user interface — GUI), который служил бы посредником между пользователем и DOS. Причиной этого послужило то, что фирма Microsoft решила посостязаться с фирмой Macintosh, операционная система которой на то время не имела себе равных по простоте использования. К 1990 году Microsoft разработала графический интерфейс пользователя, известный под названием Windows 3.0, который приблизился к Macintosh по своей дружественности к пользователю. Однако Windows 3.0 имел тот недостаток, что он был надстройкой поверх DOS.
Фирмой Microsoft была также предпринята неудачная попытка разработать операционную систему нового поколения совместно с фирмой IBM5. Эта операционная система должна была в полной мере использовать мощности новых микропроцессоров и в то же время быть такой же удобной в использовании, как и Windows. После этого Microsoft самостоятельно разработала операционную систему Windows NT, которая использует возможности современных микропроцессоров и обеспечивает многозадачность в однопользовательской или многопользовательской среде.
Первая версия Windows NT — 3.1 — появилась в 1993 году с таким же графическим интерфейсом пользователя, как и у Windows 3.1, другой операционной системы фирмы Microsoft, которая последовала за Windows 3.0.
Однако NT 3.1 была новой 32-битовой операционной системой, которая поддерживала приложения предыдущих версий DOS и Windows, а также приложения операционной системы OS/26.
После выпуска нескольких версий NT 3.x фирма Microsoft выпустила систему NT 4.0, которая, в основном, имела ту же внутреннюю архитектуру, что и 3.x. Наиболее заметным внешним изменением было то, что NT 4.0 предоставляла такой же интерфейс пользователя, как и Windows 98. Главное же изменение архитектуры состояло в том, что некоторые графические компоненты, которые в версиях 3.x работали как часть подсистемы Win32 в режиме приложений пользователей, были перенесены в исполняющую систему Windows NT, которая работает в режиме ядра. В результате работа этих важных функций ускорилась, что стало несомненным преимуществом. Потенциальным недостатком стало то, что теперь эти графические функции получили доступ к сервисам низкого уровня, что могло негативно повлиять на надежность операционной системы.
В 2000 году фирма Microsoft сделала еще одно важное обновление, которое теперь называется Windows 2000. Архитектура исполняющей системы и микроядра не претерпела фундаментальных изменений по сравнению с NT 4.0, однако в системе появились некоторые новые особенности. В операционную систему W2K были добавлены дополнительные сервисы и возможности, поддерживающие распределенную обработку. Главной особенностью W2K стала служба Active Directory, которая обслуживает распределенные каталоги и может на основании имен объектов выдавать информацию о них.
В заключение сделаем одно замечание о различии между W2K Server и W2K Professional. Архитектура микроядра и архитектура исполняющей системы по существу являются одинаковыми, однако в версии Server содержатся некоторые сервисы, которые необходимы для использования системы в качестве сетевого сервера.
Однопользовательская многозадачность
Операционная система W2K является типичным представителем операционных систем для микрокомпьютеров (в качестве других примеров можно привести OS/2 и MacOS). Она была вызвана к жизни необходимостью использовать возможности современных 32-битовых микропроцессоров, которые по скорости, совершенству используемого аппаратного обеспечения и емкости памяти сравнимы с теми мейнфреймами, которые выпускались еще несколько лет назад.
Одна из наиболее примечательных особенностей этих операционных систем состоит в том, что хотя они и предназначены для интерактивной работы одного пользователя, эти системы являются многозадачными. Необходимость введения многозадачности на персональных компьютерах, рабочих станциях и серверах была продиктована двумя основными качественными изменениями программного обеспечения. Во-первых, увеличение скорости и объема памяти, с которой способны работать микропроцессоры (включая возможность использования виртуальной памяти), привело к тому, что приложения стали более сложными и взаимосвязанными. Представим, например, что пользователю для создания документа понадобились текстовый редактор, программа для создания графических изображений и приложение для подготовки электронных таблиц. Если пользователь захочет создать рисунок и вставить его в текст, то ему понадобится выполнить такие шаги.
- Открыть программу для создания изображений.
- Создать нужный рисунок и сохранить его в виде файла или временно поместить в буфер обмена.
- Закрыть графическую программу.
- Открыть текстовый редактор.
- Вставить рисунок в нужное место.
Если же рисунок нужно изменить, пользователь должен будет закрыть текстовый редактор, открыть графический редактор, внести изменения в изображение, сохранить его, а затем вставить обновленное изображение назад в документ. По мере возрастания мощности и разнообразия предоставляемых пользователю сервисов и возможностей программного обеспечения однозадачная среда все больше ограничивает удобство их использования и становится все меньше дружественной по отношению к пользователю. В многозадачной среде пользователь может открыть любое приложение и оставить его открытым на время работы с другим приложением. Существенно упрощается и обмен информацией между разными приложениями.
Второй причиной появления многозадачности является увеличение объема вычислений в соответствии с моделью клиент/сервер. При этом персональный компьютер или рабочая станция (клиент) и главная вычислительная система (сервер) используются для совместного выполнения данного приложения. Обе машины связаны между собой, и за каждой из них закреплена та часть задания, которая отвечает возможностям данной машины. Модель клиент/сервер может быть реализована в локальной сети персональных компьютеров и серверов или с помощью установления непосредственной связи между системой пользователя и главной вычислительной системой. Для обработки приложения могут привлекаться один или несколько персональных компьютеров и один или несколько серверов. Используемая при этом операционная система должна поддерживать сложное сетевое аппаратное обеспечение реального времени, а также связанные с ним протоколы обмена информацией и компоненты передачи данных. К тому же операционная система должна постоянно поддерживать взаимодействие с пользователем. Приведенные выше замечания касаются версии W2K Professional. Версия Server также является многозадачной, но она может поддерживать работу нескольких пользователей, используя для связи с сервером несколько терминалов, а также предоставляя разделяемые сервисы. Используемая в качестве Internet-сервера W2K может одновременно поддерживать тысячи Web-соединений.
Архитектура
На рис. 2.13, взятом из [SOLO98b], представлена общая структура операционной системы W2K. Модульная структура этой системы делает ее довольно гибкой. Она в состоянии работать на самых разных аппаратных платформах и поддерживать приложения, написанные для разных операционных систем. К моменту написания этой книги операционная система W2K была реализована только на аппаратной платформе Pentium/x86.
Как и прочие операционные системы, W2K различает прикладные программы и программы операционной системы. К последним относятся исполняющая система, микроядро, драйверы устройств и уровень аппаратных абстракций (hardware abstraction layer — HAL), которые выполняются в режиме ядра. Программы, выполняющиеся в этом режиме, имеют доступ к системным данным и к аппаратному обеспечению. Остальные программы, работающие в пользовательском режиме, имеют ограниченный доступ к системным данным.
Организация операционной системы
В операционной системе W2K трудно однозначно выделить микроядро. Вместо этого W2K имеет структуру, которую фирма Microsoft называет модифицированной архитектурой микроядра. Как и обычной архитектуре микроядра, операционной системе W2K присуще четкое разделение на модули. Каждая функция системы управляется только одним компонентом операционной системы. Остальные ее части и все приложения обращаются к этой функции через стандартный интерфейс. Доступ к основным системным данным можно получить только через определенные функции. В принципе любой модуль можно удалить, обновить или заменить, не переписывая всю систему или стандартный интерфейс прикладного программирования (application program interface — API). Однако в отличие от систем с четко выделенным микроядром, у W2K многие функции системы, которые не входят в микроядро, выполняются в режиме ядра, что сделано с целью повышения производительности. Разработчики системы W2K обнаружили, что использование традиционного подхода с выделением микроядра приводит к тому, что многие функции, не входящие в микроядро, требуют наличия нескольких переключателей процессов или потоков, переключателей режимов, а также используют дополнительные буферы памяти.
Интерфейсы аппаратного обеспечения (шины, устройства ввода-вывода, таймеры, прямой доступ к памяти, контроллер кэша и т.п.)
Рис. 2.13. Архитектура операционной системы Windows 2000
Одной из целей создателей операционной системы W2K была ее переносимость, т.е. возможность ее использования на самых разнообразных аппаратных платформах. Для достижения этой цели большая часть исполняющей системы W2K рассматривает лежащее в основе аппаратное обеспечение с одной и той же точки зрения, используя представленную ниже структуру уровней.
Уровень аппаратных абстракций. На этом уровне формируется отображение между общими командами и ответными сигналами аппаратного обеспечения, и таковыми для конкретной платформы. Этот уровень отделяет операционную систему от особенностей используемой аппаратной платформы, благодаря чему системная шина, контроллер прямого доступа к памяти, контроллер прерываний, системные таймеры и память выглядят с точки зрения ядра одинаково. Кроме того, на этом уровне поддерживается симметричная многопроцессорность, принцип работы которой объясняется далее.
Микроядро. В микроядро входят наиболее часто используемые компоненты операционной системы. Ядро отвечает за распределение ресурсов между процессами, их переключение и синхронизацию. В отличие от остальной части исполняющей системы и от процессов, исполняемых на уровне пользователя, код микроядра не разделяется на потоки. Таким образом, это единственная часть операционной системы, которая не может быть вытеснена или выгружена на диск.
Драйверы устройств. К ним относится как файловая система, так и драйверы аппаратных устройств, которые преобразуют поступившие от пользователя вызовы функций ввода-вывода в запросы для конкретных устройств.
Исполнительная система W2K включает модули, обеспечивающие поддержку ее функций и предоставляющие работающим в пользовательском режиме программам соответствующий API. Ниже приведено краткое описание каждого из модулей исполнительной системы.
Диспетчер ввода-вывода. Поддерживает доступность для приложений устройств ввода-вывода. Кроме того, этот диспетчер отвечает за координацию работы драйверов устройств, выполняющих дальнейшую обработку. Диспетчер ввода-вывода реализует все API ввода-вывода W2K и (с помощью диспетчера объектов) следит за безопасностью и именованием устройств и файловых систем. Система ввода-вывода W2K рассматривается в главе 11, "Управление вводом-выводом и дисковое планирование".
Диспетчер объектов. Создает и удаляет объекты и абстрактные типы данных исполнительной системы W2K, а также управляет ими. Эти объекты и абстрактные типы данных используются для представления таких ресурсов, как процессы, потоки и объекты синхронизации. Диспетчер объектов обеспечивает выполнение стандартных правил поддержки объектов, именования и безопасности. Кроме того, этот диспетчер создает дескрипторы объектов, в которых содержится информация о правах доступа и указатель на объект. Объекты операционной системы W2K обсуждаются немного позже.
Монитор безопасности обращений. Обеспечивает выполнение правил прав доступа и аудита. Объектно-ориентированная модель операционной системы W2K позволяет сформировать согласованный и единообразный взгляд на безопасность фундаментальных составляющих исполняющей системы. Так, для авторизации доступа и аудита всех защищенных объектов, включая файлы, процессы, адресные пространства и устройства ввода-вывода, операционная система W2K использует одни и те же служебные программы.
Диспетчер процессов и потоков. Создает и удаляет объекты, а также следит за процессами и потоками.
Средства локального вызова процедур. В рамках одной системы устанавливают взаимосвязь между приложениями и исполняющими подсистемами по модели клиент/сервер. Этот модуль похож на средства удаленного вызова процедур, который используется при распределенной обработке данных.
Диспетчер виртуальной памяти. Отображает виртуальные адреса адресного пространства процессов на физические страницы памяти компьютера.
Диспетчер кэша. Повышает производительность файлового ввода-вывода путем хранения в основной памяти тех данных с диска, к которым недавно производилось обращение. Кроме того, обеспечивает отложенную запись на диск, некоторое время храня в памяти обновления дисковых файлов.
Графические модули. Создают оконный экранный интерфейс и управляют графическими устройствами.
Пользовательские процессы
Операционная система W2K поддерживает четыре основных типа пользовательских процессов.
Специальные процессы системной поддержки. К таким процессам относятся служебные программы, которые не вошли в операционную систему W2K, например процесс входа в систему и диспетчер сессий.
Серверные процессы. Другие сервисы W2K, такие, как журнал регистрации событий.
Подсистемы среды. Предоставляют приложениям пользователя сервисы W2K, обеспечивая таким образом среду операционной системы. Поддерживаются такие подсистемы, как Win32, POSIX и OS/2. В каждую подсистему среды входят динамически компонуемые библиотеки, преобразующие вызовы приложений пользователя в вызовы операционной системы W2K.
Приложения пользователя. Могут быть одного из пяти типов: Win32, POSIX, OS/27, Windows 3.1 или MS-DOS.
Операционная система W2K поддерживает приложения, написанные для W2K, Windows 98 и нескольких других операционных систем. Эта поддержка обеспечивается с помощью единой и компактной исполнительной системы через защищенные подсистемы среды, к которым относятся части операционной системы W2K, взаимодействующие с конечным пользователем. Каждая из подсистем является отдельным процессом, а исполнительная система защищает адресное пространство этих подсистем от вмешательства других подсистем и приложений. Защищенная подсистема предоставляет пользователю графический интерфейс или интерфейс командной строки, который определяет внешний вид и наполнение операционной системы для конечного пользователя. Кроме того, каждая защищенная подсистема обеспечивает свой API для каждой из операционных сред.
Это означает, что приложения, разработанные для определенной операционной среды, могут быть запущены W2K в неизменном виде, так как им будет предоставлен тот интерфейс операционной системы, для которого они были созданы. Так, 16-битовые приложения для операционной системы OS/2 можно с спускать в операционной системе W2K без каких-либо изменений. Более того, поскольку W2K разработана независимой от платформы (что обеспечивается наличием уровня аппаратных абстракций), защищенные подсистемы и приложения, которые они поддерживают, должны сравнительно легко переноситься с одной аппаратной платформы на другую. Во многих случаях для этого нужна лишь обычная перекомпиляция.
Наиболее важной из подсистем является Win32. Win32 — это API, который реализован как для W2K, так и для Windows 98. Некоторые возможности подсистемы Win32 недоступны в Windows 98, но все возможности, реализованные в Windows 98, идентичны возможностям, имеющимся в W2K. Некоторые основные функции, которые предоставляет программисту Win32, перечислены в табл. 2.5.
Таблица 2.5. Некоторые области API Win32 [RICH971]
Модель клиент/сервер
Структура исполнительной системы, защищенных подсистем и приложений выполнена в соответствии с вычислительной моделью клиент/сервер — общепринятой моделью распределенных вычислений, которая обсуждается в части 6, "Распределенные системы". Можно сказать, что эта структура внутренне присуща W2K.
Каждая подсистема среды и каждая исполнительная служебная подсистема реализуется в виде одного или нескольких процессов. Каждый процесс ожидает запроса клиента к одной из его служб (например, на обслуживание памяти, создание процесса и т.п.). Клиент, в роли которого может выступать программное приложение или другой модуль операционной системы, производит запрос посредством сообщения. Это сообщение передается соответствующему серверу через исполнительную систему. Сервер выполняет запрашиваемую операцию и возвращает результат или информацию о состоянии с помощью другого сообщения, которое через исполнительную систему передается клиенту
К преимуществам модели клиент/сервер можно отнести следующие.
- Благодаря этой модели упрощается исполнительная система. Можно разработать ряд API, не имеющих конфликтов или дублирования по отношению к исполняющей системе. Новые API могут быть легко добавлены в систему.
- Эта модель способствует повышению надежности. Каждый модуль, реализующий сервис исполнительной системы, запускается в виде отдельного процесса, которому отводится своя область памяти, защищенная от воздействия других модулей. Более того, клиент не может непосредственно обращаться к аппаратному обеспечению или изменять содержимое той области памяти, в которой находится исполнительная система. Сбой в работе одного из клиентов не приводит к аварийному отказу или повреждению остальной части операционной системы.
- В этой модели приложениям с помощью локальных вызовов процедур предоставляются однотипные средства обмена информацией с исполнительной системой, что не приводит к потере гибкости. Процесс передачи сообщения скрыт от клиента функциями-заглушками из динамически компонуемых библиотек. При вызове приложением API заглушка пересылает переданные при вызове параметры в виде сообщения подсистеме сервера, реализующей этот вызов.
- Эта модель является базой для распределенных вычислений. Обычно распределенные вычисления используют модель клиент/сервер, с реализацией удаленных вызовов процедур посредством распределенных модулей клиентов и серверов, а также путем обмена сообщениями между клиентами и серверами. В операционной системе W2K локальный сервер может передавать сообщение от локального приложения-клиента для обработки на удаленном сервере. Клиентам нет нужды иметь информацию о том, как обрабатываются их запросы — локально или удаленно, ведь способ обработки может изменяться динамически в зависимости от загруженности систем и от изменений конфигурации.
Потоки и симметричная многопроцессорность
Возможности поддержки потоков и поддержки симметричной многопроцессорности, о которых мы говорили в разделе 2.4, — две важные характеристики операционной системы W2K. Ниже перечислены основные возможности поддержки потоков и SMP в операционной системе W2K [CUST93].
Служебные программы операционной системы могут выполняться на любом из свободных процессоров; различные программы могут выполняться одновременно на разных процессорах.
Операционная система W2K поддерживает выполнение одного процесса, разделенного на несколько потоков. Эти потоки могут выполняться одновременно на нескольких процессорах.
Серверные процессы могут использовать несколько потоков при одновременной обработке запросов, поступающих от разных клиентов.
Операционная система W2K предоставляет механизмы совместного использования данных и ресурсов различными процессами, а также гибкие возможности обмена информацией между процессами.
Объекты Windows 2000
Устройство операционной системы W2K в значительной мере основано на объектно-ориентированных концепциях. Этот подход способствует совместному использованию ресурсов и данных различными процессами, а также защите ресурсов от несанкционированного доступа. Операционная система W2K использует следующие объектно-ориентированные концепции.
Инкапсуляция. Объект состоит из одного или нескольких полей данных (атрибутов), и одной или нескольких процедур, с помощью которых можно обрабатывать эти данные (методов, сервисов). Единственный способ получить доступ к данным объекта — запросить один из его методов (сервисов). Таким образом, данные объекта легко защитить от несанкционированного или некорректного использования.
Классы объектов и экземпляры. Класс объекта представляет собой шаблон, в котором перечислены его атрибуты и сервисы, а также определены некоторые его характеристики. При необходимости операционная система может создавать экземпляры объектов класса. Например, имеется класс одиночных процессов, объектом которого является текущий процесс. Такой подход упрощает создание объектов и управление ими.
Наследование. Этот механизм не поддерживается на уровне пользователя, но в некоторой степени поддерживается на уровне исполнительной системы. Например, объекты-каталоги являются примерами объектов-контейнеров, одним из свойств которых является то, что содержащиеся в них объекты могут наследовать свойства контейнеров. Например, предположим, что у нас имеется каталог файловой системы с установленным флагом сжатия. В таком случае у всех файлов, создаваемых в этом каталоге, будет установлен этот флаг.
Полиморфизм. Для управления объектами любого типа операционная система W2K использует общий набор функций API — в этом и заключается ее полиморфизм. Однако W2K не является полностью полиморфной, потому что в ее состав входит множество API для конкретных типов объектов.
Не все сущности операционной системы W2K являются объектами. Объекты используются в тех случаях, когда данные открыты для доступа в пользовательском режиме, а также при совместном использовании данных и ограничении доступа. Среди представляемых объектами сущностей — файлы, процессы, потоки, семафоры, таймеры и окна. Система W2K создает все типы объектов и управляет ими одним и тем же способом — с помощью диспетчера объектов.
Этот диспетчер отвечает за создание и удаление объектов, нужных для работы приложений, а также за предоставление доступа к сервисам и данным объектов.
Каждый объект исполнительной системы (иногда эти объекты называются объектами ядра, чтобы отличать их от объектов пользовательского уровня, не имеющих отношения к исполнительной системе) находится в области памяти, выделяемой ядром, доступ к которой имеет только ядро. Некоторые элементы структуры данных присущи объектам всех типов (например, имена объектов, параметры безопасности, счетчик использований). С другой стороны, каждый отдельный тип объектов имеет свои специфические элементы (например, приоритет потока объекта). Структуры данных объектов ядра доступны только через ядро; приложение не может ни размещать в памяти эти структуры данных, ни непосредственно считывать или записывать в них информацию. Вместо этого приложения манипулируют объектами опосредованно, через набор функций для работы с объектами, которые поддерживаются исполнительной системой. Когда создается объект для какого-нибудь приложения, последнему возвращается дескриптор созданного объекта, который, по сути, является указателем на объект. Впоследствии дескриптор объекта может использоваться любым потоком этого процесса при вызове функций Win32, работающих с объектами.
С объектами может быть связана информация о безопасности, представленная в виде дескриптора безопасности (Security Descriptor — SD). Эта информация используется для ограничения доступа к объекту. Например, процессом может быть создан объект, являющийся именованным семафором, открывать и использовать который будет позволено лишь некоторым пользователям. В дескрипторе защиты этого семафора могут быть перечислены пользователи, которым разрешен (или запрещен) к нему доступ, а также тип разрешенного доступа (для чтения, записи, изменения и т.д.).
В операционной системе W2K объекты могут быть именованными или неименованными. Если при работе процесса создается неименованный объект, то диспетчер объектов возвращает дескриптор этого объекта. Впоследствии обратиться к этому объекту можно будет только через его дескриптор. У именованного объекта есть имя, с помощью которого другие процессы могут получить его дескриптор. Например, если нужно, чтобы процесс А выполнялся синхронно с процессом В, в нем можно создать объект-событие, а затем передать его имя процессу В, в котором это событие будет использовано для синхронизации. Однако если нужно синхронизовать два потока одного и того же процесса А, то в нем можно создать неименованный объект-событие, потому что другие процессы не должны ничего о нем знать.
В качестве примера объектов, которые управляются операционной системой W2K, ниже приведены две категории объектов, управляемых микроядром.
Объекты управления. Объекты этого типа используются для управления операциями микроядра, не связанными с диспетчеризацией и синхронизацией. Объекты управления микроядра перечислены в табл. 2.6.
Объекты диспетчера. Используются для диспетчеризации и синхронизации операций системы. Эти объекты описаны в главе 6, "Взаимоблокировка и голодание".
Таблица 2.6. Объекты управления микроядра NT [MS96]
Операционная система W2K не является объектно-ориентированной в полном смысле. Она реализована не на объектно-ориентированном языке программирования. Структуры данных, содержащиеся в компоненте исполнительной системы, не представлены в виде объектов. Тем не менее W2K иллюстрирует мощь объектно-ориентированной технологии и ее использование при разработке операционных систем.