Микроядерная архитектура является альтернативой классическому способу по¬строения операционной системы. Под классической архитектурой в данном случае понимается структурная организация ОС, в соот¬ветствии с которой все основные функции операционной системы, составляю¬щие многослойное ядро, выполняются в привилегированном режиме. При этом некоторые вспомогательные функции ОС оформляются в виде приложений и выполняются в пользовательском режиме наряду с обычными пользователь¬скими программами (становясь системными утилитами или обрабатывающими программами). Каждое приложение пользовательского режима работает в собст¬венном адресном пространстве и защищено тем самым от какого-либо вмеша¬тельства других приложений.
билет 5 тема 3.docx
билет 5 тема 3
100 Микроядерная архитектура ОС.
составляющие многослойное ядро,
Микроядерная архитектура является альтернативой классическому способу по
строения операционной системы. Под классической архитектурой в данном случае
понимается структурная организация ОС, в соответствии с которой все основные функции
операционной системы,
выполняются в
привилегированном режиме. При этом некоторые вспомогательные функции ОС
оформляются в виде приложений и выполняются в пользовательском режиме наряду с
обычными пользовательскими программами (становясь системными утилитами или
обрабатывающими программами). Каждое приложение пользовательского режима работает
в собственном адресном пространстве и защищено тем самым от какоголибо вмеша
тельства других приложений. Код ядра, выполняемый в привилегированном режиме, имеет
доступ к областям памяти всех приложений, но сам полностью от них защищен,
Приложения обращаются к ядру с запросами на выполнение системных функций.
Суть микроядерной архитектуры состоит в следующем. В привилегированном
режиме остается работать только очень небольшая часть ОС, называемая микроядром (рис.
10). Микроядро защищено от остальных частей ОС и приложений. В состав микроядра
обычно входят машиннозависимые модули, а также модули, выполняющие базовые (но не
все!) функции ядра по управлению процессами, обработке прерываний, управлению
виртуальной памятью, пересылке сообщений и управлению устройствами вводавывода,
связанные с загрузкой или чтением регистров устройств. Набор функций микроядра
обычно соответствует функциям слоя базовых механизмов обычного ядра. Такие функции
операционной системы трудно, если не невозможно, выполнить в пространстве
пользователя.
ядра оформляются в виде приложений, работающих в пользовательском режиме.
Однозначного решения о том, какие из системных функций нужно оставить в
привилегированном режиме, а какие перенести в пользовательский, не существует. В
общем случае многие менеджеры ресурсов, являющиеся неотъемлемыми частями обычного
ядра — файловая система, подсистемы управления виртуальной памятью и процессами,
менеджер безопасности и т. п., — становятся «периферийными» модулями, работающими в
пользовательском режиме.
Работающие в пользовательском режиме менеджеры ресурсов имеют принципи
альные отличия от традиционных утилит и обрабатывающих программ операционной
системы, хотя при микроядерной архитектуре все эти программные компоненты также
оформлены в виде приложений. Утилиты и обрабатывающие программы вызываются в
основном пользователями. Ситуации, когда одному приложению требуется выполнение
функции (процедуры) другого приложения, возникают крайне редко. Поэтому в
операционных системах с классической архитектурой отсутствует механизм, с помощью
которого одно приложение могло бы вызвать функции другого.
Совсем другая ситуация возникает, когда в форме приложения оформляется часть
операционной системы. Основным назначением такого приложения (т.к. оно представляет
собой часть ОС) является обслуживание запросов других приложений, например создание
процесса, выделение памяти, проверка прав доступа к ресурсу и т. д. Такие приложения,
вынесенные в пользовательский режим и выполняющие роль менеджеров ресурсов, называются серверами ОС, то есть модулями, основным назначением которых является
обслуживание запросов локальных приложений и других модулей ОС. Очевидно, что для
реализации микроядерной архитектуры необходимым условием является наличие в
операционной системе удобного и эффективного способа вызова процедур одного
процесса из другого. Поддержка такого механизма и является одной из главных задач
микроядра.
Схематично механизм обращения к функциям ОС, оформленным в виде серверов,
выглядит следующим образом (рис. 11).
Каждый сервер выполняется в пользовательском режиме, выполняя циклическую
проверку, не появился ли запрос от клиента на одну из его сервисных функций. Клиент,
которым может быть либо прикладная программа, либо другой компонент ОС,
запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему
сообщение. Непосредственная передача сообщений между приложениями невозможна, так
как их адресные пространства изолированы друг от друга. Микроядро, выполняющееся в
привилегированном режиме, имеет доступ к адресным пространствам каждого из этих
приложений и поэтому может работать в качестве посредника. Микроядро сначала
передает сообщение, содержащее имя и параметры вызываемой процедуры нужному
серверу, затем сервер выполняет запрошенную операцию, после чего ядро возвращает
результаты клиенту с помощью другого сообщения. Таким образом, работа микроядерной
операционной системы соответствует известной модели клиентсервер, в которой роль
транспортных средств выполняет микроядро.
Лекция "Микроядерная архитектура ОС. "
Лекция "Микроядерная архитектура ОС. "
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.