Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_СГTУ new v10.doc
Скачиваний:
101
Добавлен:
12.11.2019
Размер:
4.13 Mб
Скачать

1.5 Архитектуры операционных систем

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

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

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

В архитектуре с микроядром уровни расположены вертикально, а в слоистой горизонтально (рис.11). Внешние по отношению к ядру компоненты реализуются как обслуживаемые процессы. Между собой они взаимодействуют как равноправные партнёры. Обычно взаимодействие реализуется с помощью обмена сообщениями, которые передаются через микроядро. Таким образом, микроядро вступает в роль посредника. Оно подтверждает правильность сообщений, передаёт их от одного компонента к другому и предоставляет доступ к аппаратному обеспечению [4]. Микроядро выполняет защитные функции, оно не пропускает сообщения, если такой обмен не разрешён. Например, если приложению нужно открыть файл, то оно отправляет сообщение администратору ФС, если ему нужно создать новый поток в процессе, то оно отправляет сообщение администратору процессов. Каждый из администраторов может отправлять сообщения другим администраторам (серверам, супервизорам, менеджерам) и обращаться к элементарным функциям микроядра и т.о. в одном компьютере реализуется архитектура клиент-сервер.

Достоинством архитектуры микроядра является [3]:

  • единообразный интерфейс;

  • расширяемость;

  • гибкость;

  • переносимость;

  • надёжность;

  • поддержка распределённых вычислительных систем;

  • п оддержка объектно-ориентированных систем на основе использования компонентов.

Рис. 11.Структуры многослойного ядра и микроядра

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

  • низкоуровневое управление памятью;

  • взаимодействие между процессами;

  • управление вводом/выводом и прерываниями.

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

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

Когда поток приложения обращается к странице, которая отсутствует в основной памяти, возникает прерывание из-за отсутствия страницы, и управление перехватывается ядром (рис.12). После этого ядро отправляет системе страничной организации памяти сообщение, в котором указывается запрашиваемая страница. ССОП и ядро должны взаимодействовать между собой, чтобы выполнить действия по переносу требуемой страницы в основную память. Как только страница станет доступна, ССОП отправляет приложению сообщение о том, что оно может продолжить работу. Такая стратегия позволяет внешнему по отношению к ядру процессу отображать файлы БД в пользовательском адресном пространстве без участия ядра [3].

Рис. 12 Принцип работы структуры с микроядром

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

  1. Предоставление. Владелец адресного пространства может предоставить некоторые свои страницы другим процессам.

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

  3. Восстановление. Процесс может восстановить любые страницы, предоставленные другим процессам или отображенные в их адресном пространстве.