time-triggered systems

Jun 04, 2013 00:19

"Как всем известно", ОСРВ можно расшифровывать не только RSX, но и как операционную систему с разделением времена, а при желании и как операцинную систему реального времени (real-time OS, RTOS).
Системы реального времени напоминают армейскую присказку: нам не надо быстро, нам не надо хорошо...
Окончание фразы несколько отличается, правда. Главное -- чтобы дать гарантированный отклик в заданное время. Ну а где это требуется и используется можно много фантазировать: от управления ёлочной гирляндой или стиральной машиной, до кардиостимулятора, подушки безопасности в автомобиле или системы управления огнём в истребителе.
Там где система попроще, пишут бесконечный цикл, где сложность велика или бюджет пожирнее -- задействуют RTOS. В любом случае обычно пишут обработчик одного или несколький прерываний которые реагируют на аппаратные события, что приводит к событийно-ориентированному программированию и относит систему к управляемым по событиям (event-driven systems).
Но не окажутся ли прерывания слишком многочисленными, а обработчики слишком изощрёнными и долгими? Могут. И для такого случая есть альтернативный подход: системы управляемые по времени (time-triggered systems).
Запрещаются прерывания от всех кроме таймера. Вместо обработки прерываний смотрим на взведённые флажки прерываний (не забываем эти флажки сбрасывать после просмотра :)), планируем соответствующие обработчики и запускаем их поочерёдно вместе с теми периодическими или отложенными задачами время запуска которых подошло. Если оказывается что задач слишком много, чтобы выполнить их до следующего тика, значит надо было брать тики подлиннее, или более быстрый контроллер, или несколько контроллеров для разных подзадач.

Пример (с кодом).
Simple Co-Operative Scheduling
http://petevidler.com/2011/03/simple-co-operative-scheduling/

В интернетах встречается ещё и книга, с примерами: Patterns for Time-Triggered Embedded Systems

PS: Чтоб два раза не вставать -- описание архитектуры FreeRTOS, про time-triggered там, правда, не пишут, зато пишут про другие занятные вещи: например, в чём принципиальная разница между семафором и мутексом.
http://www.aosabook.org/en/freertos.html

real-time, esl

Previous post Next post
Up