Операционные системы. Курс лекций

       

Многослойная структура ядра (монолитное ядро).


Ядро может состоять из следующих слоев:

1.    средства аппаратной поддержки ОС

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

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

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

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

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

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

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


3.    средства переключения процессов – предназначены для быстрого сохранения контекста приостанавливаемого процесса и восстановления контекста процесса, который становиться активным. Переключение контекста производится по специальным командам процессора.

4.    система прерываний. Позволяет реагировать на внешние события, синхронизировать выполнение процессов и устройств ввода/вывода.

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

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

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

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

Если код ОС может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа – на другой тип, то такую ОС называют переносимой – portable.

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

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

2.    объем машинно-зависимых частей кода, который непосредственно взаимодействует с аппаратными средствами, должен быть по возможности минимизирован.

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


Содержание раздела