Микроядерная архитектура

В привилегированном режиме работает только небольшая часть ОС - микроядро, защищенное от остальных частей ОС приложений.

В состав функций микроядра включаются те функции ОС, которые трудно или не­возможно выполнить в пространстве пользователя. Соотношение классической и микроядерной архитектур приведено на (рис.4).

 

 

Рис.4. Перенос функций ядра в пользовательское пространство: а - классическая архитектура, б - микроядерная архитектура

 

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

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

 

Рис.5. Реализация системного вызова в ОС с микроядерной архитектурой.

 

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

Такая схема обработки запроса соответствует модели клиент-сервер, где микро­ядро выполняет роль транспортных средств.

Микроядерная архитектура используется, в частности, в некоторых вариантах ОС Unix и частично - в ОС Windows NT.

Преимущества и недостатки микроядерной архитектуры

ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС: обладают пере­носимостью, расширяемостью, надежностью, подходят для поддержки распре­деленных вычислений.

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

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