Архитектура операционных систем Семестр 2, Лекция 1
Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей ОС Принципы функционирования ОС в плане выполнения отдельных функций и в целом
Типы архитектур Монолитная архитектура ОС с ядром ОС с ядром в привилегированном режиме Многослойная архитектура Микроядерная архитектура
Монолитная архитектура Нет разделения на отдельные модули Модули ОС сильно связаны Затруднено обновление операционной системы Затруднена разработка и отладка ОС Существует только в теории ОС
ОС с ядром Выделяется специальный модуль – ядро Для выполнения дополнительных задач используются вспомогательные модули Ядро Вспомогательный модуль Приложение пользователя
Функции ядра Внутрисистемные задачи организации вычислительного процесса Создание прикладной программной среды (предоставление API-функций приложениям пользователя и вспомогательным модулям)
Особенности реализации ядра Ядро реализует только основные функции ОС При реализации ядра важна скорость выполнения его функций Функции ядра реализуются как резидентные модули Ядро реализуется как программный модуль специального формата
Виды вспомогательных модулей Утилиты ОС Системные обрабатывающие программы (СОП) Программы предоставления пользователю дополнительных услуг Библиотеки процедур различного назначения
Особенности реализации вспомогательных модулей Реализуются в виде дополнительных программ или библиотек Загружаются в ОП только на время использования, т.е. являются транзитными модулями Формат модулей совпадает с форматом приложений пользователя Нет четкого различия между вспомогательными модулями и приложениями пользователя Для выполнения своих задач используют API- функции, предоставляемые ядром
Достоинства ОС с ядром Легкая расширяемость Возможность обеспечения защиты системного программного кода и данных ОС
Ядро в привилегированном режиме Повышение привилегий основной части ОС по сравнению со вспомогательными модулями и приложениями пользователя Повышение уровня защищенности системного программного кода и данных операционной системы Пользовательский режим Привилегированный режим Ядро Утилиты СОП Приложения
Привилегированный режим Содержит модули, выполняющие критические функции (ядро) Содержит модули, реализующие прямые обращения к аппаратной части вычислительной системы Гарантирует защиту областей памяти ОС от воздействия приложений пользователей
Пользовательский режим Для выполнения вспомогательных модулей ОС Для выполнения приложений пользователя Обеспечивает защиту областей памяти приложений от воздействия других приложений (выполнение приложений в защищенном адресном пространстве)
Особенности выполнения приложений в пользовательском режиме Работа приложения Системный вызов Работа ядра Время переключения режимов
Многослойная структура ОС Развитие архитектуры ОС с ядром в привилегированном режиме Повышение уровня защищенности отдельных модулей ОС от воздействия других модулей Повышение уровня абстрагирования модулей верхних уровней ОС от аппаратной части ВС Повышение уровня независимости модулей Аппаратная часть Ядро Вспомогательные модули
Схема функционирования ОС с многослойной архитектурой Слой k Слой k+1 Межслойный интерфейс К слою k-1 К слою k+2 … … …
Типовой состав слоев ОС Средства аппаратной поддержки ОС Машинно-зависимые компоненты Базовые механизмы ядра Менеджеры ресурсов Интерфейс системных вызовов
Средства аппаратной поддержки операционной системы Часть функций операционной системы может быть реализована аппаратно Система прерываний Средства поддержки привилегированного режима Средства переключения контекстов Средства защиты областей памяти
Машинно-зависимые компоненты Напрямую взаимодействуют с аппаратной частью ВС В идеале полностью изолируют аппаратуру от модулей ОС, находящихся выше и приложений пользователей
Базовые механизмы ядра Наиболее примитивные функции и объекты ядра Переключение контекстов Диспетчеризация процессов Перемещение страниц памяти на диск и обратно Системные объекты
Менеджеры ресурсов Мощные функциональные модули, осуществляющие управление основными ресурсами системы Менеджеры процессов, ввода/вывода, файловой системы, безопасности…
Интерфейс системных вызовов Верхний слой ядра, взаимодействующий с системными утилитами и приложениями пользователя Образуют прикладной программный интерфейс
Микроядерная архитектура Облегчение ядра Перемещение всех дополнительных модулей и части модулей ядра (например, менеджеров ресурсов) на уровень пользователя Формирование набора серверов ОС, обеспечивающих выполнение функций ядра в режиме пользователя Микроядро Привилегированный режим Пользовательский режим Приложения Серверы Утилиты
Особенности выполнения приложений в ОС с микроядерной архитектурой Микроядро Приложения пользователей Сервер Утилиты
Тенденции в развитии ОС Аппаратная переносимость Совместимость Множественные прикладные среды
Аппаратная переносимость Код операционной системы может быть достаточно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа
Средства достижения аппаратной переносимости Использование для разработки ОС языков программирования, трансляторы которых существуют для большого числа разнотипных вычислительных систем Объем машинно-зависимых частей ОС должен быть минимизирован Машинно-зависимый код должен быть изолирован от других частей ОС
Совместимость Возможность перекомпиляции и/или исполнения приложений одной операционной системы в среде другой операционной системы
Типы совместимости Двоичная совместимость Существует возможность исполнения приложения одной ОС исполнить в среде другой ОС без перекомпиляции исходных кодов Совместимость исходных кодов Приложение одной ОС можно успешно перекомпилировать в другой ОС Совместимость на уровне вызовов API- функций Совместимость на уровне структуры исполняемого файла
Множественные программные среды Позволяют в рамках одной операционной системы исполнять приложения различных ОС без перекомпилирования исходных кодов Предоставление приложениям пользователей наборов API-функций различных операционных систем
Варианты реализации множественных программных сред Трансляция системных вызовов Равноправные прикладные программные интерфейсы Микроядерный подход
OS1 Трансляция системных вызовов Модули ядра API OS1 OS1 OS2 OS1 OS3 API OS2API OS3 Транслятор 2Транслятор 3
Равноправные API Модули ядра API OS1 OS1OS2OS3 API OS2API OS3
Микроядерный подход Микроядро OS1OS2OS3 API3API2API1 Сервер Приложения