Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_OS.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.16 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

2.4 Системы с гибридным ядром

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

Имеют «гибридные» достоинства и недостатки.

Рисунок 2.3 – ОС с разными ядрами

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

Существуют варианты ОС GNU (Debian GNU/Hurd), в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него в пользовательском пространстве работают те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой[1], это не совсем так. Микроядро NT слишком велико (более 1 Мбайт, кроме того, в ядре системы находится, например, ещё и модуль графического интерфейса), чтобы носить приставку «микро». Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений[1][2], как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. Причина проста: чисто микроядерный дизайн коммерчески менее выгоден, поскольку менее эффективен (за счет накладных расходов на передачу сообщений там, где можно было обойтись вызовами функций)[источник не указан 363 дня].

Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер.

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