АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология
|
Микроядерные операционные системы
Микроядро — это минимальная стержневая часть операционной системы, служащая основой модульных и переносимых расширений. Существует мнение, что большинство операционных систем следующих поколений будут обладать микроядрами. Однако имеется масса разных мнений по поводу того, как следует организовывать службы операционной системы по отношению к микроядру: как проектировать драйверы устройств, чтобы добиться наибольшей эффективности, но сохранить функции драйверов максимально независимыми от аппаратуры; следует ли выполнять операции, не относящиеся к ядру, в пространстве ядра или в пространстве пользователя; стоит ли сохранять программы имеющихся подсистем (например, UNIX) или лучше отбросить все и начать с нуля.
Основная идея, заложенная в технологию микроядра, будь то собственно ОС или ее графический интерфейс, заключается в том, чтобы конструировать необходимую среду верхнего уровня, из которой можно легко получить доступ ко всем функциональным возможностям уровня аппаратного обеспечения. При такой структуре ядро служит стартовой точкой для создания системы. Искусство разработки микроядра заключается в выборе базовых примитивов, которые должны в нем находиться для обеспечения необходимого и достаточного сервиса. В микроядре содержится и исполняется минимальное количество кода, необходимое для реализации основных системных вызовов. В число этих вызовов входят передача сообщений и организация другого общения между внешними по отношению к микроядру процессами, поддержка управления прерываниями, а также ряд некоторых других функций. Остальные функции, характерные для «обычных» (не микроядерных) ОС, обеспечиваются как модульные дополнения-процессы, взаимодействующие главным образом между собой и осуществляющие взаимодействие посредством передачи сообщений.
Микроядро является маленьким, передающим сообщения модулем системного программного обеспечения, работающим в наиболее приоритетном состоянии компьютера и поддерживающим остальную часть операционной системы, рассматриваемую как набор серверных приложений. Интерес к микроядрам возрастал по мере того, как системные разработчики реагировали на сложность современных реализаций операционных систем, и поддержан тем, что исследовательское сообщество успешно продемонстрировало реализуемость концепции микроядра.
Созданная в университете Карнеги Меллон технология микроядра Mach служит основой для многих ОС.
Исполняемые микроядром функции ограничены в целях сокращения его размеров и максимизации количества кода, работающего как прикладная программа.
Микроядро включает только те функции, которые требуются для определения набора абстрактных сред обработки для прикладных программ и для организации совместной работы приложений в обеспечении ^сервисов и в действии клиентами и серверами. В результате микроядро обеспечивает только пять различных типов сервисов:
Q управление виртуальной памятью;
Q задания и потоки; '.--*•.-•
Q межпроцессные коммуникации (IPC1); •
Q управление поддержкой ввода/вывода и прерываниями;
Q сервисы набора хостами процессора.
Другие г^одсистемы и функции операционной системы, такие как системы управления, файлами, поддержка внешних устройств и традиционные программные интерфейсы, размещаются гв рдном или более системных сервисах либо в задаче операционной системы. Эти программы работаю^ как приложения микроядра. Следуя концепции множественных потоков на одно задание, микроядро создает прикладную.среду, обеспечивающую использование мультипроцессоров без требования, -чтобы какая-то конкретная мащина была мультипроцессорной: на однопроцессорной различные потоки.просто выполняются в разные времена. Вся поддержка, требуемая для мультипроцессорных машин, сконцентрирована В сравнительно малом и простом микроядре.
Благодаря своим размерам и способности поддерживать стандартные сервисы программирования и характеристики в виде прикладных программ сами микроядра проще, чем ядра монолитных или модульных операционных систем. С микроядром функция операционной системы разбивается на модульные части, которые могут быть сконфигурированы целым рядом способов, позволяя строить большие системы добавлением частей к меньшим. Например, каждый аппарат-но-независимый нейтральный сервис логически отделен и может быть сконфигурирован в широком диапазоне способов. Микроядра также облегчают поддержку мультипроцессоров созданием стандартной программной среды, которая может использовать множественные процессоры в случае их наличия, однако не требует их, если их нет. Специализированный код для^ мультипроцессоров ограничен самим микроядром. Более того, сети из общающихся между собой микроядер могут быть использованы для обеспечения операционной системной додаёржки возникающего класса массивно параллельных машин. В некоторых случаях определенной сложностью использования микроядерного подхода на лрактике является замедление скорости выполнения системных вызовов при передаче сообщений через микроядро по сравнению с классическим подходом. С другой стороны, можно констатировать и обратное. Поскольку микроядра малы и имеют сравнительно мало требуемого к исполнению кода уровня ядра, они обеспечивают удобный способ поддержки характеристик реального време-
IPC (inter-process communication) — межпроцессные коммуникации.
Host — главный компьютер. Сейчас этим термином обозначают любой Компьютер, имеющий IP-адрес.
ни, требующихся для мультимедиа, управления* устройствами и высокоскорост ных коммуникаций, Наконец, хорошо структурированные микроядра обеспе чивают изолирующий слой для аппаратных различий, которые не маскируются применением5 языков программирования высокого уровня. Таким образом, они упрощают перенесение кода и увеличивают уровень его повторного, использова ния.,, \, -•-.-., _-,.-. Наиболее ярким представителем микроядерных ОС является ОС реального вре мени QNX. Микроядро QNX поддерживает только планирование к диспетчери зацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня (более подробно об ОС QNX см. в главе 8). Микроядро обеспечивает всего лишь пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессо ров, как Intel 486. Как известно, разные версии этой ОС имели и различные объ емы ядер—от 8, до 46 Кбайт..;,
Чтобы построить минимальную систему QNX, требуется добавить к микроядру менеджер процессов, который создает процессы; управляет процессами и памятью процессов. Чтобы ОС QNX была применима не только во встроенных и бездисковых системах, нужно добавить файловую систему и менеджер устройств. Эти менеджеры исполняются вне пространства ядра, так что ядро остается небольшим.
Дата добавления: 2015-01-18 | Просмотры: 997 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
|