Системы с микроядром

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

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

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

Микроядро осуществляет связь между компонентами системы и выполняет базовое распределение ресурсов. Чтобы выполнить системный вызов, процесс (клиент) обращается к микроядру. Микроядро отсылает серверу запрос, сервер выполняет работу и пересылает ответ назад, а микроядро пересылает его клиенту (см. рис. 2.2). Клиентами могут быть как процессы пользователя, так и модули ОС.

Рисунок 2.2 – Системный вызов в архитектуре с микроядром

Достоинства микроядерного подхода:

1. Небольшие размеры микроядра, что упрощает его разработку и настройку.

2. Высокая надежность системы, вследствие того, что серверы работают в режиме пользователя, и у них нет прямого доступа к аппаратному обеспечению.

3. Большая гибкость и расширяемость системы (ненужные компоненты не занимают место в памяти, расширение функциональности системы сводится к добавлению в нее нового сервера).

4. Возможность адаптации к условиям сети (способ обмена данными между клиентом и сервером не зависти от того, связаны они сетью или находятся на одном компьютере).

Главным недостатком микроядерного подхода является снижение продуктивности. Вместо двух переключений режима процессора в случае системного вызова происходит четыре (два – во время обмена между клиентом и микроядром, два – между сервером и микроядром).

Данный недостаток является скорее теоретическим, на практике продуктивность и надежность микроядра зависит от качества его реализации.