Конспект лекций по дисциплине «Операционные системы и среды»
Вид материала | Конспект |
3.Структура Windows 2000 3.1.Защищенные подсистемы 3.2.Исполнительная система |
- Конспект лекций по дисциплине " Операционные системы", 1459.26kb.
- Ые системы", "Операционные системы, среды и оболочки" и "Операционные системы и системное, 1294.27kb.
- Рабочая программа по учебной дисциплине Операционные системы, среды и оболочки наименование, 623.3kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
- Программа предназначена для изучения учебного курса по дисциплине "Операционные системы,, 53.62kb.
- Методические указания для выполнения Курсовой работы по дисциплине «Операционные системы», 72.86kb.
- Программа по дисциплине «Технологии программирования и операционные системы», 42.87kb.
- Вопросы к экзамену по дисциплине «Операционные системы и среды», 34.81kb.
- Экзаменационные билеты по дисциплине «операционные системы и среды», 429.29kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
3.Структура Windows 2000
Структурно Windows 2000 можно разделить на две части: одна работает в пользовательском режиме (защищенные подсистемы Windows 2000), а другая — в режиме ядра (исполнительная система NT). Подробно структура Windows 2000 изображена на рис. 2-6.
Серверы Windows 2000 называются защищенными подсистемами (protected subsystems), так как каждый из них — это отдельный процесс, память которого защищена от других процессов системой виртуальной памяти исполнительной системы NT. Так как совместное использование памяти подсистемами не реализуется автоматически, то коммуникации между ними осуществляются путем пе-_редачи сообщений' Сплошные линии на рис. 2-6 обозначают пути передачи сообщений между клиентом и сервером или между двумя серверами. Все сообщения проходят через исполнительную систему, но для простоты на рисунке это не показано.
Как уже говорилось выше, исполнительная система NT — это "двигатель" ОС, способный поддерживать любое число серверных процессов. Серверы предоставляют исполнительной системе NT пользовательские и программные интерфейсы, а также обеспечивают среды для выполнения приложений разных типов. В следующих двух разделах структура Windows 2000 рассматривается более подробно.
3.1.Защищенные подсистемы
Термин "сервер" подразумевает, что каждая защищенная подсистема обеспечивает API, который могут использовать программы. Когда приложение (или другой сервер) вызывает некоторую процедуру API, серверу, реализующему данную процедуру, посылается сообщение при помощи средства локального вызова процедур (local procedure call, LPC) — оптимизированного механизма исполнительной системы NT для локальной передачи сообщений. Сервер же посылает ответное сообщение вызывающей программе.
В Windows 2000 имеется два типа защищенных подсистем: подсистемы среды (environment subsystems) и неотъемлемые подсистемы (integral subsystems). Подсистема среды — это сервер пользовательского режима, реализующий API некоторой ОС. Когда приложение вызывает функцию API, этот вызов доставляется посредством LPC подсистеме среды. Та исполняет вызов и возвращает результаты прикладному процессу, посылая другой LPC.

