Билет 60 2. Архитектуры операционных систем. Принципы разработки архитектур ОС. Достоинства и недостатки различных архитектур

1. Синхронизация процессов и потоков. Методы взаимоисключений. Блокирующие переменные. Системные функции для работы с критическими секциями.

2. Архитектуры операционных систем. Принципы разработки архитектур ОС. Достоинства и недостатки различных архитектур.

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

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

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

Методы взаимоисключений.

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

Блокирующие переменные (программный подход)

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

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

Использование системных функций входа в критическую секцию

Семафоры Дейкстры.

Блокирующие переменные

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

Системные функции для работы с критическими секциями

Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса. Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее.

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

Принципы разработки архитектур ОС:

1. Концепция многоуровневой иерархической вычислительной системы (виртуальной машины) с ОС многослойной структуры.

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

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

4. Реализация двух режимов работы вычислительной системы: привилегированного режима (режима ядра – kernel mode) или режима супервизора (supervisor) и пользовательского режима (user mode) или режима задача (task mode).

5. Ограничение функций ядра (а, следовательно и числа его модулей) до минимально необходимых функций.

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

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

8. Функциональная избыточность.

9. Функциональная избирательность.

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

11. Мобильность – возможность переноса на различные аппаратные платформы.

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

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

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

Как правило, структура отсутствует

Многоуровневая архитектура

1. Между уровнями можно организовать четкий интерфейс.

2. Систему можно спроектировать методом «сверху вниз», а реализовать методом «снизу вверх».

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

4. Каждую новую виртуальную машину можно детально проверить, после чего продолжать дальнейшую работу.

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

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

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

Задача

У контроллера DMA четыре канала. Контроллер способен запрашивать 32-разрядное слово через каждые 100 нс. Ответ на запрос занимает столько же времени. насколько быстрой должна быть шина, чтобы не стать узким местом системы?

Если есть 4 канала, запросы идут каждые 100 нс, и одновременно с ними приходят и ответы (по идее тут асинхронная система), то за 100 нс идёт генерация 2*4*32=256 бит трафика.

Соответственно за 1 с 256*10^7 бит. Т.е. 256*10^7 / 1024/ 1024/ 1024 = 2,38 гбит/с (вполне реальная цифра)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: