Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_5.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Микроядерные операционные системы

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

Основная идея, заложенная в технологию микроядра, будь то собственно ОС или ее графический интерфейс, заключается в том, чтобы конструировать необходи­мую среду верхнего уровня, из которой можно легко получить доступ ко всем функциональным возможностям уровня аппаратного обеспечения. При такой структуре ядро служит стартовой точкой для создания системы. Искусство раз­работки микроядра заключается в выборе базовых примитивов, которые должны в нем находиться для обеспечения необходимого и достаточного сервиса. В мик­роядре содержится и исполняется минимальное количество кода, необходимое для реализации основных системных вызовов. В число этих вызовов входят пе­редача сообщений и организация другого общения между внешними по отно­шению к микроядру процессами, поддержка управления прерываниями, а также ряд некоторых других функций. Остальные функции, характерные для «обыч­ных» (не микроядерных) ОС, обеспечиваются как модульные дополнения-про­цессы, взаимодействующие главным образом между собой и осуществляющие взаимодействие посредством передачи сообщений.

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

Созданная в университете Карнеги Меллон технология микроядра Mach служит основой для многих ОС.

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

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

Q управление виртуальной памятью;

Q задания и потоки; ' .--*•.-•

Q межпроцессные коммуникации (IPC1); •

Q управление поддержкой ввода/вывода и прерываниями;

Q сервисы набора хостами процессора.

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

Благодаря своим размерам и способности поддерживать стандартные сервисы программирования и характеристики в виде прикладных программ сами микро­ядра проще, чем ядра монолитных или модульных операционных систем. С мик­роядром функция операционной системы разбивается на модульные части, ко­торые могут быть сконфигурированы целым рядом способов, позволяя строить большие системы добавлением частей к меньшим. Например, каждый аппарат-но-независимый нейтральный сервис логически отделен и может быть сконфи­гурирован в широком диапазоне способов. Микроядра также облегчают под­держку мультипроцессоров созданием стандартной программной среды, которая может использовать множественные процессоры в случае их наличия, однако не требует их, если их нет. Специализированный код для^ мультипроцессоров ограничен самим микроядром. Более того, сети из общающихся между собой микроядер могут быть использованы для обеспечения операционной системной додаёржки возникающего класса массивно параллельных машин. В некоторых случаях определенной сложностью использования микроядерного подхода на лрактике является замедление скорости выполнения системных вызовов при пе­редаче сообщений через микроядро по сравнению с классическим подходом. С другой стороны, можно констатировать и обратное. Поскольку микроядра малы и имеют сравнительно мало требуемого к исполнению кода уровня ядра, они обеспечивают удобный способ поддержки характеристик реального време-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]