Конспект лекций по дисциплине «Операционные системы и среды»

Вид материалаКонспект

Содержание


2.1.Модель клиент-сервер
2.2.Объектная модель
2.3.Симметричная мультипроцессорная обработка
3.Структура Windows 2000
3.1.Защищенные подсистемы
3.2.Исполнительная система
3.3.Обзор основных понятий
Сессия регистрации
Подсистемы среды
Базовые сервисы
Виртуальная память
Ввод-вывод и файловые системы
3.4.Подсистема Win32
32-разрядный API
3.5.API MS-DOS и 16-разрядной версии Windows
3.6.Виртуальные DOS-машины
Windows на Win32
4.Система ввода-вывода
4.1.Общие сведения
4.1.1.Компоненты системы ввода-вывода
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7   8



Опорный конспект лекций по дисциплине «Операционные системы и среды»

для специальностей 2202, 2203


Министерство образования РФ

Московский приборостроительный техникум


Опорный конспект лекций


По дисциплине «Операционные системы и среды»

для специальностей 2202, 2203


Операционная система

Windows 2000 professional

(на основе технологии NT)


Москва, 2000

1.Инсталляция и основные функции ОС




2.Модели Windows 2000


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

Что такое модель ОС? Словарь определяет модель как "предварительное описание системы или теории, учитывающее все известные ее свойства"'. Модель ОС — это каркас, который связывает в единое целое все средства и сервисы, обес­печиваемые системой, с одной стороны, и выполняемые ею задачи, с другой.

Структура Windows 2000 основана на комбинации нескольких моделей. Модель клиент-сервер (client/server) служит в Windows 2000 для того, чтобы предо­ставить пользователям различные среды ОС (исходно Windows, MS-DOS, OS/2 и POSIX), а объектная модель (object model) — для унификации управления систем­ными ресурсами и выделения их пользователям. Третья модель, симметричная мультипроцессорная обработка (symmetric multiprocessing, SMP), позволяет Windows 2000 максимально использовать возможности многопроцессорных машин.

2.1.Модель клиент-сервер


Существует множество способов структурирования кода ОС. Один подход, осо­бенно часто применяемый в небольших ОС, например в MS-DOS, состоит в организации системы как набора процедур, каждую из которых может вызывать любая пользовательская процедура. Такая монолитная структура не обеспечива­ет изоляции данных; в разных участках кода используется информация об уст­ройстве всей системы. Расширение ОС этого типа затруднительно, так как изме­нение некоторой процедуры может вызвать ошибки в других частях системы, на первый взгляд не имеющих к ней отношения.

Во всех монолитных ОС, кроме самых простых, приложения отделены от собственно ОС. Иными словами, код ОС исполняется в привилегированном ре­жиме процессора — в этой книге он называется режимом ядра (kernel mode) и имеет доступ к данным системы и к аппаратуре; приложения исполняются в непривилегированном, так называемом пользовательском режиме (user mode), в котором им предоставлен ограниченный набор интерфейсов и ограниченный доступ к системным данным. Когда программа пользовательского режима вызы­вает системный сервис, процессор перехватывает вызов и переключает вызыва­ющий поток в режим ядра. Когда выполнение системного вызова завершается, ОС переключает поток обратно в пользовательский режим и дает возможность вызывающей программе продолжить выполнение. Структура монолитной ОС с разделением пользовательского режима и режима ядра показана на рис. 2-1.

Д
ругой подход к структурированию системы предполагает разделение ее на модули, наслоенные один поверх другого. Каждый модуль предоставляет набор функций, которые могут вызываться другими модулями. Код, расположенный в некотором слое, вызывает код только из нижележащих слоев. В некоторых ОС, например, в VAX/VMS и в старой Multics, многослойность даже принудительно обуславливается аппаратурой (посредством использования иерархии режимов процессора). Одна из возможных послойных структур показана на рис. 2-2.

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


.

