В чём суть архитектуры ОС РВ с разделяемым ядром?

Архитектура гипервизора

Микроядро — это минимальная реализация функций ядра операционной системы.

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

К ним относятся:

управление адресным пространством оперативной памяти.

управление адресным пространством виртуальной памяти.

управление процессами и потоками (нитями).

средства межпроцессной коммуникации.

Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя (Ring3) и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.

В этой архитектуре API

отсутствует вообще. Взаимодействие между компонентами системы (микроядрами) и

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

поскольку и система, и приложения написаны на одном языке (Для ОСРВ SoftKernel это

C++).Это обеспечивает максимальную скорость системных вызовов.

Фактическое равноправие всех компонент системы обеспечивает возможность

переключения задач в любое время, т.е. система полностью preemptible.

Объектно-ориентированный подход обеспечивает модульность, безопасность, легкость

модернизации и повторного использования кода.

Роль API играет компилятор и динамический редактор объектных связей (linker). При

старте приложения динамический linker загружает нужные ему микроядра (т.е., в отличие от

предыдущих систем, не все компоненты самой операционной системы должны быть загружены

в оперативную память). Если микроядро уже загружено для другого приложения, оно повторно

не загружается, а использует код и данные уже имеющегося ядра. Это позволяет уменьшить

объем требуемой памяти.

Поскольку разные приложения разделяют одни микроядра, то они должны работать в

одном адресном пространстве. Следовательно, система не может использовать виртуальную

память и тем самым работает быстрее (так как исключаются задержки на трансляцию

виртуального адреса в физический).

Поскольку все приложения и сами микроядра работают в одном адресном пространстве,

то они загружаются в память, начиная с неизвестного на момент компиляции адреса.

Следовательно, приложения и микроядра не должны зависеть от начального адреса (как по

коду, так и поданным (последнее обеспечить значительно сложнее)). Это свойство

автоматически обеспечивает возможность записи приложений и модулей в ПЗУ, с их

последующим исполнением как в самом ПЗУ, так и оперативной памяти.

Микроядра по своим характеристикам напоминают структуры, используемые в других

операционных системах. Однако есть и свои различия.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: