АрхитектураОС
1.«Классическая» архитектура ОС 2. Многослойная архитектура ОС 3. Микроядерная архитектура ОС 4. Основные положения микроядерной архитектуры 5. Преимущества и недостатки микроядерной архитектуры.
1.«Классическая» архитектура ОС Компоненты ОС являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую.
1.«Классическая» архитектура ОС Все процедуры работают в привилегированном режиме. Монолитное ядро – это такая схема ОС, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной ОС ядро совпадает со всей системой.
1.«Классическая» архитектура ОС Во многих с монолитным ядром сборка ядра (то есть его компиляция) осуществляется отдельно для каждого компьютера, на который устанавливается ОС. При этом можно выбрать список оборудования и программных протоколов, поддержка которых будет включена в ядро.
1.«Классическая» архитектура ОС Так как ядро является единой программой, перекомпиляция – это единственный способ добавить в него новые компоненты или исключить неиспользуемые. Присутствие в ядре лишних компонентов нежелательно, так как ядро всегда полностью располагается в ОЗУ. Исключение ненужных компонентов повышает надежность ОС в целом.
1.«Классическая» архитектура ОС Монолитное ядро – старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство Unix-систем.
1.«Классическая» архитектура ОС Структура. В монолитном ядре выделяются сервисные процедуры, соответствующие системным вызовам. Сервисные процедуры выполняются в привилегированном режиме, тогда как пользовательские программы – в непривилегированном.
2. Многослойная архитектура ОС Можно разбить всю вычислительную систему на ряд более мелких уровней с хорошо определенными связями между ними (многоуровневые системы (Layered systems)), так чтобы объекты уровня N могли вызывать только объекты уровня N-1.
2. Многослойная архитектура ОС Нижним уровнем в таких системах обычно является hardware, верхним уровнем – интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне.
2. Многослойная архитектура ОС Слоеные системы хорошо реализуются. При использовании операций нижнего слоя не нужно знать, как они реализованы, нужно лишь понимать, что они делают. Слоеные системы хорошо тестируются. Отладка начинается с нижнего слоя и проводится послойно. При возникновении ошибки мы можем быть уверены, что она находится в тестируемом слое.
2. Многослойная архитектура ОС При использовании операций нижнего слоя не нужно знать, как они реализованы, нужно лишь понимать, что они делают. Слоеные системы хорошо тестируются. Отладка начинается с нижнего слоя и проводится послойно. При возникновении ошибки мы можем быть уверены, что она находится в тестируемом слое.
2. Многослойная архитектура ОС Слоеные системы хорошо модифицируются. При необходимости можно заменить лишь один слой, не трогая остальные. Но слоеные системы сложны для разработки: тяжело правильно определить порядок слоев и что к какому слою относится. Слоеные системы менее эффективны, чем монолитные.
3. Микроядерная архитектура ОС Главной особенностью подхода архитектуры построения ОС с микроядром является то, что в привилегированном режиме остается работать только очень малая часть ОС, называемая соответственно микроядром. Микроядро защищено от остальных частей ОС и пользовательских приложений.
3. Микроядерная архитектура ОС Набор входящих в состав микроядра функций соответствует слою базовых механизмов обычного ядра, хотя в состав микроядра включаются далеко не все базовые функции ядра, а только функции управления процессами, обработки прерываний, управления виртуальной памятью, пересылки сообщений, управления устройствами ввода-вывода.
3. Микроядерная архитектура ОС Выполнение таких функций ОС практически невозможно реализовать в пользовательском режиме. Все машинно-зависимые модули ОС также включаются в микроядро.
3. Микроядерная архитектура ОС Не вошедшие в состав микроядра высокоуровневые функции и модули ядра оформляются в виде обычных приложений, работающих в пользовательском режиме. На рисунке ниже можно видеть основные различия в построении ОС с монолитным ядром (рис.1 а) и архитектурой с микроядром (рис. 1 б).
Рисунок 1. Строение ОС с монолитным ядром и с архитектурой микроядром.
4. Основные положения микроядерной архитектуры Непосредственная передача сообщений между приложениями невозможна, поскольку их адресные пространства изолированы друг от друга.
4. Основные положения микроядерной архитектуры Микроядро ОС, выполняющееся в привилегированном режиме, имеет доступ к адресным пространствам каждого из этих приложений и поэтому может выступать в качестве посредника при передаче сообщений.
4. Основные положения микроядерной архитектуры Микроядро сначала передает сообщение, содержащее имя и параметры вызываемой процедуры соответствующему серверу, затем сервер выполняет запрошенную операцию, после чего микроядро возвращает результаты клиенту посредством другого сообщения.
4. Основные положения микроядерной архитектуры Таким образом, работа микроядерной ОС соответствует известной модели клиент-сервер, в которой роль транспортных средств выполняет микроядро.
4. Основные положения микроядерной архитектуры Стандартизованные протоколы предоставления сервиса или ресурсов позволяют серверу обслуживать клиента независимо от деталей их реализации, что открывает перед разработчиками широкие возможности для построения распределенных систем.
4. Основные положения микроядерной архитектуры Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания. Один и тот же процесс может быть клиентом по отношению к одним ресурсам и сервером для других.
4. Основные положения микроядерной архитектуры Данная модель успешно применяется не только при построении ОС, но и при создании программного обеспечения любого уровня.
5. Преимущества и недостатки микроядерной архитектуры. ОС с микроядром во многом удовлетворяют требованиям, предъявляемым к современным ОС, обладая переносимость ю, расширяемостью, надежностью, и создают хорошие предпосылки для поддержки распределенных приложений. Но все эти достоинства ОС приобретает в ущерб производительности.
5. Преимущества и недостатки микроядерной архитектуры. Микроядерной ОС присуща изолированность всего машинно-зависимого кода в микроядре, вследствие чего для переноса системы на новую аппаратную платформу требуется min количество изменений, причём все они логически сгруппированы. Эта особенность ОС с микроядром является их несомненным достоинством.
5. Преимущества и недостатки микроядерной архитектуры. Особенности архитектуры микроядерных ОС обеспечивают их высокую степень расширяемости по сравнению с другими ОС. Добавление очередной подсистемы требует только лишь разработки нового приложения и никоим образом не затрагивает целостность микроядра.
5. Преимущества и недостатки микроядерной архитектуры. Микроядерная структура позволяет не только увеличивать, но и сокращать число компонентов ОС, что также бывает необходимо.
5. Преимущества и недостатки микроядерной архитектуры. При микро ядерном подходе конфигурируемость не вызывает никаких проблем и не требует особых мер, достаточно изменить файл с настройками начальной конфигурации системы или же остановить ненужные больше серверы в ходе работы обычными для остановки приложений средствами.
5. Преимущества и недостатки микроядерной архитектуры. Использование микроядерной модели повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов ОС, чего не наблюдается а традиционной ОС, где все модули ядра влияют друг на друга.
5. Преимущества и недостатки микроядерной архитектуры. И если отдельный сервер терпит крах, то он может быть перезапущен без останова или повреждения остальных серверов ОС.
5. Преимущества и недостатки микроядерной архитектуры. Другим потенциальным источником повышения надежности ОС является уменьшенный объем кода микроядра по сравнению с классическим ядром - это снижает вероятность появления ошибок программирования.
5. Преимущества и недостатки микроядерной архитектуры. Модель с микроядром хорошо подходит для поддержки распределенных вычислений, так как использует механизмы, аналогичные сетевым, - взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной ОС могут работать как на одном, так и на разных компьютерах.
5. Преимущества и недостатки микроядерной архитектуры. Все рассмотренные ранее свойства ОС с микроядерной архитектурой свидетельствовали о предпочтительности ее использования разработчиками. Однако, как уже говорилось, все эти качества приобретаются за счет снижения производительности ОС.
5. Преимущества и недостатки микроядерной архитектуры. Дело в том, что при классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации - четырьмя.
5. Преимущества и недостатки микроядерной архитектуры. Таким образом, ОС на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим ядром. Именно поэтому микроядерный подход не получил такого широкого распространения, которое ему предрекали.
5. Преимущества и недостатки микроядерной архитектуры. Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, ядро операционной системы Linux представляет собой монолитную систему с элементами микроядерной архитектуры.
5. Преимущества и недостатки микроядерной архитектуры. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра – так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.