Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы.кр1.МОС_SPECIAL EDITION.doc
Скачиваний:
25
Добавлен:
23.11.2019
Размер:
3.44 Mб
Скачать

15. Монолитное ядро

Монолитное ядро — классическая и наиболее распространённая архитектура ядер. Все части монолитного ядра работают в одном адресном пространстве.

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

Альтернатива монолитным ядрам – микроядерная архитектура.

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

Достоинства: Скорость работы, упрощённая разработка модулей.

Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

Примеры: Традиционные ядра UNIX, такие как BSD; Linux.

16. Модульное ядро

Модульное ядро - современная, усовершенствованная модификация архитектуры монолитных ядер.

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

Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями ядра. Поэтому модульные ядра продолжают оставаться монолитными.

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

Примеры: OpenVMS, Linux, FreeBSD, NetBSD, Solaris.

17. Особенности микроядерной архитектуры

Микроядерная архитектура - альтернатива классическому способу построения операционной системы.

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

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

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

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

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