Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен по ОС_Ответы.doc
Скачиваний:
51
Добавлен:
24.09.2019
Размер:
926.72 Кб
Скачать

5) Основные архитектуры операционных систем. (монолитные, многоуровневые, микроядерные, объектно-ориентированные, виртуальные машины)

Тенденция в структурном построении ОС

  1. Монолитные системы

а)

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

б)

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

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

Все процедуры ядра системы собраны в один объектный файл.

Примеры: Ранние версии UNIX, MacOS, MSDOS.

Недостатки: систему нельзя загружать по частям, сложно модифицировать (расширить функциональность).

  1. Многоуровневые системы

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

OC THE, 1968г., Дейкстра (пакетная ОС)

Уровень:

0 – распределение времени процессора

1 – управление памятью

2 – связь между консолью оператора и процессами

3 – управление устройствами ввода/вывода и буферизация

4 – пользовательские программы

5 – системные операторы

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

OC MULTICS, уровни – “кольца защиты”.

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

  1. Клиент – сервер (микроядро)

Модель предполагает наличие программного компонента потребителя сервиса, который называется клиентом, и программного компонента поставщика сервиса (сервера).

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

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

Подход заменяет вертикальное распределение функций на горизонтальное.

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

  1. NT executive, исполнительная система WinNT

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

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

Недостаток: невозможность адаптации механизмов ОС под конкретного пользователя.

  1. Mach/Workplace OS

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

При этом используется парадигма разделения механизма и политики. Ядро отвечает за механизм реализации некоторого решения по управлению ресурсами, а сервер пользовательского режима отвечает за принятие решений (за политику).

Пример 1: Управление нитями.

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

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

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

Пример 2: Микроядро управляет аппаратурой страничной памяти.

У планировщика есть pager, который определяет стратегию замещения страниц и работает вне ядра.

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

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