Конспект лекций по дисциплине «Операционные системы и среды»
Вид материала | Конспект |
- Конспект лекций по дисциплине " Операционные системы", 1459.26kb.
- Ые системы", "Операционные системы, среды и оболочки" и "Операционные системы и системное, 1294.27kb.
- Рабочая программа по учебной дисциплине Операционные системы, среды и оболочки наименование, 623.3kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
- Программа предназначена для изучения учебного курса по дисциплине "Операционные системы,, 53.62kb.
- Методические указания для выполнения Курсовой работы по дисциплине «Операционные системы», 72.86kb.
- Программа по дисциплине «Технологии программирования и операционные системы», 42.87kb.
- Вопросы к экзамену по дисциплине «Операционные системы и среды», 34.81kb.
- Экзаменационные билеты по дисциплине «операционные системы и среды», 429.29kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
Опорный конспект лекций по дисциплине «Операционные системы и среды»
для специальностей 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-разрядной Windows, POSIX и OS/2. Реализация каждого API в отдельном сервере устраняет конфликты и дублирование в исполнительной системе и позволяет легко добавлять новые API.
- Повышает надежность. Каждый сервер выполняется как отдельный процесс, имеющий собственную память, и, таким образом, защищен от других процессов. Более того, так как серверы работают в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут изменить содержимое областей памяти, занятых исполнительной системой.
- П
рекрасно соответствует модели распределенных вычислений. Так как сетевые компьютеры используют модель клиент-сервер и общаются друг с другом посредством передачи сообщений, локальные серверы легко могут посылать сообщения удаленным машинам при обработке запросов от клиентских приложений. Клиентам не требуется знать, обслуживается их запрос локально или удаленно.