Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Микроядерная архитектура






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

Основная идея, заложенная в технологию микроядра, заключается в том, чтобы создать необходимую среду верхнего уровня иерархии, из которой можно легко получить доступ ко всем функциональным возможностям уровня аппаратного обеспечения. При этом микроядро является стартовой точкой для создания всех остальных модулей системы. Все эти остальные модули, реализующие необходимые системе функции, вызываются из микроядра и выполняют сервисную роль. При этом они получают статус обычного процесса или задачи. Можно сказать, что микроядерная архитектура соответствует технологии " клиент – сервер" [5]. Именно эта технология позволяет в большей мере и с меньшими трудозатратами реализовать принципы проектирования операционных систем.

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

Для большинства микроядерных ОС основой для такой архитектуры выступает технология микроядра ОС Mach, которая была создана в университете Карнеги Меллон.

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

Микроядро обеспечивает только пять различных типов сервисов:

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

– поддержка заданий и потоков;

– взаимодействиемеждупроцессами (Inter-Process Communication, IPC);

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

– сервисы хоста[6] процессора.

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

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

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

Представителем микроядерных ОС является операционная система реального времени QNX. Микроядро QNXподдерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Это микроядро обеспечивает только пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные версии этой ОС имели разные объемы ядер – от 8 до 46 Кбайт. Чтобы построить минимальную систему QNX, требуется добавить к микроядру менеджер процессов, который создает процессы и управляет ими и памятью процессов. Чтобы операционная система QNX была применима не только во встроенных и бездисковых системах, нужно добавить файловую систему и менеджер устройств. Эти менеджеры исполняются вне пространства ядра, так что ядро остается небольшим.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.