Ядро в привилегированном режиме

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

Аппаратура компа должна поддерживать не менее двух режимов (пользовательский и режим ядра).

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

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

Структура ОС.

Вычислительная система, работающая под управлением ОС на основе ядра, рассматривается как многослойная структура. Пример 3 слойная: 3-утилиты и обрабатывающие программы; 2-ядро; 1 аппаратура. Отдельный модуль может выполнить свою работу самостоятельно или обратиться к другому модулю своего слоя или обратиться за помощью к ниже лежащему слою через межслойный интерфейс. Ядро можно рассмотреть как несколько слоев

Слои:

1. Средства аппаратной поддержки. Самый распространенный вид-это система прерываний, средства защиты памяти.

2. Машинно-зависимые компоненты. Этот слой экранирует вышележащие слои от особенности аппаратуры, т.е. вышележащие слои должны быть аппаратно-независимыми.

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

4. Менеджеры ресурсов.Этот слой образован модулями, которые реализуют стратегические задачи управления основными ресурсами. Пример: менеджер или диспетчер процесса, ввод/вывод файловой системы, оперативная память.

5. Интерфейс системных вызовов.Этот верхний слой ядра непосредственно взаимодействует с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Пример: операционная система ”Юникс” имеет не упорядоченное ядро с небольшим количеством четко выделенных слоев. Операционная система Windows NT ядро разделено на большое количество слоев и взаимодействие формализовано в большей степени.

Разбиение ядра на слои условное. Ос прошли долгий путь эволюционного развития. Слои выделены нечетко и ядро является неупорядоченным. Ядро разделено на большое число слоев. Их взаимодействие жестко формализовано (Windows NT).

 

 

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

Многие операционные системы работают на различных аппаратных платформах без существенных изменений в своем составе.

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

 

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

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

Основан на системном регистре процессора: словосостояние процессора PSW. Регистр содержит , определяющий режим работы процессора. В том числе текущий режим привилегий.

2* средства трансляции адресов. Это средства преобразования виртуального адреса в физический.

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

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

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

5* системный таймер. Прерывания от таймера используются ОС для слежения за расходом времени отдельными процессами.

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

 

Машинно-зависимые компоненты.

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

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

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

2. Должна исключаться возможность по умолчанию использовать стандартные конфигурации аппаратуры. Для осуществления действий по управлению аппаратурой должен быть написан набор аппаратно-зависимых функций. Пример:Windows NT диспетчер прерываний, преобразует аппаратные уровни прерываний конкретного процессора в стандартный набор прерываний с которым работают модули операционной системы.

3. Аппаратнозависимый код должен быть надежно изолирован в нескольких модулях, а не распределен по всей системе. У разработчика появляется возможность создать вариант машинно независимой части операционной системы.

 

Переносимость ОС

 

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

 

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

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

 

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

 

Вывод: при переносе Windows NT на другую аппаратную платформу необходимо изменить один модуль, который преобразует аппаратные прерывания в стандартный набор прерываний.

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

 

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

 

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

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

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

 

  1. машинозависимые модули
  2. модули выполняющие некоторые базовые функции (управление процессами, обработка прерываний, управление виртуальной памятью, пересылка сообщений, управление устройствами вв/выв).

 

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

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

Менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами приложений.

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

Механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом:

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

 

Достоинства и недостатки микроядерной архитектуры:

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

-переносимость

-расширяемость

-надежность

-поддержка распределенных приложений.

(-) снижение производительности.

(+) высокая степень расширяемости. Добавление новых функций требует разработки нового приложения и не затрагивает микроядро.

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

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

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

При выполнении системного вызова: в классической два переключения, в микроядерной - четыре.

Совместимость и множественные прикладные среды.

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

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

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

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

 

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

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

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

 

Достоинства и недостатки микроядерной архитектуры при конструировании множественных прикладных сред.