Ядро и вспомогательные модули операционной системы

Все модули ОС разделяются на две группы: ядро и вспомогательные модули.

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

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

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

Ядро имеет многослойную структуру, образованную следующими слоями (рис. 3.4).


Рис. 3.4. Многослойная структура ядра ОС

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

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

Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра: переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц из памяти на диск и обратно. Модули данного слоя не принимают решений о распределении ресурсов – они только обрабатывают принятые «наверху» решения.

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

Интерфейс системных вызовов. Это самый верхний слой ядра, который непосредственно взаимодействует с приложениями, образуя прикладной программный интерфейс ОС. Например, в ОС Windows это API – application program interface.

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

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

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


Рис. 3.5. Нечеткость границы между ОС и приложениями

Вспомогательные модули ОС обычно подразделяются на следующие группы:

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

- системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

- программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры;

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

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

Рис. 3.6. Взаимодействие приложений с ядром ОС

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

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

Наши рекомендации