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

Вопрос 52. Типы архитектур осрв. Монолитная архитектура.

ОСРВ с монолитной архитектурой можно представить в виде

1. прикладного уровня: состоит из работающих прикладных процессов;

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

? интерфейс между приложениями и ядром (API),

? собственно ядро системы,

? интерфейс между ядром и оборудованием (драйверы устройств).

API в таких системах играет двойную роль:

1. управление взаимодействием прикладных процессов и системы,

2. обеспечение непрерывности выполнения кода системы (т.е. отсутствие переключения задач во время исполнения кода системы).

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

Недостатки монолитной архитектуры.

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

2. Ядро не может быть прервано пользовательской задачей (non-preemptable). Это может приводить к тому, что высокоприоритетная задача может не получить управления из-за работы низкоприоритетной. Например, низкоприоритетная задача запросила вы деление памяти, сделала системный вызов, до окончания которого сигнал активизации высокоприоритетной задачи не сможет ее активизировать.

3. Сложность переноса на новые архитектуры процессора из-за значительных ассемблерных вставок.

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

Вопрос 54. Проблемы, возникающие при синхронизации задач и идеи их разрешения.

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

При синхронизации задач необходимо бороться с 3-мя проблемами:

1. "блокировка" ("lockout"): процесс (задача) ожидает ресурс, который никогда не освободится,

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

3. "голодовка" ("starvation"): процесс (задача) монополизировал процессор.

Для минимизации этих проблем используются следующие идеи.

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

Задачи делятся на группы:

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

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

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