Некоторые архитектуры СРВ

ОСРВ с монолитной архитектурой можно представить в виде

Прикладного уровня: состоит из работающих прикладных процессов;

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

  • интерфейс между приложениями и ядром (API)
  • собственно ядро системы
  • интерфейс между ядром и оборудованием (драйверы устройств).

API в таких системах играет двойную роль:

1. управление взаимодействием прикладных процессов и системы;

2. обеспечение непрерывности выполнения кода системы (т.е. отсутствие переключения задач во время исполнения кода системы).

Основным преимуществом монолитной архитектуры является относительная быстрота работы по сравнению с другими архитектурами.

Недостатки монолитной архитектуры:

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

2. Ядро не может быть прервано пользовательской задачей. Это может привести к тому, что высокоприоритетная задача может не получить управление из-за работы низкоприоритетной.

3. Сложность переноса на новый архитектуры процессора из-за значительных ассемблерных вставок.

4. Негибкость и сложность развития: изменение части ядра системы требует его полной перекомпиляции.

Модульная архитектура (на основе микроядра) появилась как попытка убрать узкое место – API и облегчить модернизацию системы и перенос ее на новые процессоры. API обеспечивает связь прикладных процессов и специального модуля – менеджера процессов. Однако, теперь микроядро играет двойную роль:

1. управление взаимодействием частей системы (например, менеджеров процессов и файлов)

2. обеспечение непрерывности выполнения кода системы (т.е. отсутствие переключения задач во время исполнения микроядра).

Недостатки у модульной архитектуры фактически те же, что и у монолитной. Проблемы перешли с уровня API на уровень микроядра. Системный интерфейс по-прежнему не допускает переключения задач во время работы микроядра, только сократилось время пребывания в этом состоянии. API по-прежнему может быть реализован только на ассемблере, проблемы с переносимостью микроядра уменьшились (в связи с сокращением его размера), но остались. Объектная архитектура на основе объектов-микроядер. В этой архитектуре API отсутствует вообще. Взаимодействие между компонентами системы (микроядрами) и пользовательскими процессами осуществляется посредством обычного вызова функций, поскольку и система, и приложения написаны на одном языке (Для ОСРВ SoftKernel это C++).Это обеспечивает максимальную скорость системных вызовов.

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

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

Роль API играет компилятор и динамический редактор объектных связей (linker). При старте приложения динамический linker загружает нужные ему микроядра (т.е., в отличие от предыдущих систем, не все компоненты самой операционной системы должны быть загружены в оперативную память). Если микроядро уже загружено для другого приложения, оно повторно не загружается, а использует код и данные уже имеющегося ядра. Это позволяет уменьшить объем требуемой памяти.


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



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