Микроядерная архитектура ОС. Привилегированный режим работы ядра
Наиболее общим подходом к структуризации ОС является разделение всех модулей ОС на две группы:
- ядро – это совокупность модулей, выполняющих основные функции ОС;
- модули, выполняющие вспомогательные функции ОС.
Модули ядра реализуют базовые функции ОС, которые можно разделить на два основных класса.
Первый – это функции, решающие внутрисистемные задачи организации вычислительного процесса (переключение контекстов, планирование процессов, управление памятью и др.). Эти функции недоступны приложениям.
Второй класс – функции поддержки приложений. Они доступны для обращения приложений с запросами (системные вызовы) на выполнение определенных функций (открыть файлы, вывести информацию на графический дисплей и др.). Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API (applicationprogramminginterfaces).
Модули ОС, выполняющие вспомогательные функции, обычно подразделяют на следующие группы:
· Утилиты – программы, реализующие отдельные задачи управления и сопровождения ВС ( дефрагментация дисков, архивирование и др.).
· Системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики и др.
· Библиотеки процедур различного назначения (программы облегчающие разработку приложений, например библиотеки математических функций).
· Программы, предоставляющие пользователям дополнительные услуги (калькулятор, игры и др.).
При решении своих задач вспомогательные модули ОС, как и приложения, обращаются к функциям ядра посредством системных вызовов.
Вспомогательные модули ОС загружаются в оперативную память ВС лишь на время выполнения, т. е. являются транзитными.
Коды модулей ядра ОС находятся в оперативной памяти ОС постоянно (являются резидентными).
Для надежного управления приложениями ОС должна иметь по отношению к ним определенные привилегии. Иначе некорректно работающее приложение может разрушить ОС.
ОС должна иметь исключительные полномочия и для того, чтобы иметь возможность разрешать конфликты между приложениями при запросах на использование ресурсов ВС.
Обеспечение привилегий ОС обычно достигается за счет использования средств аппаратной поддержки ОС. Аппаратное обеспечение ВС должно поддерживать как минимум два режима работы − пользовательский и привилегированный (режим ядра, режим супервизора).
Поскольку ядро выполняет основные функции ОС, то именно ядро становится той частью ОС, которая работает в привилегированном режиме.
Современные тенденции при разработке ОС предполагают перенесение значительной части ядра (составляющие ядра, которые являются самостоятельными программами) на пользовательский уровень. В привилегированном режиме остается только небольшая часть ОС, получившая название микроядра. Микроядро защищено от остальной части ОС и приложений, в его состав входят модули управления процессами, памятью, устройствами ввода/вывода, модули обработки прерываний, обеспечения обмена сообщениями и машинно-зависимые модули.
Микроядерная архитектура ОС вносит дополнительные накладные расходы при функционировании ВС, связанные с передачей сообщений между модулями ОС и увеличением частоты переключений из привилегированного режима в пользовательский и обратно.
В большинстве случаев современные ОС используют различные комбинации рассмотренных подходов к построению ОС. Например, ядро Linux представляет собой монолитную структуру с элементами микроядерной архитектуры (допускает динамическую подгрузку и выгрузку отдельных модулей ядра). ОС 4.4BSD обеспечивает работу операционной системы с монолитным ядром под управлением микроядра, а в WidowsNT компоненты ядра взаимодействуют между собой путем передачи сообщений, но функционируют в одном адресном пространстве, что свойственно ОС с монолитным ядром.
Вопросы для самопроверки по теме 2.2
1. Назовите основные функции ОС, которые выполняют модули ядра.
2. Почему ядро ОС должно функционировать в привилегированном режиме?
3. Какие функции ядра ОС образуют API?
4. Какие модули ОС являются транзитными?
5. Назовите основные особенности микроядерной архитектуры ОС.