
- •Составитель:
- •Рецензенты:
- •1. Цель и задачи курса
- •1.2. Требования к уровню освоения содержания дисциплины
- •2. Технологическая карта курса
- •3. Курс лекций
- •1. Общие основы операционных систем
- •Назначение и функции ос
- •1.2. Классификация ос
- •1.3. Сетевые операционные системы
- •1.3.1. Сетевые и распределенные ос
- •1.3.2. Функциональные компоненты сетевой ос
- •1.3.3. Сетевые службы и сетевые сервисы
- •1.3.4. Встроенные сетевые службы и сетевые оболочки
- •1.4. Одноранговые и серверные сетевые операционные системы
- •1.4.1. Ос в одноранговых сетях
- •1.4.2. Ос в сетях с выделенными серверами
- •1.5. Требования к ос
- •2. Архитектура операционных систем
- •2.1. «Классическая» архитектура ос
- •2.1.1. Ядро и вспомогательные модули ос
- •2.1.2. Многослойная структура ос
- •2.2. Микроядерная архитектура ос
- •2.2.1. Основные положения микроядерной архитектуры
- •2.2.2. Преимущества и недостатки микроядерной архитектуры
- •3. Аппаратная зависимость и переносимость операционных систем
- •3.1. Аппаратно-зависимые компоненты ос
- •3.2. Переносимость ос
- •4. Совместимость операционных систем
- •4.1. Виды совместимости
- •4.2. Способы реализации совместимости
- •4. Глосарий по курсу лекций
- •5. Содержание курса
- •6. Перечень вопросов к коллоквиуму
- •7. Лабораторные работы Лабораторная работа № 1 «Основные команды ос ms-dos»
- •Лабораторная работа № 2 «Операционные оболочки – far и Total Commander»
- •Лабораторная работа № 3 «ос Windows. Основные команды»
- •4.1 «Проводник»
- •4.2 «Мой компьютер»
- •Лабораторная работа № 4 «Архиваторы: WinZip, WinRar. Антивирусы: avp, DrWeb, nod32»
- •5.1 Архиваторы: WinRar, WinZip.
- •Антивирусы: avp, DrWeb, nod32
- •Удалите свои созданные ранее каталоги, предварительно показав работы преподавателю Лабораторная работа № 5 «Основные команды ос Unix/Linux»
- •Лабораторная работа № 6 «Мультимедиа. Компьютерные сети»
- •Лабораторная работа № 7 «Установка и настройка ос Windows 9x/xp»
- •Литература Основная литература
- •Дополнительная литература
- •9. Задание для самостоятельной работы
- •Примерная тематика рефератов
- •11. Примерный перечень вопросов к зачетУ
- •12. Вопросы для тестов
2.2.2. Преимущества и недостатки микроядерной архитектуры
ОС, основанные на концепции микроядра, во многом удовлетворяют требованиям, предъявляемым к современным ОС, обладая переносимостью, расширяемостью, надежностью, и создают хорошие предпосылки для поддержки распределенных приложений. Но, к сожалению, все эти достоинства ОС приобретает в ущерб производитель-ности. Рассмотрим более подробно, чем же обусловливается наличие перечисленных качеств у ОС, основанных на микроядерной архитектуре.
Как уже было сказано ранее, микроядерной ОС присуща изолированность всего машинно-зависимого кода в микроядре, вследствие чего для переноса системы на новую аппаратную платформу требуется минимальное количество изменений, причем все они логически сгруппированы. Эта особенность ОС с микроядром является их несомненным достоинством.
Особенности архитектуры микроядерных ОС обеспечивают их высокую степень расширяемости по сравнению с другими ОС. В классических системах, даже если и реализуется многослойная архитектура, бывает очень трудно, порой невозможно, поменять один слой на другой по причине множественности и размытости межслойных интерфейсов. Изменение существующих и добавление новых функций, а, следовательно, изменение межслойных интерфейсов, требует не только глубокого знания ОС, но и больших временных затрат. Наряду с этим ограниченный набор четко определенных интерфейсов микроядра позволяет системе упорядоченно расти и эволюционировать. Добавление очередной подсистемы требует только лишь разработки нового приложения и никоим образом не затрагивает целостность микроядра. Микроядерная структура позволяет не только увеличивать, но и сокращать число компонентов ОС, что также бывает необходимо. Например, не всем пользователям нужны средства безопасности или поддержки распределенных приложений, а удаление их из традиционного ядра часто просто невыполнимая задача. Обычно традиционные ОС позволяют динамически добавлять в ядро или удалять из ядра только драйверы внешних устройств. Ввиду частых изменений в конфигурации подключенных к компьютеру внешних устройств, подсистема ввода-вывода ядра допускает загрузку и выгрузку драйверов “на ходу”, но для этого она разрабатывается особым образом (например, среда STREAMS в UNIX или менеджер ввода-вывода в Windows NT). При микроядерном подходе конфигурируемость не вызывает никаких проблем и не требует особых мер, достаточно изменить файл с настройками начальной конфигурации системы или же остановить ненужные больше серверы в ходе работы обычными для остановки приложений средствами.
Использование микроядерной модели повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов ОС, чего не наблюдается в традиционной ОС, где все модули ядра влияют друг на друга. И если отдельный сервер терпит крах, то он может быть перезапущен без останова или повреждения остальных серверов ОС. Более того, поскольку серверы выполняются в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут модифицировать память, в которой хранится и работает микроядро. Другим потенциальным источником повышения надежности ОС является уменьшенный объем кода микроядра по сравнению с классическим ядром – это снижает вероятность появления ошибок программирования.
Модель с микроядром хорошо подходит для поддержки распределенных вычислений, так как использует механизмы, аналогичные сетевым, – взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной ОС могут работать как на одном, так и на разных компьютерах. При получении сообщения от приложения микроядро обработает его самостоятельно и передаст локальному серверу или же перешлет его по сети микроядру, работающему на другом компьютере. Переход к распределенной обработке требует минимальных изменений в работе ОС – просто локальный транспорт заменяется на сетевой.
Все рассмотренные ранее свойства ОС с микроядерной архитектурой свидетельствовали о предпочтительности ее использования разработчиками. Однако, как уже говорилось, все эти качества приобретаются за счет снижения производительности ОС. Что же является этому причиной? Дело в том, что при классической организации ОС (см. рис. 7а) выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации (см. рис. 7б) – четырьмя.
Таким образом, ОС на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим ядром. Именно поэтому микроядерный подход не получил такого широкого распространения, которое ему предрекали.
Серьезность этого недостатка хорошо иллюстрирует история развития ОС Windows NT. В версиях 3.1 и 3.5 диспетчер окон, графическая библиотека и высокоуровневые драйверы графических устройств входили в состав сервера пользовательского режима и вызов функций этих модулей осуществлялся в соответствии с микроядерной схемой. Но очень скоро разработчики Windows NT поняли, что такой механизм обращений к часто используемым функциям графического интерфейса существенно замедляет работу приложений и делает данную ОС уязвимой в условиях острой конкуренции. В результате в версию Windows NT 4.0 были внесены существенные изменения – все перечисленные выше модули были перенесены в ядро, что отдалило эту ОС от идеальной микроядерной архитектуры, но зато резко повысило ее производительность.
Данный пример иллюстрирует главную проблему, с которой сталкиваются разработчики ОС, решившие применить микроядерный подход, - что включить в микроядро, а что вынести в пользовательское пространство. В идеальном случае микроядро может состоять только из средств передачи сообщений и средств взаимодействия с аппаратурой, в том числе средств доступа к механизмам привилегированной защиты. Однако многие разработчики не всегда жестко придерживаются принципа минимизации функций ядра, часто жертвуя этим ради повышения производительности. В результате реализации ОС образуют некоторый спектр, на одном краю которого находятся системы с минимально возможным микроядром, а на другом – системы, в которых микроядро выполняет достаточно большой объем функций. Конфигурация микроядра конкретной ОС определяется в соответствии с критериями эффективности, применимыми к данной системе.