Достоинства архитектуры с микроядром 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Достоинства архитектуры с микроядром



В литературе отмечаются некоторые общие достоинства использования микроядра (см. [FINK97, LIED96a, WAYN94a]). В их число входят следующее:

· единообразные интерфейсы;

· расширяемость;

· гибкость;

· переносимость;

· надежность;

· поддержка распределенных систем;

· поддержка объектно-ориентированных операционных систем.

Использование микроядра предполагает единообразный интерфейс (uniform interface) запросов, генерируемых процессами. Процессам не нужно различать службы, выполняющиеся на уровне ядра и на пользовательском уровне, потому что доступ ко всем этим службам осуществляется только с помощью передачи сообщений.

С появлением новых аппаратных устройств или методов программирования любую операционную систему неизбежно нужно будет пополнять новыми свойствами. Архитектура с применением микроядра способствует расширяемости (extensibility) операционных систем, позволяя добавлять в них новые сервисы, а также обеспечивать множественные сервисы в одной и той же функциональной области. Например, можно реализовать несколько различных способов организации хранения файлов на дисках. Далее, вместо того чтобы помещать все эти файловые сервисы в ядро, каждый способ организации хранения можно реализовать в виде процесса на пользовательском уровне. Таким образом, из всего разнообразия сервисов пользователь может выбрать тот, который подходит ему больше других. При добавлении нового свойства в операционную систему с архитектурой микроядра достаточно добавить или модифицировать лишь некоторые из серверов. Влияние новых или измененных серверов распространяется на ограниченное подмножество системы; кроме того, после модификации не нужно будет строить новое ядро.
С расширяемостью архитектуры микроядра тесно связано такое ее свойство, как гибкость (flexibility). В операционную систему можно не только добавлять новые свойства, но и удалять из нее те, которыми она обладает. Иногда это нужно, чтобы получить более компактную и эффективную версию. Операционная система с микроядром не обязательно является маленькой. На самом деле ее структура приспособлена к добавлению разнообразных возможностей. Однако не для всех компонентов системы нужно, чтобы они обладали, например, высоким уровнем безопасности или способностью к распределенным вычислениям. Если свойства, предъявляющие значительные требования к объему памяти, будут необязательными, базовый продукт сможет привлечь более широкий круг пользователей.

Почти полная монополия компании Intel на многие комплектующие компьютеров вряд ли будет существовать бесконечно. Таким образом, привлекательным свойством операционной системы становится ее переносимость (portability). В архитектуре с микроядром специально предназначенный для конкретного процессора код, или по крайней мере большая его часть, находится в микроядре. Поэтому изменения, которые потребуются для переноса системы на новый процессор, сводятся к минимуму и имеют тенденцию к размещению в отдельных логических группах.

Чем большим объемом обладает программный продукт, тем труднее проверить надежность его работы. Хотя модульность и помогает повысить надежность (reliability) работы системы, архитектура с микроядром дает еще более ощутимые преимущества. Маленькое микроядро можно тщательно протестировать. Использование в нем небольшого количества интерфейсов прикладного программирования повышает шансы на то, что сервисы операционной системы, работающие вне ядра, будут реализованы с помощью качественного кода. Системный программист имеет в своем распоряжении ограниченное количество интерфейсов и ограниченные способы организации взаимодействия, поэтому он не сможет отрицательно повлиять на другие системные компоненты.

Микроядро способствует поддержке распределенных систем (distributed systems), к которым относятся кластеры, управляемые распределенными операционными системами. Сообщение, которое пересылается от обслуживаемого процесса обслуживающему, должно содержать в себе идентификатор запрашиваемого сервиса. Если распределенная система (т.е. кластер) сконфигурирована так, что все процессы и сервисы в ней обладают уникальными идентификаторами, то, в сущности, на уровне микроядра образуется единый образ системы. Процесс может отправлять сообщение, не зная, на какой именно машине находится сервис, к которому он обращается. К этому вопросу мы еще вернемся, обсуждая в шестой части книги распределенные системы.

Архитектура с микроядром хорошо работает в среде объектно-ориентированных операционных систем (object-oriented operating system). Объектно-ориентированный подход способствует более строгой разработке микроядра и модульных расширений операционной системы. Поэтому многие разработчики прилагают усилия для перехода к объектно-ориентированному конструированию [WAYN94b]. Одним из многообещающих подходов, в котором сочетаются архитектура с микроядром и принципы объектно-ориентированных операционных систем, является подход с использованием компонентов [MESS96]. Компоненты — это объекты с четко заданными интерфейсами, которые могут соединяться между собой, образуя программы по принципу строительных блоков. Во всех взаимодействиях между компонентами используются их интерфейсы. Разработчики других систем, таких, как Windows 2000, не полагаются целиком и полностью на объектно-ориентированные методы, однако при разработке микроядра они широко применяют объектно-ориентированные принципы.

Производительность микроядра

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

Многое зависит от размеров и функциональных возможностей микроядра. В [LIED96a] подытожены результаты некоторых исследований, свидетельствующие о значительной потере производительности в так называемых микроядрах первого поколения. От этих потерь не удается избавиться, несмотря на усилия, направленные на оптимизацию кода микроядра. В попытке решить проблему разработчики увеличивали микроядро, снова включая в операционную систему критические серверы и драйверы. Основными примерами такого подхода являются операционные системы Mach и Chorus. Избирательное увеличение функциональности микроядра приводит к снижению количества переключений между пользовательским режимом и режимом ядра, а также переключений адресных пространств процессов. Хотя такой подход и снижает потери производительности, это происходит за счет сильных сторон архитектуры операционной системы с микроядром: минимальных интерфейсов-, гибкости и т.п.

Другой подход состоит в том, чтобы сделать микроядро не больше, а еще меньше. В [LIED96b] приводятся данные о том, что в микроядре, обладающем надлежащей архитектурой, удается избежать потерь производительности и наряду с этим повысить его гибкость и надежность. Чтобы вы имели представление о размерах микроядер, заметим, что типичное микроядро первого поколения состоит из 300 Кбайт кода и содержит в себе до 140 интерфейсов системных вызовов. Примером маленького микроядра второго поколения является ядро операционной системы L4 [HART97, LIED95], которое состоит из 12 Кбайт кода и содержит в себе 7 интерфейсов системных вызовов. Опыт работы с такими системами показывает, что они являются не менее, а иногда даже более, эффективными, чем такие мощные системы, как UNIX.

Архитектура микроядер

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

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

 

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 201; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.210.17 (0.007 с.)