Модульная архитектура (на основе микроядра).



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

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

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

Недостатки :Проблемы перешли с уровня API на уровень микроядра. Системный интерфейс по-прежнему не допускает переключения задач во время работы микроядра, API по-прежнему может быть реализован только на ассемблере, проблемы с переносимостью микроядра остались.

Объектная архитектура на основе объектов-микроядер.

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

Планирование задач.

Планировщик задач (scheduler) – это модуль (программа), отвечающий за разделение времени имеющихся процессоров между выполняющимися задачами. В ОСРВ целью планирования является обеспечение выполнения каждой готовой задачи к определенному моменту времени, при этом часто “параллельность” работы задач не допускается, поскольку тогда время исполнения задачи будет зависеть от наличия других задач. Существуют несколько схем назначения приоритетов.Фиксированные приоритеты ,Турнирное определение приоритета ,Определение приоритета по алгоритму round robin Ситуацию, когда более приоритетная задача блокирована менее приоритетной, владеющей разделяемым ресурсом, требуемым приоритетной задаче, называют инверсией приоритетов.

 

Переключение контекста.

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

Управление памятью.

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

-Даже если все страницы виртуальной памяти находятся в физической памяти, задержка, вносимая при трансляции адреса, не детерминирована. -Если же не все страницы виртуальной памяти находятся в физической памяти, то задержка, вносимая при трансляции адреса, не только не детерминирована, но и может быть очень большой

Языки разработки для СРВ.

Основные языки разработки для ОСРВ:

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

C. Обеспечивает получение высокой производительности за счет хорошо разработанных оптимизирующих компиляторов. C++. Включает язык C как подмножество и наследует все его положительные качества, Java., Ada., Языки четвертого поколения (CASE средства).

Требования, предъявляемые к ОС для обеспечения предсказуемости.

Требование 1. ОСРВ должна быть многонитевой и допускать вытеснение (preemtible). Предсказуемость достигается, если в ОС допускается много параллельных потоков управления (нитей), а диспетчер ОС может прервать выполнение любой нити (вытеснить ее) в системе и предоставить ресурсы той нити, которой они требуются в первую очередь.

Требование 2. Диспетчеризация должна осуществляться на базе приоритетов. механизм диспетчеризации потоков управления в современных ОС базируется на понятии приоритета: ресурсы предоставляются нити с наивысшим приоритетом.

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

Требование 4. Должна существовать система наследования приоритетов. Заключается в увеличении приоритета нити вручную прежде, чем ресурс окажется заблокированным.

Требование 5. Временные характеристики ОС должны быть предсказуемы и известны. Разработчик СРВ должен знать, сколько времени затрачивается на ту или иную системную работу. Поэтому производитель ОСРВ должен приводить следующие характеристики:

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

¨ мксимальное время маскирования прерываний драйверами и ОС;

¨ уровни системных прерываний;

 


Дата добавления: 2018-08-06; просмотров: 364; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!