Требования к операционным системам реального времени



Система реального времени (СРВ) должна давать отклик на любые непредсказуемые внешние воздействия в течение предсказуемого интервала времени. Для этого должны выполняться следующие требования:

ограничение времени отклика– после наступления события реакция на него гарантированно должна последовать до предустановленного крайнего срока;

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

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

Иногда различают системы "мягкого" и "жесткого" реального времени. Различие между ними зависит от требований к системе: система считается "жесткой", если нарушение временных ограничений недопустимо, и "мягкой", если нарушение временных ограничений нежелательно. Можно показать, что "мягкая" СРВ не является СРВ вовсе, так как основное требование о соблюдении временных ограничений не выполнено. В действительности термин СРВ часто неправомерно применяют по отношению к быстрым системам.

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

Основными требованиями, предъявляемыми к ОСРВ являются следующие:

1) Мультипрограммность и мультизадачность

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

ОСРВ должна быть предсказуемой. Это означает не то, что ОСРВ должна быть быстрой, а то, что максимальное время выполнения какого-либо действия должно быть известно заранее и соответствовать требованиям приложения.

 

2) Приоритеты задач

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

 

3)Наследование приоритетов

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

В случае сложных систем единственный способ решения этой проблемы состоит в увеличении приоритета потока "вручную" прежде, чем ресурс окажется заблокированным. Это возможно в случае, когда два потока разных приоритетов претендуют на один ресурс.

В общем случае решения не существует.

 

4) Сихронизация процессов и задач

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

 

5) Предсказуемость

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

– латентную задержку прерывания, то есть время от момента прерывания до момента запуска задачи: она должна быть предсказуема и согласована с требованиями приложения (эта величина зависит от числа одновременно "висящих" прерываний);

– максимальное время выполнения каждого системного вызова (оно должно быть предсказуемо и не должно зависеть от числа объектов в системе);

– максимальное время маскирования прерываний драйверами и супервизорными модулями ОС.

 


Дата добавления: 2020-12-12; просмотров: 98; Мы поможем в написании вашей работы!

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






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