Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 2_структура ОС.doc
Скачиваний:
71
Добавлен:
20.06.2014
Размер:
244.22 Кб
Скачать

2.1.1.4. Экзоядро

Идея в том, чтобы разделить все ресурсы на подмножества, отдав каждое подмножество отдельной машине (виртуальной). На нижнем уровне в режиме ядра работает программа, которая называется экзоядро. В её задачу входит распределение ресурсов для виртуальных машин, а затем – проверка их использования, т.е. отслеживание попыток машин использовать чужой ресурс. Каждая виртуальная машина на уровне пользователя может работать с собственной ОС, при условии, что каждая машина ограничена набором ресурсов, которые были запрошены ею и которые были ей предоставлены. Преимущество схемы экзоядра состоит в том, что можно обойтись без уровня отображения. При других методах работы каждая виртуальная машина считает, что она использует свой собственный диск, с нумерацией блоков от нуля до некоторого максимума. Поэтому монитор виртуальной машины должен поддерживать таблицы предобразования адресов на диске. При наличии экзоядра необходимость преобразования отпадает, т.к. нужно хранить лишь запись о том, какой виртуальной машине выделен данный ресурс. Такой подход имеет еще одно преимущество: он отделяет многозадачность от операционной системы пользователя с меньшими затратами, так как необходимо лишь не допускать вмешательства одной виртуальной машины в работу другой.

2.1.1.5. Микроядерная архитектура. Модели "клиент-сервер"

Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами.

Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы.

Недостатки: Передача данных между процессами требует накладных расходов.

Современная тенденция в разработке операционных систем состоит в перенесении значительной части системного кода на уровень пользователя и одновременной минимизации ядра. Речь идет о подходе к построению ядра, называемом микроядерной архитектурой (microkernel architecture) операционной системы, когда большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью. Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.

Процессы подразделяются на клиентские и серверные. В задачу ядра входит только управление связью между клиентами и серверами (рис. 1-2).

ОС разделяется на маленькие части, каждая занимается только своим делом. Все такие элементы – серверы – работают на уровне пользователя и не имеют доступа к оборудованию.

Рис.1

Другое преимущество – простота адаптации к распределенным системам. Общение клиента с сервером сводится к пересылке сообщений, при этом обоим можно не знать, по каким каналам сообщения передаются фактически.

Рис.2

Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.

И чтобы добавить в ОС с микроядром драйвер того или иного устройства, не надо перекомпилировать всё ядро, а надо лишь отдельно откомпилировать этот драйвер и запустить его в пользовательском пространстве.

В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность. Для того чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем - необходимость очень аккуратного проектирования.

Микроядра типа ядра ОС Minix и GNU Hurd развиваются медленно, гораздо медленнее, чем Linux и ядро систем семейства BSD, но они обладают огромным потенциалом, то есть заделом на будущее, и, возможно, в этом самом будущем, достигнут аналогичного функционала.

Клаcсическим пpимером микpоядерной cистемы являeтся Symbian OS. Этo пpимер pаспространенной и oтработанной микpоядеpной (a нaчиная c вeрсии Symbian OS v8.1, и нaноядерной) oперационной сиcтемы. B oтличии oт Windows NT, cоздателям Symbian OS удaлось cовмеcтить эффeктивность и кoнцептуальную cтройность, нeсмотря нa тo чтo совремeнные вeрcии этoй сиcтемы пpедостaвляют обширные возможности, в тoм чиcле cредства для pабoты c пoтоковыми дaнными, cтеками пpотoколов, кpитичными к лaтентности ядpа, гpафикой и видеo выcокого pазрeшения). Будyчи микpoядерной oпeрационной cистемой, Symbian «вынoсит» пpaктически вcе пpикладные (т.e. выxoдящие зa прeделы кoмпетeнции ядpа) зaдачи в мoдули-сeрверы, фyнкциoнирующие в пoльзовательском aдреcном пpoстранствe.

Примеры: Symbian OS; Mach, используемый в GNU/Hurd и MacOS X; QNX; AIX; Minix ; ChorusOS ; AmigaOS; MorphOS.