Другие защищенные подсистемы — неотъемлемые подсистемы — это серверы, выполняющие важные функции ОС. В процессе разработки Windows 2000 некоторые неотъемлемые подсистемы появлялись и исчезали, но одна присутствовала всегда: подсистема защиты. Подсистема защиты исполняется в пользовательском режиме и регистрирует правила контроля доступа, определенные для локального компьютера. Например, она отслеживает, какие учетные записи пользователей имеют особые привилегии, доступ к каким системным ресурсам подлежит аудиту и должны ли генерироваться сообщения или предупреждения аудита. Кроме того, подсистема защиты ведет базу данных учетных записей пользователей, содержащую идентификаторы пользователей, пароли, группы, к которым отнесен пользователь, и особые привилегии, которыми он обладает. Она также принимает регистрационную информацию пользователя и инициирует аутентификацию подключения пользователя к системе.
Некоторые компоненты сетевого обеспечения Windows 2000 также реализованы как защищенные подсистемы. Заслуживают упоминания две из них: сервис рабочей станции и сервис сервера. Каждый из этих сервисов (services), как часто называют сетевые подсистемы, является процессом пользовательского режима, реализующим API для доступа и управления, соответственно, сетевым редиректором и сервером LAN Manager. Редиректор — это сетевой компонент, ответственный за посылку запросов ввода-вывода по сети, если файл или устройство, к которому осуществляется обращение, не является локальным. На удаленной машине такие запросы принимаются сервером. И редиректор, и сервер LAN Manager реализованы как драйверы файловых систем — т. е. являются частью системы ввода-вывода NT, описываемой далее.
3.2.Исполнительная система
Исполнительная система NT (NT executive) — это часть Windows 2000, исполняющаяся в режиме ядра; за исключением пользовательского интерфейса, она сама по себе является законченной ОС. Исполнительная система состоит из ряда компонентов, причем каждый из них реализует два набора функций: системные сервисы, к которым могут обращаться как подсистемы среды, так и компоненты исполнительной системы, а также внутренние процедуры, доступные только компонентам исполнительной системы. Эти интерфейсы изображены на рис. 2-7.
Хотя исполнительная система и предоставляет системные сервисы, похожие на API, она фундаментально отличается от подсистем среды. Исполнительная система не исполняется постоянно в собственном процессе, а работает в контексте некоторого существующего процесса, завладевая выполняющимся потоком, когда происходит важное системное событие. Например, когда поток вызывает системный сервис и перехватывается процессором, или когда внешнее устройство вызывает прерывание процессора, ядро получает управление потоком, который выполнялся процессором. Оно вызывает соответствующий системный код для обработки события, выполняет его и затем возвращает управление коду, выполнявшемуся перед прерыванием.
Компоненты исполнительной системы поддерживают независимость друг от друга, для чего каждый из них создает необходимые системные структуры данных и работает с ним. Так как интерфейсы между компонентами тщательно контролируются, можно полностью удалить некоторый компонент и заменить другим, работающим иначе. Если новый компонент корректно реализует все системные сервисы и внутренние интерфейсы, то ОС работает как прежде. Сопровождение ОС также упрощается, поскольку компоненты исполнительной системы NT взаимодействуют предсказуемым образом. Ниже перечислены различные компоненты исполнительной системы и их области ответственности:
- Д
испетчер объектов. Создает, поддерживает и уничтожает объекты исполнительной системы NT — абстрактные типы данных, представляющие системные ресурсы.
- Справочный монитор защиты. Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения.
- Диспетчер процессов. Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
- Средство локального вызова процедур (LPC). Передает сообщения между клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC — это гибкая, оптимизированная версия удаленного вызова процедур (remote procedure call, RPC), средства коммуникации между клиентскими и серверными процессами по сети, являющегося промышленным стандартом
Диспетчер виртуальной памяти. Реализует виртуальную память (virtual memory, VM) — схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов. Если память используется слишком интенсивно, то диспетчер виртуальной памяти переносит содержимое выбранного блока памяти на диск и загружает обратно, когда он снова понадобится. Такая практика называется подкачкой страниц (paging).
Ядро. Реагирует на прерывания и исключения, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы NT для реализации объектов более высокого уровня.
- Система ввода-вывода. Состоит из группы компонентов, отвечающих за выполнение ввода-вывода на разнообразные устройства. В систему ввода-вывода входят следующие подкомпоненты:
- Диспетчер ввода-вывода. Реализует средства ввода-вывода, не зависящие от типа устройства, и устанавливает модель для ввода-вывода исполнительной системы NT.
- Файловые системы. Драйверы NT, принимающие запросы файлового ввода-вывода и транслирующие их в запросы, привязанные к конкретному устройству.
- Сетевой редиректор (network redirector) и сетевой сервер (network server). Драйверы файловой системы, передающие удаленные запросы ввода-вывода на машины в сети и принимающие от них такие запросы.
- Драйверы устройств исполнительной системы NT. Низкоуровневые драйверы, напрямую работающие с оборудованием для записи вывода или считывания ввода с физических устройств или с сети.
- Диспетчер кэша. Повышает производительность файлового ввода-вывода, сохраняя информацию, считанную с диска последней, в системной памяти. Диспетчер кэша использует средство подкачки страниц диспетчера виртуальной памяти для автоматической записи информации на диск в фоновом режиме.
- Слой абстрагирования от оборудования (HAL). Помещает кодовую прослойку между исполнительной системой NT и аппаратной платформой, на которой работает ОС. Скрывает аппаратно-зависимые детали, такие как интерфейсы ввода-вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того, чтобы обращаться к аппаратуре непосредственно, исполнительная система NT сохраняет максимальную переносимость, обращаясь к функциям HAL, когда ей нужна платформенно–зависимая информация.
Windows 2000 — это переносимая ОС, разработанная так, чтобы ограничить объем кода, который зависит от конкретной архитектуры оборудования. Тем не менее, некоторый объем такого кода необходим; он располагается на самых нижних уровнях ядра NT плюс небольшие порции в диспетчере виртуальной памяти. Эти компоненты, особенно ядро NT, скрывают процессорные различия от остальной части ОС.
Код, зависящий от платформы, — т. е. от способа реализации некоторым производителем, например, компьютера MIPS R4000 — располагается в HAL и поставляется самими производителями компьютеров. Драйверы устройств содержат, конечно, код, зависящий от устройства, но избегают кода, зависящего от процессора или платформы, вызывая процедуры ядра NT и HAL.