16.
Микроядерная архитектура ОС. Реализация системного вызова. Преимущества и недостатки микроядерной архитектуры ОС.
Суть
микроядерной архитектуры состоит в следующем. В
привилегированном режиме остается работать только очень небольшая часть ОС,
называемая микроядром (рис. 3.2.1). Микроядро защищено от остальных частей ОС и
приложений. В состав микроядра обычно входят машинно-зависимые модули, а также
модули, выполняющие базовые (но не все!) функции ядра по управлению процессами,
обработке прерываний, управлению виртуальной памятью, пересылке сообщений и
управлению устройствами ввода-вывода, связанные с загрузкой или чтением
регистров устройств. Набор функций микроядра обычно соответствует функциям слоя
базовых механизмов обычного ядра. Такие функции операционной системы трудно,
если не невозможно, выполнить в пространстве пользователя.
Рис. 3.2.1. Перенос основного объема функций ядра в пользовательское пространство
Использование
микроядерной модели повышает надежность ОС. Каждый
сервер выполняется в виде отдельного процесса в своей собственной области
памяти и таким образом защищен от других серверов операционной системы, что не
наблюдается в традиционной ОС, где все модули ядра могут влиять друг на друга.
И если отдельный сервер терпит крах, то он может быть перезапущен без останова
или повреждения остальных серверов ОС. Более того, поскольку серверы
выполняются в пользовательском режиме, они не имеют непосредственного доступа к
аппаратуре и не могут модифицировать память, в которой хранится и работает
микроядро. Другим потенциальным источником повышения надежности ОС является
уменьшенный объем кода микроядра по сравнению с традиционным ядром — это
снижает вероятность появления ошибок программирования.
Модель
с микроядром хорошо подходит для поддержки распределенных вычислений, так как
использует механизмы, аналогичные сетевым: взаимодействие клиентов и серверов
путем обмена сообщениями. Серверы микроядерной ОС
могут работать как на одном, так и на разных компьютерах. В этом случае при
получении сообщения от приложения микроядро может обработать его самостоятельно
и передать локальному серверу или же переслать по сети микроядру, работающему
на другом компьютере. Переход к распределенной обработке требует минимальных
изменений в работе операционной системы — просто локальный транспорт заменяется
на сетевой.
Производительность.
При классической организации ОС (рис. 3.2.3, а) выполнение системного вызова
сопровождается двумя переключениями режимов, а при микроядерной
организации (рис. 3.2.3, 6) — четырьмя. Таким образом, операционная система на
основе микроядра при прочих равных условиях всегда будет менее
производительной, чем ОС с классическим ядром. Именно по этой причине микроядерный подход не получил такого широкого
распространения, которое ему предрекали.
Рис. 3.2.3. Смена режимов при выполнении системного вызова