Evgeny_CD, Архитектор (13.06.2009 23:39, просмотров: 375) ответил AlexandrY на Для реальных стейт-машин нужна полная определенность входных воздействий и полная определенность свойств исполняющего движка.
Эта проблема была давно решена при проектировании схем, где тоже возможны непонятно какие задержки. И придумали - синхронизация и RTL. Так и тут - есть синхронные автоматы. Но в открытой печати об этом мало - говорят, NASA на них новое поколение автоматических межпланетных зондов делает.
Если за автоматом оставить только задачи собстенно FSM, и не забивать его "левым" кодом, то время там детерминированное, причем хорошо детерминированное.
Что касается жесткого реально времени. Шедулер нужен правильный. Forward. К автоматам отношения не имеет. Т.е. каждая программа знает, и пишет об этом в структуру - когда в следующий раз ей надо достигнуть некое критической точки, и сколько процессорного времени ей примерно надо. Шедулер смотрит - у кого сколько времени осталось до наступления критического времени, и выдает квант времени.
На самом деле это тоже какая-то разновидность автоматов получится. В которую среди переменных входит время.
Техника построения ОС без запрета прерывания примерно понятна. Все неросто, но сделать можно.