Микроядерная архитектура
2.1. Концепция архитектуры
В привилегированном режиме работает только небольшая часть ОС – микроядро, защищенное от остальных частей ОС приложений.
В состав функций микроядра включаются те функции ОС, которые трудно или невозможно выполнить в пространстве пользователя. В соответствии с рис. 5.3 это функции слоя базовых механизмов обычного ядра и ниже. Остальные, высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Соотношение классической и микроядерной архитектур приведено на рис. 5.4.
Рис. 5.4. Перенос функций ядра в пользовательское пространство:
а – классическая архитектура, б – микроядерная архитектура
Однозначного решения о переносе в пользовательский режим тех или иных системных функций не существует. В общем случае как пользовательские приложения оформляются многие менеджеры ресурсов.
По определению, основным назначением такого приложения является обслуживание запросов других приложений (создание процесса, выделение памяти, проверка прав доступа и т.д.). Поэтому менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС. Одной из главных задач микроядра является поддержка взаимодействия серверов. Механизм обращения к функциям ОС с микроядерной архитектурой изображен на рис. 5.5.
Рис. 5.5. Реализация системного вызова в ОС с микроядерной архитектурой
Клиент (прикладная программа либо другой компонент ОС) посылает соответствующему серверу сообщение-запрос на выполнение некоторой функции. Непосредственная передача этого сообщения серверу невозможна, так как каждое приложение работает в своем адресном пространстве. В качестве посредника выступает микроядро, выполняющееся в привилегированном режиме и имеющее доступ к адресным пространствам всех приложений. Микроядро передает сообщение нужному серверу, сервер выполняет запрошенную операцию и результат, снова через посредство микроядра, возвращается клиенту с помощью другого сообщения.
Такая схема обработки запроса соответствует модели клиент-сервер, где микроядро выполняет роль транспортных средств.
Микроядерная архитектура используется, в частности, в некоторых вариантах ОС Unix и частично – в ОС Windows NT.
2.2. Преимущества и недостатки микроядерной архитектуры
ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС: обладают переносимостью, расширяемостью, надежностью, подходят для поддержки распределенных вычислений.
Основным недостатком микроядерной архитектуры является снижение производительности по сравнению с классическим вариантом. Так, при классической организации выполнение системного вызова требует двух переключений режимов «привилегированный – пользовательский», а при микроядерной – четырех (см. рис. 5.5). При обращении к часто используемым функциям работа приложений существенно замедляется. По этой причине микроядерный подход не получил широкого распространения.
Основная проблема при использовании микроядерного подхода – что включать в микроядро, а что – выносить в пользовательское пространство. В результате ОС с такой архитектурой образуют некоторый спектр, на одном краю которого находятся системы с минимально возможным микроядром, состоящим только из средств передачи сообщений, а на другом – системы, в которых микроядро выполняет достаточно большой объем функций. Примером ОС второго типа является Windows NT, где с целью повышения производительности разработчики отклонились от микроядерной архитектуры и часто используемые функции графического интерфейса перенесли в ядро (начиная с версии 4.0) .