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

Как известно, система реального времени (СРВ) должна давать отклик на любые

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

Для этого должны выполняться следующие требования.

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

• Одновременность обработки. Даже если наступает более одного события одновременно,все временные ограничения для всех событий должны быть выдержаны.

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

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

Итак, перечислим основные требования к ОСРВ.

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

Требование 1. Операционная система должна быть мультипрограммной и мультизадачной{многопоточной — multi-threaded), а также активно использовать прерываниядля диспетчеризации. Как указывалось выше, ОСРВ должна быть предсказуемой.

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

(и аппаратура) должна также обеспечивать прерывания на уровне обработки прерываний.

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

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

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

Требование 3. Должна существовать система наследования приоритетов. На самомделе именно этот механизм синхронизации и тот факт, что различные потокивыполнения используют одно и то же пространство памяти, отличают их от процессов.

Как мы уже знаем, процессы не разделяют одно и то же пространство памяти. Так, например, старые версии UNIX не являются многопоточными. «Старая» UNIX — многозадачная ОС, где задачами являются процессы (а не потоки), которые сообщаются через каналы связи (pipes) и разделяемую память. Оба этих механизма используют файловую систему, а ее поведение непредсказуемо.

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

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

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

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

должны быть распределены заранее.

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

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

Наши рекомендации