Составление архитектуры ОС с микроядром
Цель работы: Научиться составлять архитектуру ОС с микроядром
Оборудование: Персональный компьютер с ОС Windows 7, ХР
Задание:Составить архитектуру ОС с микроядром
Теоретические сведения
В отличие от традиционной архитектуры, согласно которой операционная система представляет собой монолитное ядро, реализующие основные функции по управлению аппаратными ресурсами и организующее среду для выполнения пользовательских процессов, микроядерная архитектура распределяет функции ОС между микроядром и входящими в состав ОС системными сервисами, реализованными в виде процессов, равноправных с пользовательскими приложениями.
Микроядро реализует базовые функции операционной системы, на которые опираются эти системные сервисы и приложения. В результате, такие важные компоненты ОС как файловая система, сетевая поддержка и т. д. превращаются в по-настоящему независимые модули, которые функционируют как отдельные процессы и взаимодействуют с ядром и друг с другом на общих основаниях. Это означает, что имевшее место раньше четкое разделение программного обеспечения на системные и прикладные программы размывается, т. к., фактически, между процессами, реализующими функции ОС, и прикладными процессами, выполняющими программы пользователя, нет никаких различий. Все компоненты системы используют средства микроядра для обмена сообщениями, но взаимодействуют непосредственно. Микроядро лишь проверяет законность сообщений, пересылает их между компонентами и обеспечивает доступ к аппаратуре.
В основе архитектуры микроядерных ОС лежат следующие базовые концепции:
- минимизация набора функций, поддерживаемых микроядром, и реализация традиционных функций ОС (файловая система, сетевая поддержка) вне микроядра;
- организация синхронного и асинхронного взаимодействия между процессами исключительно через механизм обмена сообщениями;
- все отношения между компонентами строятся на основе модели клиент/сервер;
- применение объектно-ориентированного подхода при разработке архитектуры и программировании системы.
Микроядро отвечает за выполнение следующих функций:
связь между процессами - Микроядро управляет маршрутизацией сообщений; оно также поддерживает две другие формы IPC - прокси и сигналы;
сетевой интерфейс низкого уровня - Микроядро осуществляет доставку всех сообщений, предназначенных для процессов на других узлах сети;
диспетчеризация процессов - входящий в состав Ядра планировщик решает, какому из запущенных процессов должно быть передано управление;
первичная обработка прерываний - все аппаратные прерывания и исключения сначала проходят через Микроядро, а затем передаются соответствующему драйверу или системному менеджеру.
Рисунок 1- Архитектура ОС с «многослойным» ядром
Современная тенденция в разработке операционных систем состоит в перенесении значительной части системного кода на уровень пользователя и одновременной минимизации ядра. Речь идет о подходе к построению ядра, называемом микроядерной архитектурой(microkernel architecture) операционной системы, когда большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью.
Рисунок 2-Микроядерная архитектура операционной системы
Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.
Основное достоинство микроядерной архитектуры – высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядернаяархитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что существенно влияет на производительность. Для того чтобы микроядерная операционная система по скорости не уступалаоперационным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем – необходимость очень аккуратного проектирования.
Из-за того что различные микроядра обладают разными возможностями и размером, невозможно четко сформулировать правила, определяющие круг функций, предоставляемых микроядром, и его структуру. Чтобы дать представление об архитектуре микроядра, в этом разделе представлен минимальный набор его функций и сервисов.
Рисунок 3- Архитектуры ОС
В микроядро должны входить те функции, которые непосредственно зависят от аппаратного обеспечения, а также те, которые нужны для поддержки серверов и приложений, работающих в пользовательском режиме. Эти функции относятся к общим категориям функций низкоуровневого управления памятью, межпроцессного взаимодействия, а также управления вводом-выводом и прерываниями.
Ход работы
1. Изучить теоретические сведения
2. Провести анализ функций микроядра
3. Схематично составить архитектуру ОС с микроядром
Содержание отчета
Отчет по практической работе должен содержать следующие пункты:
- название практической работы;
- цель работы;
- краткие теоретические сведения;
- индивидуальное задание для выполнения практической работы;
- краткое описание хода выполнения работы;
- результаты выполнения работы;
- выводы.
Практическая работа №8