logo search
HCS12 с применением языка С - royallib

8.2. Что является целью осрв?

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

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

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

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

Мы исследуем здесь широкий диапазон систем ОСРВ — от простых систем опроса (поллинга) до сложных, с несколькими различными прерываниями и рассмотрим также смешанные системы, которые являются комбинацией обоих типов систем. При простом опросе, операционная система регулярно проходит через ряд задач. Например, операционная система, контролируя местную защиту, могла бы последовательно циклически опрашивать состояние каждого датчика защиты в помещениях вашей фирмы. При этом система защиты как бы задает каждому датчику вопрос «А здесь все в порядке?» Система же, использующая несколько прерываний, вместо этого реагировала бы на события в тот момент, когда они случаются. Например, при активации датчика защиты, он вызывал бы тревогу в операционной системе через прерывание, показывая, что произошло некоторое важное событие, требующее реакции. Различие между двумя операционными системами заключается в том, что при поллинге, операционная система постоянно опрашивает состояния, а система, управляемая прерыванием, приводится в готовность, когда происходит некоторое ключевое событие. Важно подчеркнуть, что ни одна методика не лучше другой. Каждая имеет собственные преимущества и недостатки. В действительности важно, чтобы особенности каждой операционной системы соответствовали ее конкретному применению.

Пример: Имеется пример, иллюстрирующий, что операционная система может выполнять критическую функцию, но при этом использовать метод поллинга. Первый автор книги работал в старших классах и во время обучения в колледже в электронной фирме. Фирма разрабатывала систему защиты от хищения телевизоров для мотелей или гостиниц. Эта система должна была опрашивать телевизоры в каждом номере, чтобы установить их наличие. Система непрерывно и последовательно опрашивала все телевизоры в гостинице или мотеле. Если телевизор не отвечал, в главном офисе гостиницы звучал сигнал тревоги и высвечивался номер помещения на семисегментном дисплее. И снова, продолжался опрос, поскольку все действия имели равный приоритет. Это была простая методика, которую к тому же довольно легко было реализовать.

А теперь вернемся к теории ОСРВ. Любое действие операционной системы в ОСРВ называется задачей. Так как система предназначена для обработки целого ряда задач, она называется многозадачной системой. Считается, что все задачи выполняются одновременно. То есть отдельная задача выполняется до определенной точки перехода внутри задачи или до определенного момента, связанного с функциями задачи. Затем операционная система передает управление другой задаче, ожидающей выполнения. Управление возвращается первой задаче спустя некоторое время, и она продолжает выполнять соответствующие действия с того места, где была прервана. Так как операционная система передает управление от задачи к задаче, важно, чтобы состояние всех ключевых регистров, связанных с задачей сохранялось во время выполнения других задач. Ключевые значения регистров называются контекстом задачи . Такая работа ничем не отличается от деятельности официанта в приведенном ранее рассказе. Когда официант переключает внимание с одного столика на другой, ему, или ей необходимо запомнить состояние предыдущего столика — его контекст.

Операционные системы реального времени могут быть классифицированы по степени риска, связанного с невыполнением задачи за установленное ограниченное время обработки. Если система не завершает назначенную задачу за ограниченное время, то происходит сбой в работе ОСРВ. Даже удачное завершение задачи с запаздыванием должно считаться сбоем. Например, если мы рассматриваем ОСРВ, корректирующую направление полета ракеты, то будет считаться сбоем, если вычисления не будут закончены достаточно быстро, чтобы воздействовать на ход ракеты. По критичности ограничений, налагаемых на время отклика, системы ОСРВ можно разделить на следующие категории [8]:

• Жесткая система реального времени: система, где выход момента окончания вычислений за установленные временные рамки ведет к сбою системы;

• Твердая система реального времени: система, в которой небольшой выход за установленный предельный интервала может допускаться;

• Мягкая система реального времени: система, эффективность которой ухудшается при выходе за пределы временных ограничений, но система продолжает функционировать.

ОСРВ выполняет все действия, связанные с задачей, включая следующее:

• Управление задачей, включая планирование и диспетчеризацию;

• Связь между задачами (межзадачная связь);

• Управление системой памяти;

• Управление системой ввода–вывода (I/O);

• Синхронизация;

• Управление обработкой ошибок;

• Управление cообщениями.

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

Далее в настоящей главе мы рассмотрим эти понятия.