Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура операционной системы.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
168 Кб
Скачать
☆

2 Многослойная структура операционной системы

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

 

Рис. 5 Трехслойная схема вычислительной системы

 

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

Такая организация системы имеет много достоинств:

– упрощается разработка системы, так как сначала ("сверху вниз") можно определить функции слоев и межслойные интерфейсы, а затем при детальной реализации постепенно наращивать мощность функций слоев, двигаясь "снизу вверх";

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

 

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

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

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

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

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

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

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

 

 

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

 

 

3 Аппаратная зависимость операционных систем

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

Четкой границы между программной и аппаратной реализацией функций ОС не существует.

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

– средства поддержки привилегированного режима;

– средства трансляции адресов;

– средства переключения процессов;

– система прерываний;

– системный таймер;

– средства защиты областей памяти.

Средства поддержки привилегированного режима обычно основаны на системном регистре процессора, часто называемом "словом состояния" машины или процессора.

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

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

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

Системный таймер[4],  необходим операционной системе для выдержки интервалов времени.

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