Смекни!
smekni.com

Выбор оптимальных сетевых решений на базе многозадачных операционных систем для построения компьютерной сети вуза (стр. 15 из 25)

Архитектурные модули Windows NT

Windows NT представляет из себя модульную (более совершенную, чем монолитная) операционную систему, которая состоит из отдельных взаимосвязанных относительно простых модулей. Основными мо­дулями Windows NT являются (перечислены в порядке следования от нижнего уровня архитектуры к верхнему): уровень аппаратных абстракций HAL (Hard­ware Abstraction Layer), ядро (Kernel), исполняющая система (Executive), защищенные подсистемы (protected sybsystems) и подсистемы среды (environ­ment subsystems).

Краткое описание модульной структуры Windows NT представлено в следую­щем разделе. Дальнейший материал главы посвящен детальному рассмотрению каждого из компонентов Windows NT, начиная с уровня аппаратных абст­ракций HAL, который располагается между аппаратными средствами компью­тера и остальной частью операционной системы.

· Уровень аппаратных абстракции виртуализирует аппаратные интерфейсы, обеспечивая тем самым независимость остальной части операционной системы от конкретных аппаратных особенностей. Подобный подход поз­воляет обеспечить легкую переносимость Windows NT с одной аппаратной платформы на другую. Ядро является основой модульного строения системы и координирует выполнение большинства базовых операций Windows NT. Этот компонент специальным образом оптимизирован по занимаемому объему и эффективности функционирования. Ядро отвечает за планирование выполнения потоков, синхронизацию работы нескольких процессоров, обработку аппаратных прерываний и исключительных ситуаций.

· Исполняющая система включает в свой состав набор программных конструкций привилегированного режима (kernel-mode), предоставляющих базо­вый сервис операционной системы подсистемам среды. Исполняющая система состоит из нескольких компонентов; каждая из них предназначена для поддержки определенного системного сервиса. Так, одна из компо­нент - монитор безопасности (Security Reference Monitor) -функционирует совместно с защищенными подсистемами и обеспечивает реализацию модели безопасности системы.

· Подсистемы среды представляют собой защищенные серверы пользователь­ского режима (user-mode), которые обеспечивают выполнение и поддержку приложении, разработанных для различного операционного окружения (различных операционных систем). Примером подсистем среды могут служить подсистемы Win32 и OS/2.

Уровень аппаратных абстракций

Уровень аппаратных абстракций (HAL) представляет собой создавае­мый производителями аппаратных средств слой программного обеспечения, который скрывает (или абстрагирует), особенности и различия аппаратуры от верхних уровней операционной системы. Таким образом, благодаря обес­печиваемому НАLом фильтру, различные аппаратные средства выглядят ана­логично с точки зрения операционной системы; снимается необходимость специальной подстройки операционной системы под используемое оборудо­вание.

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

Процедуры HAL вызываются как средствами операционной системы (включая ядро), так и драйверами устройств. При работе с драйверами устройств уровень аппаратных абстракций обеспечивает поддержку различных технологий ввода-вывода (вместо традиционной ориентации на родную аппаратную реализацию или требующей значительных затрат адаптации под каждую новую аппаратную платформу).

Уровень аппаратных абстракций позволяет также «срывать» от остальных уровней операционной системы особенности аппаратной реализации симметричных мультипроцессорных систем.

Ядро (Kernel) является «сердцем» Windows NT и работает в тесном контакте с уровнем аппаратных абстракций. Этот модуль, в первую очередь, занимается планированием действий компьютерного процессора. В случае если компьютер содержит несколько процессоров, ядро синхронизирует их работу с целью достижения максимальной производительности системы.

Ядро осуществляет диспетчеризацию нитей управления (threads, иногда на­зываются подзадачами, ответвлениями или потоками), которые являются ос­новными объектами в планируемой системе. Нити управления определяются в контексте процесса; процесс включает адресное пространство, набор до­ступных процессу объектов и совокупность выполняемых в контексте процесса нетей управления. Объектами являются управляемые операционной системой ресурсы.

Ядро производит диспетчеризацию нитей управления таким образом, чтобы максимально загрузить процессоры системы и обеспечь первоочередную обработку нитей с более высоким приоритетом. (Всего существует 32 значения приоритета, которые сгруппированы в два класса приоритетов: real-lime и variable). Подобный подход позволяет достичь максимальной эффективности операционной системы.

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

Ядро управляет двумя типами объектов:

· Объекты диспетчеризация (dispatcher objects) характеризуются сигнальным состоянием (signaled или nonsignaled) и управляют диспетчеризацией и синхронизацией системных операций. Эти объекты включают события, мутанты, мутэксы, семафоры, нити управления и таймеры (events, mutants, mutexes, semaphores, threads, timers).

· Управляющие объекты (control objects) используются для операций управ­ления ядра, но не воздействуют на диспетчеризацию или синхронизацию. Управляющие объекты включают в себя асинхронные вызовы процедур, прерывания, уведомления и состояли источила питания, процессы и профили (asynchronous procedure calls, interrupts, power notifies, power sta­tuses, processes, profiles).

В основном, ядро не обеспечивает проведение в жизнь какой-либо политики, т. к. за это отвечает исполняющая система. Однако ядро производит формирование политики по перемещению процессов из намята.

Ядро выполняется полностью в привилегированном режиме и неперемещаемо (nonpagable) в памяти. Программное обеспечение ядра не является выгружае­мым (preemptible), н, следовательно, для него не может производиться перек­лючение контекста (context-switched): большая часть программного обеспечения вне ядра почта всегда может быть кружена и использует переключение контекста.

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

Третьим и наиболее сложным модулем, выполняющимся в привилегированном режиме, является исполняющая система..

Исполняющая система Windows NT

Исполняющая система (Executive), в состав которой входят ядро и уровень аппаратных абстракций HAL, обеспечивает общий сервис системы, который могут использовать все подсистемы среды. Каждая группа сервиса находится пол управлением одной из отдельных составляющих исполняющей системы:

· диспетчера объектов (Object Manager):

· диспетчера виртуальной памяти (Virtual Memory Manager};

· диспетчера процессов (Process Manager)

· средств вызова локальных процедур (Local Procedure Call Facility);

· диспетчера ввода-вывода (I/O Manager);

· монитора безопасности (Security Reference Monitor). Монитор безопасности совместно с процессом входа в систему (Logon) и защищенными подсисте­мами реализует модель безопасности Windows NT.

Верхний уровень исполняющей системы называется системным сервисом (System Services). Системный сервис представляет собой интерфейс между подсистемами среды пользовательского режима и привилегированным режимом. Последующие разделы описывают назначение каждой составляющей исполняющей системы.

Диспетчер объектов

Объектами являются отдельные элементы времени выполнения, имеющие объектный тип; управление этими элементами могут производить процессы операционной системы. Тип объекта включает определенный системой тип данных, список операций, которые могут выполняться над ним (например, wait, create или cancel), и набор атрибутов объекта. Диспетчер объектов явля­ется частью исполняющей системы Windows NT и обеспечивает уннфицирован-ные правила хранения, именования и безопасности объектов.