Архитектура операционной системы Функции операционной системы Функции операционной системы управление процессами; управление памятью; управление файлами и внешними устройствами; защита данных; администрирование; пользовательский интерфейс; интерфейс прикладного программирования. Модульная структура ОС Функции операционной системы реализуются в виде модулей Модули разделяются на две группы: ядро операционной системы; компоненты, реализующие дополнительные функции операционной системы. Модульная структура ОС Архитектура операционных систем имеет модульную структуру и состоит из двух основных уровней — компоненты, работающие в режиме пользователя и компоненты, работающие в привилегированном режиме. Программы и подсистемы, работающие в режиме пользователя имеют ограничения на доступ к системным ресурсам. Ядро работает в привилегированном режиме и имеет неограниченный доступ к системной памяти и внешним устройствам. Ядро ОС Ядро — модули, выполняющие основные функции операционной системы, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекста, управление памятью, обработка прерываний, работа с устройствами ввода/вывода и т. п. Ядро ОС Для надежного управления ходом выполнения программ операционная система должна иметь по отношению к пользовательским процессам определенные привилегии — иначе некорректно работающее приложение сможет вмешаться в работу операционной системы. Например, взаимодействие с аппаратурой возможно только на самом высоком уровне привилегий, который не дается обычным программам. Чаще всего именно ядро является той частью операционной системы, которая работает в привилегированном режиме. Архитектура ядра ОС Существует ряд универсальных подходов к созданию ядра операционных систем, среди которых можно выделить: архитектуру монолитного ядра архитектуру микроядра Архитектура ядра Монолитное ядро Большинство операционных систем использует монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский и наоборот (хотя этот процесс и имеет аппаратную поддержку, он занимает значительное время). Такое ядро делится на основные компоненты и модули, реализующие дополнительную функциональность, — например, работу со специфическими внешними устройствами и файловыми системами. Переход из пользовательского режима в режим ядра осуществляется через системные вызовы — интерфейс ядра операционной системы. Архитектура ядра Монолитное ядро Архитектура ядра Микроядро Альтернативой монолитному ядру является построение операционной системы на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой. В этом случае функции операционной системы более высокого уровня выполняются специализированными компонентами — серверами, работающими в пользовательском режиме. Управление и обмен данными при этом осуществляется через передачу сообщений, доставка которых является одной из основных функций микроядра. При таком построении операционная система работает более медленно, так как часто выполняются переходы между привилегированным и пользовательским режимом, зато система получается более гибкой — её функции можно наращивать или модифицировать, добавляя, изменяя или исключая серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от друга, как и любые пользовательские процессы. Архитектура ядра Микроядро Примеры реализации архитектуры ядра Монолитное ядро Операционная система Windows Операционная система Linux Микроядро Операционная система Mac OS X Операционная система реального времени QNX