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



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


 

 

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

 

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

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

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

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

 

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

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

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

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

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

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

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


 

 

 

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

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Микроядерная архитектура

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

Основная идея, заложенная в технологию микроядра, заключается в том, чтобы создать необходимую среду верхнего уровня иерархии, из которой можно легко получить доступ ко всем функциональным возможностям уровня аппаратного обеспечения. При этом микроядро является стартовой точкой для создания всех остальных модулей системы. Все эти остальные модули, реализующие необходимые системе функции, вызываются из микроядра и выполняют сервисную роль. При этом они получают статус обычного процесса или задачи. Можно сказать, что микроядерная архитектура соответствует технологии "клиент – сервер"[5]. Именно эта технология позволяет в большей мере и с меньшими трудозатратами реализовать принципы проектирования операционных систем.

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

 

Макроядерная архитектура

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

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

 


Дата добавления: 2020-12-12; просмотров: 315; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!