Слайд 2«Классическая» архитектура ОС
2. Многослойная архитектура ОС
Микроядерная архитектура ОС
Основные положения микроядерной
архитектуры
5. Преимущества и недостатки микроядерной архитектуры.
Слайд 3«Классическая» архитектура ОС
Компоненты ОС являются не самостоятельными модулями, а составными
частями одной большой программы. Такая структура операционной системы называется монолитным
ядром (monolithic kernel).
Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую.
Слайд 4«Классическая» архитектура ОС
Все процедуры работают в привилегированном режиме.
Монолитное ядро –
это такая схема ОС, при которой все ее компоненты являются
составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной ОС ядро совпадает со всей системой.
Слайд 5«Классическая» архитектура ОС
Во многих с монолитным ядром сборка ядра (то
есть его компиляция) осуществляется отдельно для каждого компьютера, на который
устанавливается ОС. При этом можно выбрать список оборудования и программных протоколов, поддержка которых будет включена в ядро.
Слайд 6«Классическая» архитектура ОС
Так как ядро является единой программой, перекомпиляция –
это единственный способ добавить в него новые компоненты или исключить
неиспользуемые. Присутствие в ядре лишних компонентов нежелательно, так как ядро всегда полностью располагается в ОЗУ. Исключение ненужных компонентов повышает надежность ОС в целом.
Слайд 7«Классическая» архитектура ОС
Монолитное ядро – старейший способ организации операционных систем.
Примером систем с монолитным ядром является большинство Unix-систем.
Слайд 8«Классическая» архитектура ОС
Структура. В монолитном ядре выделяются сервисные процедуры, соответствующие
системным вызовам. Сервисные процедуры выполняются в привилегированном режиме, тогда как
пользовательские программы – в непривилегированном.
Слайд 92. Многослойная архитектура ОС
Можно разбить всю вычислительную систему на ряд
более мелких уровней с хорошо определенными связями между ними (многоуровневые
системы (Layered systems)), так чтобы объекты уровня N могли вызывать только объекты уровня N-1.
Слайд 102. Многослойная архитектура ОС
Нижним уровнем в таких системах обычно является
hardware, верхним уровнем – интерфейс пользователя. Чем ниже уровень, тем
более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне.
Слайд 112. Многослойная архитектура ОС
Слоеные системы хорошо реализуются. При использовании операций
нижнего слоя не нужно знать, как они реализованы, нужно лишь
понимать, что они делают. Слоеные системы хорошо тестируются. Отладка начинается с нижнего слоя и проводится послойно. При возникновении ошибки мы можем быть уверены, что она находится в тестируемом слое.
Слайд 122. Многослойная архитектура ОС
При использовании операций нижнего слоя не нужно
знать, как они реализованы, нужно лишь понимать, что они делают.
Слоеные системы хорошо тестируются. Отладка начинается с нижнего слоя и проводится послойно. При возникновении ошибки мы можем быть уверены, что она находится в тестируемом слое.
Слайд 132. Многослойная архитектура ОС
Слоеные системы хорошо модифицируются. При необходимости можно
заменить лишь один слой, не трогая остальные. Но слоеные системы
сложны для разработки: тяжело правильно определить порядок слоев и что к какому слою относится. Слоеные системы менее эффективны, чем монолитные.
Слайд 14Микроядерная архитектура ОС
Главной особенностью подхода архитектуры построения ОС с микроядром
является то, что в привилегированном режиме остается работать только очень
малая часть ОС, называемая соответственно микроядром. Микроядро защищено от остальных частей ОС и пользовательских приложений.
Слайд 15Микроядерная архитектура ОС
Набор входящих в состав микроядра функций соответствует слою
базовых механизмов обычного ядра, хотя в состав микроядра включаются далеко
не все базовые функции ядра, а только функции управления процессами, обработки прерываний, управления виртуальной памятью, пересылки сообщений, управления устройствами ввода-вывода.
Слайд 16Микроядерная архитектура ОС
Выполнение таких функций ОС практически невозможно реализовать в
пользовательском режиме. Все машинно-зависимые модули ОС также включаются в микроядро.
Слайд 17Микроядерная архитектура ОС
Не вошедшие в состав микроядра высокоуровневые функции и
модули ядра оформляются в виде обычных приложений, работающих в пользовательском
режиме. На рисунке ниже можно видеть основные различия в построении ОС с монолитным ядром (рис.1а) и архитектурой с микроядром (рис. 1б).
Слайд 18Рисунок 1. Строение ОС с монолитным ядром
и с архитектурой
микроядром.
Слайд 194. Основные положения микроядерной архитектуры
Непосредственная передача сообщений между приложениями невозможна,
поскольку их адресные пространства изолированы друг от друга.
Слайд 204. Основные положения микроядерной архитектуры
Микроядро ОС, выполняющееся в привилегированном режиме,
имеет доступ к адресным пространствам каждого из этих приложений и
поэтому может выступать в качестве посредника при передаче сообщений.
Слайд 214. Основные положения микроядерной архитектуры
Микроядро сначала передает сообщение, содержащее имя
и параметры вызываемой процедуры соответствующему серверу, затем сервер выполняет запрошенную
операцию, после чего микроядро возвращает результаты клиенту посредством другого сообщения.
Слайд 224. Основные положения микроядерной архитектуры
Таким образом, работа микроядерной ОС соответствует
известной модели клиент-сервер, в которой роль транспортных средств выполняет микроядро.
Слайд 234. Основные положения микроядерной архитектуры
Стандартизованные протоколы предоставления сервиса или ресурсов
позволяют серверу обслуживать клиента независимо от деталей их реализации, что
открывает перед разработчиками широкие возможности для построения распределенных систем.
Слайд 244. Основные положения микроядерной архитектуры
Инициатором обмена обычно является клиент, который
посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания. Один
и тот же процесс может быть клиентом по отношению к одним ресурсам и сервером для других.
Слайд 254. Основные положения микроядерной архитектуры
Данная модель успешно применяется не только
при построении ОС, но и при создании программного обеспечения любого
уровня.
Слайд 265. Преимущества и недостатки микроядерной архитектуры.
ОС с микроядром во многом
удовлетво-ряют требованиям, предъявляемым к современным ОС, обладая переноси-мостью, расширяемостью, надеж-ностью,
и создают хорошие предпо-сылки для поддержки распределенных приложений. Но все эти достоинства ОС приобретает в ущерб производительности.
Слайд 275. Преимущества и недостатки микроядерной архитектуры.
Микроядерной ОС присуща изолиро-ванность всего
машинно-зависимого кода в микроядре, вследствие чего для переноса системы на
новую аппаратную платформу требуется min количество изменений, причём все они логически сгруппированы. Эта особен-ность ОС с микроядром является их несомненным достоинством.
Слайд 285. Преимущества и недостатки микроядерной архитектуры.
Особенности архитектуры микроядерных ОС обеспечивают
их высокую степень расширяемости по сравнению с другими ОС. Добавление
очередной подсистемы требует только лишь разработки нового приложения и никоим образом не затрагивает целостность микроядра.
Слайд 295. Преимущества и недостатки микроядерной архитектуры.
Микроядерная структура позволяет не только
увеличивать, но и сокращать число компонентов ОС, что также бывает
необходимо.
Слайд 305. Преимущества и недостатки микроядерной архитектуры.
При микроядерном подходе конфигурируемость не
вызывает никаких проблем и не требует особых мер, достаточно изменить
файл с настройками начальной конфигурации системы или же остановить ненужные больше серверы в ходе работы обычными для остановки приложений средствами.
Слайд 315. Преимущества и недостатки микроядерной архитектуры.
Использование микроядерной модели повышает надежность
ОС. Каждый сервер выполняется в виде отдельного процесса в своей
собственной области памяти и таким образом защищен от других серверов ОС, чего не наблюдается а традиционной ОС, где все модули ядра влияют друг на друга.
Слайд 325. Преимущества и недостатки микроядерной архитектуры.
И если отдельный сервер терпит
крах, то он может быть перезапущен без останова или повреждения
остальных серверов ОС.
Слайд 335. Преимущества и недостатки микроядерной архитектуры.
Другим потенциальным источником повышения надежности
ОС является уменьшенный объем кода микроядра по сравнению с классическим
ядром - это снижает вероятность появления ошибок программирования.
Слайд 345. Преимущества и недостатки микроядерной архитектуры.
Модель с микроядром хорошо подходит
для поддержки распределенных вычислений, так как использует механизмы, аналогичные сетевым,
- взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной ОС могут работать как на одном, так и на разных компьютерах.
Слайд 355. Преимущества и недостатки микроядерной архитектуры.
Все рассмотренные ранее свойства ОС
с микроядерной архитектурой свидетельствовали о предпочтительности ее использования разработчиками. Однако,
как уже говорилось, все эти качества приобретаются за счет снижения производительности ОС.
Слайд 365. Преимущества и недостатки микроядерной архитектуры.
Дело в том, что при
классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов,
а при микроядерной организации - четырьмя.
Слайд 375. Преимущества и недостатки микроядерной архитектуры.
Таким образом, ОС на основе
микроядра при прочих равных условиях всегда будет менее производительной, чем
ОС с классическим ядром. Именно поэтому микроядерный подход не получил такого широкого распространения, которое ему предрекали.
Слайд 385. Преимущества и недостатки микроядерной архитектуры.
Все рассмотренные подходы к построению
операционных систем имеют свои достоинства и недостатки. В большинстве случаев
современные операционные системы используют различные комбинации этих подходов. Так, например, ядро операционной системы Linux представляет собой монолитную систему с элементами микроядерной архитектуры.
Слайд 395. Преимущества и недостатки микроядерной архитектуры.
При компиляции ядра можно разрешить
динамическую загрузку и выгрузку очень многих компонентов ядра – так
называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.