Тема 5. Архитектура ОС
Архитектура на базе ядра в привилегированном режиме
1.1. Концепция архитектуры
1.2. Ядро и вспомогательные модули ОС
1.3. Привилегированный режим ядра и пользовательский режим
1.4. Многослойная структура ОС
Микроядерная архитектура
2.1. Концепция архитектуры
2.2. Преимущества и недостатки микроядерной архитектуры
Переносимость ОС
Архитектура на базе ядра в привилегированном режиме
1.1. Концепция архитектуры
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы: ядро и вспомогательные модули. Ядро выполняет все основные функции ОС и работает в особом – привилегированном – режиме.
Приложения выполняются независимо, каждое – в своем собственном адресном пространстве.
Преимущество такой архитектуры заключается в легкой расширяемости ОС: для добавления новой высокоуровневой функции достаточно разработать новое приложение, не касаясь ядра. В противовес этому, внесение изменений в функции ядра может оказаться достаточно сложным – вплоть до полной его перекомпиляции.
|
|
Архитектура ОС, основанная на привилегированном ядре и приложениях пользователя, считается классической. Она используется, в частности, в большинстве вариантов ОС Unix и с определенными модификациями (см. п. 2.2) – в ОС Windows NT.
1.2. Ядро и вспомогательные модули ОС
· Ядро включает модули, выполняющие основные функции ОС:
w управление процессами;
w управление памятью;
w управление вводом-выводом и файловая система;
w интерфейс прикладного программирования API (Application Program Interface) для поддержки обращений к ядру из приложений.
Для обеспечения высокой скорости работы ОС модули ядра (все или большая часть), являются резидентными, т.е. постоянно находятся в оперативной памяти.
· Вспомогательные модули по выполняемым функциям обычно подразделяются на следующие группы:
w утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы (сжатие дисков, их проверка, дефрагментация; архивирование, сбор статистики и т.д.);
w системные обрабатывающие программы (компиляторы, редакторы связей, загрузчики, отладчики, текстовые или графические редакторы);
w библиотеки процедур различного назначения для разработки приложений (математические функции, функции ввода-вывода и т.д.);
w программы, предоставляющие дополнительные услуги (калькулятор, некоторые игры).
По способу оформления эти модули представляют собой либо приложения, т.е. самостоятельные программы (утилиты, системные программы и программы дополнительных услуг), либо процедуры библиотек, вызываемые из приложений.
|
|
Вспомогательные модули ОС загружаются в оперативную память только на время выполнения (транзитные модули).
· Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Так, самостоятельное приложение, имеющее спрос, может быть включено в состав ОС (например, Веб-браузер Internet Explorer), или, наоборот, модуль ОС может превратиться в отдельное приложение.
Все модули (как вспомогательные, так и пользовательские приложения) обращаются к функциям ядра посредством системных вызовов (рис. 5.1).
Рис. 5.1. Взаимодействие между ядром и другими модулями
1.3. Привилегированный режим ядра и пользовательский режим
Операционная система для осуществления своих управляющих функций должна иметь по отношению к приложениям определенные привилегии. Поэтому аппаратура компьютера поддерживает как минимум два режима:
w пользовательский режим (user mode) – для работы приложений;
w привилегированный режим, он же – режим ядра (kernel mode), или режим супервизора (supervisor mode) – для работы ОС или ее частей.
В привилегированном режиме чаще всего работает именно ядро как основная часть ОС. Понятия «ядро» и «привилегированный режим» тесно связаны, поэтому ядро также можно характеризовать как часть ОС, работающую в привилегированном режиме.
Привилегии обеспечиваются за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных со следующими операциями:
- переключением процессора с задачи на задачу;
- управлением устройствами ввода-вывода;
- доступом к механизмам распределения и защиты памяти.
В пользовательском режиме безусловно запрещено выполнение инструкции перехода в привилегированный режим. Другие инструкции запрещается выполнять при определенных условиях, полностью контролируемых ОС. Например, ввод-вывод данных или доступ к памяти разрешены приложению, если соответствующие ресурсы выделены только этому приложению, и запрещены, если данные (соответственно память) являются общими для ОС и других приложений.
Если аппаратура (процессор) поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты и соответствующих прав доступа. Прямого соответствия между числом аппаратно реализуемых и программно реализуемых уровней привилегий нет. Так, на базе четырех уровней процессоров архитектуры х86 OS/2 строит трехуровневую, а Windows NT и Unix – двухуровневую систему привилегий.
Переключение процессора из пользовательского режима в привилегированный при системном вызове ядра, а затем обратное переключение повышает устойчивость ОС, но замедляет выполнение системных вызовов.
1.4. Многослойная структура ОС
· Многослойный подход – универсальный и эффективный способ декомпозиции сложных систем, базирующийся на следующих положениях.
w Система представляется как иерархия слоев.
w Функции нижележащего слоя являются примитивами для построения более сложных функций вышележащего слоя.
w Взаимодействие слоев осуществляется через посредство функций межслойного интерфейса.
w Отдельный модуль может либо выполнить свою работу самостоятельно, либо обратиться к другому модулю своего слоя, либо обратиться к нижележащему слою через межслойный интерфейс.
При таком подходе разработка системы осуществляется сверху вниз, от целей системы к их реализации. Сначала определяются функции слоев и межслойные интерфейсы, задающие общую структуру системы, а затем разрабатываются модули внутри слоев. Этот подход годится и для анализа сложных систем.
· Многослойная структура ОС
Вычислительную систему, работающую под управлением ОС на базе ядра, можно рассматривать как систему из трех иерархически упорядоченных слоев (рис. 5.2).
|
|
Рис. 5.2. Трехслойная структура вычислительной системы
При такой организации ОС приложения могут взаимодействовать с аппаратурой только через слой ядра.
· Многослойная структура ядра
Многослойный подход применим и к структуре ядра как сложного многофункционального комплекса. Обычно выделяют слои, приведенные на рис. 5.3, однако это разбиение достаточно условно.
Рис. 5.3. Многослойная структура ядра ОС
Средства аппаратной поддержки ОС – аппаратные средства, прямо участвующие в организации вычислительных процессов: средства поддержки привилегированного режима, система прерываний, переключение контекстов процессов, трансляция адресов, защита памяти и т.п.
Машино-зависимые модули – программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Примером может служить слой HAL (Hardware Abstraction Layer) в Windows NT/2000. На уровне HAL работа с устройством определенного типа (накопитель, видеоплата, мышь и т.п.) всегда описывается при помощи одного и того же заранее определенного набора функций. В случае, если устройство имеет иной набор функций (например, устаревший 3d-ускоритель может не поддерживать многих современных функций), драйвер обязан эмулировать стандартные функции с тем, чтобы ОС могла не заботиться о том, какое конкретно устройство установлено.
Базовые механизмы ядра. Модули этого слоя не принимают решений о распределении ресурсов, а только отрабатывают принятые на более высоком уровне решения. Выполняются наиболее примитивные операции ядра: программное переключение контекстов процессов, перемещение страниц между памятью и диском, диспетчеризация прерываний и т.п.
Менеджеры ресурсов. Модули этого уровня реализуют управление основными ресурсами системы. Группировка модулей в менеджеры обычно осуществляется по функциям основных подсистем ОС: выделяются менеджеры процессов, ввода-вывода и файловой системы (могут быть объединены), оперативной памяти.
|
|
Интерфейс системных вызовов. Взаимодействует непосредственно с приложениями и систем-ными утилитами, образуя прикладной программный интерфейс ОС (API).