Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema1.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
257.02 Кб
Скачать

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

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

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

  • по управлению процессами;

  • обработке прерываний;

  • управлению виртуальной памятью;

  • управлению устройствами ввода-вывода, связанными с загрузкой или чтением регистров устройств.

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

Многие менеджеры ресурсов (файловая система, подсистема управления виртуальной памятью и процессами и т.п.), являющиеся неотъемлемой частью обычного ядра, становятся «периферийными» модулями, работающими в пользовательском режиме.

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

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

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

Рис.1.5. Иллюстрация системного вызова в микроядерной архитектуре

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

  • Высокая степень переносимости, обусловленная тем, что весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений и они все сгруппированы вместе.

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

  • Легкая конфигурируемость ОС – достаточно изменить файл с настройками начальной конфигурации системы или же остановить ненужные больше серверы (менеджеры ресурсов) в ходе работы системы обычными для остановки приложений средствами.

  • Повышенная надежность ОС – каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов ОС, что не наблюдается в традиционных ОС, где все модули ядра могут влиять друг на друга. Кроме этого, уменьшенный объем кода ядра снижает вероятность появления ошибок программирования.

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

Недостаток микроядерной архитектуры:

  • Более низкая производительность, чем при классической архитектуре – системный вызов сопровождается не двумя переключениями режима (пользовательского и привилегированного), а четырьмя (рис. 1.5 и 1.6).

Рис. 1.6. Смена режимов при выполнении системных вызовов в операционной системе с классически ядром (a) и с микроядерной архитектурой (б)

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]