Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Архитектура на базе ядра в привилегированном режиме



Концепция архитектуры.

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

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

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

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

Ядро включает модули, выполняющие основные функции ОС:

- управление процессами; управление памятью;

-управление вводом-выводом и файловая система;

-интерфейс прикладного программирования API (Application Program Interface) для поддержки обращений к ядру из приложений.

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

Вспомогательные модули по выполняемым функциям обычно подразделяют­ся на следующие группы:

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

системные обрабатывающие программы (компиляторы, редакторы связей, заг­рузчики, отладчики, текстовые или графические редакторы);

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

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

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

Решение о том, является ли какая-либо программа частью ОС или нет, принима­ет производитель ОС. Так, самостоятельное приложение, имеющее спрос, может быть включено в состав ОС (например, Веб-браузер Internet Explorer), или, наоборот, мо­дуль ОС может превратиться в отдельное приложение.

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

Рис. 1 - Взаимодействие между ядром и другими модулями

Привилегированный режим ядра и пользовательский режим

Операционная система для осуществления своих управляющих функций должна иметь по отношению к приложениям определенные привилегии. Поэтому аппаратура компьютера поддерживает как минимум два режима:

- пользовательский режим (user mode) - для работы приложений;

- привилегированный режим, он же - режим ядра (kernel mode), или режим суперви­зора (supervisor mode) - для работы ОС или ее частей.

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

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

- переключением процессора с задачи на задачу;

- управлением устройствами ввода-вывода;

- доступом к механизмам распределения и защиты памяти.

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

Если аппаратура (процессор) поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты и соответствующих прав доступа. Прямого соответствия между числом аппа­ратно реализуемых и программно реализуемых уровней привилегий нет. Так, на базе четырех уровней процессоров архитектуры х86 OS/2 строит трехуровневую, а Windows NT и Unix - двухуровневую систему привилегий.

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

Многослойная структура ОС

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

Система представляется как иерархия слоев.

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

Взаимодействие слоев осуществляется через посредство функций межслойного интерфейса.

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

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

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

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

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

Многослойная структура ядра

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

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

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

Машино-зависимые модули - программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью эк­ранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Примером может служить слой HAL (Hardware Abstraction Layer) в Windows NT/2000. На уровне HAL работа с устрой­ством определенного типа (накопитель, видеоплата, мышь и т.п.) всегда описыва­ется при помощи одного и того же заранее определенного набора функций. В слу­чае, если устройство имеет иной набор функций (например, устаревший 3d-уско- ритель может не поддерживать многих современных функций), драйвер обязан эму­лировать стандартные функции с тем, чтобы ОС могла не заботиться о том, какое конкретно устройство установлено.

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

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

Интерфейс системных вызовов. Взаимодействует непосредственно с приложе­ниями и систем-ными утилитами, образуя прикладной программный интерфейс ОС (API).





Дата публикования: 2014-11-03; Прочитано: 769 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...