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

Концепция ос на основе микроядра

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

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

Рисунок 1 – Многослойное ядро

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

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

Рисунок 2 – Микроядро

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

Достоинства концепции микроядра.

1. Единообразные интерфейсы (uniform interfase). Используется единообразный формат запросов, генерируемых процессами. Процессам ненужно различать приложения, выполняемые на уровне ядра и на пользовательском уровне, так как доступ ко всем службам осуществляется только с помощью передачи сообщений.

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

3. Гибкость (flexibility). В ОC можно не только добавлять новые услуги, но и удалять некоторые из них. Это может потребоваться для получения компактной и эффективной версии. Но если пользователю не требуются некоторые подсистемы, занимающие большие объёмы памяти, он может скомпоновать компактную ОС по своим нуждам.

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

5. Надёжность (reliability). Чем больший код имеет программа, тем труднее её протестировать. Однако небольшое ядро ОС можно тщательно проверить. А небольшое число интерфейсов прикладного программирования позволяет реализовать подсистемы, работающие вне ядра, с достаточно качественным программным кодом. Имея стандартизованный набор интерфейсов, разработчик отдельного приложения не может повлиять на другие системные компоненты.

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

7. Подход на основе микроядра хорошо функционирует среди объектно-ориентированных ОС (object-oriented operating system). Такой подход способствует более строгой разработке ядра и модульных расширений ОС. Перспективным считается подход, в котором сочетаются архитектура с микроядром, принципы объектно-ориентированных систем, которые реализуются с использованием компонентов. Компоненты – объекты с четко заданными интерфейсами, которые могут объединятся, образуя программы по принципу блоков.

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

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

Есть мнения и взгляды на то, чтобы сделать микроядро не больше, а наоборот – меньше. При этом повышается его гибкость и надёжность.