Третий подход к структурированию ОС — это модель клиент-сервер. Идея его состоит в разделении ОС на несколько процессов, каждый из которых реа­лизует один набор сервисов: например, распределение памяти, создание про­цессов или планирование процессов. Каждый сервер (server) выполняется в пользовательском режиме, проверяя в цикле, не обратился ли к нему за обслужи­ванием какой-либо клиент1. Клиент (client), которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает выполнение сервиса, посылая серверу сообщение. Ядро (или микроядро) ОС, выполняющееся в режи­ме ядра, доставляет сообщение серверу; тот выполняет запрашиваемые дей­ствия, после чего ядро возвращает клиенту результаты в виде другого сообще­ния, как показано на рис. 2-3.

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

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

В структуре Windows 2000 есть элементы как послойной, так и клиент-сер­верной модели. Часть Windows 2000, работающая в режиме ядра, называется ис­полнительной системой NT (NT executive). В нее входит набор компонентов, реализующих управление виртуальной памятью, управление объектами (ресур­сами), ввод-вывод и файловые системы (включая сетевые драйверы), взаимо­действие между процессами и фрагменты системы защиты от несанкциониро­ванного доступа. Эти компоненты взаимодействуют между собой главным обра­зом как модули, а не как слои. Каждый компонент вызывает другие посредством набора тщательно оговоренных внутренних процедур.

Однако послойная модель применяется в системе ввода-вывода исполни­тельной системы NT, описываемой далее, и в самых низкоуровневых частях ис­полнительной системы: ядре NT (NT kernel) и слое абстрагирования от обору­дования (hardware abstraction layer, HAL). Все другие компоненты исполнитель­ной системы NT расположены поверх этих двух. Ядро NT выполняет функции ОС низкого уровня, похожие на те, с которыми мы встречаемся в клиент-сер­верных ОС с микроядром — например, планирование потоков, обработку пре­рываний и исключений, а также многопроцессорную синхронизацию. Оно так­же предоставляет набор процедур и базовых объектов, используемых остальны­ми частями исполнительной системы для реализации конструкций более высо­кого уровня. Ниже ядра располагается динамически подключаемая библиотека (dynamic-link library, DLL) HAL — слой кода, изолирующий ядро и другие части исполнительной системы NT от платформенно–зависимых особенностей аппа­ратуры. HAL работает непосредственно с оборудованием.

Как показывает рис. 2-4, модель клиент-сервер используется в Windows 2000 главным образом для предоставления API и средств, которые обычно рас­сматривают как среду ОС. Хотя защищенная подсистема (сервер) Win32 обеспе­чивает пользовательский интерфейс и необходима для работы системы, другие серверы также могут подключаться к исполнительной системе, причем они могут загружаться и выполняться одновременно в любой желаемой комбинации. Серверы взаимодействуют с процессами приложений при помощи средства передачи сообщений, предоставляемого исполнительной системой NT.

Использование модели клиент-сервер дает следующие преимущества:
  • У
    прощает базу ОС — исполнительную систему NT. Одной из задач Windows 2000 было предоставить API Win32, MS-DOS, 16-разрядной Win­dows, POSIX и OS/2. Реализация каждого API в отдельном сервере устра­няет конфликты и дублирование в исполнительной системе и позволя­ет легко добавлять новые API.
  • Повышает надежность. Каждый сервер выполняется как отдельный про­цесс, имеющий собственную память, и, таким образом, защищен от дру­гих процессов. Более того, так как серверы работают в пользовательс­ком режиме, они не имеют непосредственного доступа к аппаратуре и не могут изменить содержимое областей памяти, занятых исполнитель­ной системой.
  • П
    рекрасно соответствует модели распределенных вычислений. Так как сетевые компьютеры используют модель клиент-сервер и общаются друг с другом посредством передачи сообщений, локальные серверы легко могут посылать сообщения удаленным машинам при обработке запросов от клиентских приложений. Клиентам не требуется знать, об­служивается их запрос локально или удаленно.