Достоинства архитектуры с микроядром
В литературе отмечаются некоторые общие достоинства использования микроядра (см. [FINK97, LIED96a, WAYN94a]). В их число входят следующее:
• единообразные интерфейсы;
• расширяемость;
• гибкость;
• переносимость;
• надежность;
• поддержка распределенных систем;
• поддержка объектно-ориентированных операционных систем.
Использование микроядра предполагает единообразный интерфейс (uniform interface) запросов, генерируемых процессами. Процессам не нужно различать службы, выполняющиеся на уровне ядра и на пользовательском уровне, потому что доступ ко всем этим службам осуществляется только с помощью передачи сообщений.
С появлением новых аппаратных устройств или методов программирования любую операционную систему неизбежно нужно будет пополнять новыми свойствами. Архитектура с применением микроядра способствует расширяемости (extensibility) операционных систем, позволяя добавлять в них новые сервисы, а также обеспечивать множественные сервисы в одной и той же функциональной области. Например, можно реализовать несколько различных способов организации хранения файлов на дисках. Далее, вместо того чтобы помещать все эти файловые сервисы в ядро, каждый способ организации хранения можно реализовать в виде процесса на пользовательском уровне. Таким образом, из всего разнообразия сервисов пользователь может выбрать тот, который подходит ему больше других. При добавлении нового свойства в операционную систему с архитектурой микроядра достаточно добавить или модифицировать лишь некоторые из серверов. Влияние новых или измененных серверов распространяется на ограниченное подмножество системы; кроме того, после модификации не нужно будет строить новое ядро.
С расширяемостью архитектуры микроядра тесно связано такое ее свойство, как гибкость (flexibility). В операционную систему можно не только добавлять новые свойства, но и удалять из нее те, которыми она обладает. Иногда это нужно, чтобы получить более компактную и эффективную версию. Операционная система с микроядром не обязательно является маленькой. На самом деле ее структура приспособлена к добавлению разнообразных возможностей. Однако не для всех компонентов системы нужно, чтобы они обладали, например, высоким уровнем безопасности или способностью к распределенным вычислениям. Если свойства, предъявляющие значительные требования к объему памяти, будут необязательными, базовый продукт сможет привлечь более широкий круг пользователей.
Почти полная монополия компании Intel на многие комплектующие компьютеров вряд ли будет существовать бесконечно. Таким образом, привлекательным свойством операционной системы становится ее переносимость (portability). В архитектуре с микроядром специально предназначенный для конкретного процессора код, или по крайней мере большая его часть, находится в микроядре. Поэтому изменения, которые потребуются для переноса системы на новый процессор, сводятся к минимуму и имеют тенденцию к размещению в отдельных логических группах.
Чем большим объемом обладает программный продукт, тем труднее проверить надежность его работы. Хотя модульность и помогает повысить надежность (reliability) работы системы, архитектура с микроядром дает еще более ощутимые преимущества. Маленькое микроядро можно тщательно протестировать. Использование в нем небольшого количества интерфейсов прикладного программирования повышает шансы на то, что сервисы операционной системы, работающие вне ядра, будут реализованы с помощью качественного кода. Системный программист имеет в своем распоряжении ограниченное количество интерфейсов и ограниченные способы организации взаимодействия, поэтому он не сможет отрицательно повлиять на другие системные компоненты.
Микроядро способствует поддержке распределенных систем (distributed systems), к которым относятся кластеры, управляемые распределенными операционными системами. Сообщение, которое пересылается от обслуживаемого процесса обслуживающему, должно содержать в себе идентификатор запрашиваемого сервиса. Если распределенная система (т.е. кластер) сконфигурирована так, что все процессы и сервисы в ней обладают уникальными идентификаторами, то, в сущности, на уровне микроядра образуется единый образ системы. Процесс может отправлять сообщение, не зная, на какой именно машине находится сервис, к которому он обращается. К этому вопросу мы еще вернемся, обсуждая в шестой части книги распределенные системы.
Архитектура с микроядром хорошо работает в среде объектно-ориентированных операционных систем (object-oriented operating system). Объектно-ориентированный подход способствует более строгой разработке микроядра и модульных расширений операционной системы. Поэтому многие разработчики прилагают усилия для перехода к объектно-ориентированному конструированию [WAYN94b]. Одним из многообещающих подходов, в котором сочетаются архитектура с микроядром и принципы объектно-ориентированных операционных систем, является подход с использованием компонентов [MESS96]. Компоненты — это объекты с четко заданными интерфейсами, которые могут соединяться между собой, образуя программы по принципу строительных блоков. Во всех взаимодействиях между компонентами используются их интерфейсы. Разработчики других систем, таких, как Windows 2000, не полагаются целиком и полностью на объектно-ориентированные методы, однако при разработке микроядра они широко применяют объектно-ориентированные принципы.
Дата добавления: 2016-06-05; просмотров: 1810;