- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Микроядерная архитектура
Микроядерная архитектура отличается от ядерной тем, что для еще большей устойчивости и гибкости ОС из состава ядра удалили слой менеджеров ресурсов, а также некоторые другие функции.
В состав микроядра обычно входят машинно-зависимые модули, и модули, выполняющие базовые функции:
обработку прерываний;
управление процессами;
управление виртуальной памятью;
управление устройствами ввода-вывода.
Нет однозначного ответа на вопрос о том, какие функции следует оставлять в режиме ядра, а какие переносить в пользовательский режим. Часто переносят в пользовательский режим менеджеры ресурсов (которые в классической схеме являются функциями ядра). Это файловая система, подсистемы управления процессами, менеджер безопасности и другие.
Менеджеры ресурсов, работающие в пользовательском режиме, принципиально отличаются от традиционных утилит. Утилиты вызываются в основном пользователями, и при использовании классической архитектуры ядра крайне редко возникает ситуация, когда одному приложению необходимо использовать функции другого. Если же в виде утилиты оформляется часть ОС, то ситуация становится совсем другой. Основная задача такой утилиты-приложения становится обслуживание запросов других приложений. По этой причине менеджеры ресурсов, работающие в пользовательском режиме, называются серверами ОС, т.е. модулями, назначение которых – обслуживать запросы других модулей.
Специфическим свойством работы микроядра является то, что каждое приложение работает в своем адресном пространстве. Непосредственная передача сообщений между приложениями невозможна. В качестве посредника работает микроядро, которое имеет доступ ко всем адресным пространствам.
В такой схеме передачи сообщений заключается основной недостаток микроядерной архитектуры – снижение производительности системы вследствие недоступности адресного пространства программ – серверов и затрат на связь посредством микроядра.
Основные достоинства микроядерной архитектуры ОС.
Хорошая переносимость, поскольку весь машинно-зависимый код локализован в микроядре.
Хорошая расширяемость, поскольку добавление новой функции или подсистемы требует только разработки нового приложения, но никак не затрагивает микроядро, кроме того, микроядерная архитектура позволяет не только добавлять, но и сокращать число компонентов ОС.
Надежность ОС, поскольку каждый сервер использует свое адресное пространство, и не затрагивает других модулей ОС. В традиционной ОС все модули ядра могут влиять друг на друга.
Возможность распределенных вычислений, так как серверы такой ОС могут работать как на одном, так и на разных компьютерах.
Но из-за снижения производительности при использовании микроядра, разработчики включают в ядро больше функций ОС, чем это делает микроядерная архитектура.
Пример. В Windows NT над ядром и драйверами устройств располагается исполняющая система, состоящая из 10 компонентов. Эти компоненты:
Менеджер объектов (объекты – процессы, потоки, файлы, каталоги, семафоры, таймеры…).
Менеджер процессов – занимается созданием и завершением процессов и потоков.
Менеджер памяти – реализует механизм виртуальной памяти со страничной подкачкой.
Менеджер безопасности.
Менеджер ввода-вывода (управляет устройствами ввода-вывода).
Менеджер дискового КЭШа.
Менеджер plug-and-play (получает все уведомления об установленных новых устройствах, находит и загружает соответствующий драйвер).
Менеджер энергопотребления – выключает монитор и диски, если к ним не было обращения в течение заданного времени.
Менеджер конфигурации – отвечает за состояние реестра.
Менеджер локального вызова процедуры – обеспечивает специальный механизм взаимодействия процессов и потоков для обеспечения максимальной скорости обработки системных вызовов (а не стандартный механизм взаимодействия процессов).