Архитектура современных операционных систем.
Архитектура ОС – структурная и функциональная организация ОС на основе некоторой совокупности программных модулей. В состав ОС входят исполняемые и объектные модули, стандартных, для данной ОС, форматов: программные модули специального формата (например драйверы), конфигурационные файлы, файлы документации и справки и др. Большинство современных ОС представляет собой хорошо сконструированные модульные схемы, способные к развитию, расширению и переносу на новые платформы. Для них разработаны универсальные подходы для разработки архитектуры:
Модульная организация
Функциональная избыточность (резерв на расширение функций)
Функциональная избирательность
Параметрическая универсальность
Концепция многоуровневой виртуальной вычислительной машины
Разделение модулей на 2 группы по функциям:
Ядро - модули, выполняющие основные функции
Окружение – модули, выполняющие вспомогательные функции
Разделение модулей на 2 группы по размещению в памяти:
Резидентные – постоянно находящиеся в памяти
Транзитные – загружаемые по мере необходимости
Реализация двух режимов работы:
Привилегированный - режим ядра или режим супервизора
Пользовательский – режим задачи
Ограничение функций ядра до минимального количества необходимых, в зависимости от позиционирования ОС.
Первые ОС имели монолитную структуру, состоящую из отдельных процедур, собранных в единый объектный файл. Каждая процедура видела другую процедуру, что не обеспечивало достаточную гибкость проекта.
Монолитные системы позднего периода стали относительно структурированы. При обращении к системным вызовам через системный интерфейс параметры помещались в строго определенные места (регистры или стеки), а затем выполнялись специальные команды прерывания, известные как вызов ядра. Эта команда переключает ЭВМ из режима пользователя в режим ядра и передает управление операционной системе, которая проверяет параметры вызова и определяет, какой системный вызов должен быть выполнен. Такая организация ОС включает:
Главная программа, вызывающая требуемые сервисные процедуры
Набор сервисных процедур, реализующих системные вызовы
Набор утилит, обслуживающих сервисные процедуры
Классической считается архитектура операционной системы, основанная на концепции иерархической многоуровневой машины, привилегированном ядре и пользовательском режиме работы транзитных модулей.
Ядро составляет основу ОС, а модули ядра выполняют основные функции – управление процессами, памятью, устройствами вводе-вывода и др. В ядре решаются внутрисистемные задачи, организации вычислительного процесса, недоступные для приложения.
Особый класс функций ядра служит для поддержки приложений, образуя прикладную программную среду. Приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения тех или иных действий, например чтение файлов, вывод графики на экран, получение системного времени и др.
Для обеспечения высокой скорости работы ядра модули ядра в большинстве своем являются резидентными и работают в привилегированном режиме. Этот режим обеспечивает безопасность работы ОС от вмешательства приложений и обеспечивает возможность работы модуля ядра с полным набором машинных инструкций, управляющих всеми ресурсами ЭВМ.
Модули ОС, выполняющие второстепенные функции называют окружением, они загружаются в память по мене необходимости – являются транзитными.
Окружение принято делить на группы: