ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
429352 Топик полностью
Vit (01.08.2013 10:06, просмотров: 954) ответил Скрипач на А у вас в программе все ошибки - синтаксические, да? :)
fk0 в том, что без событийной системы строить мелкожручее, ИМХО, прав. Запускать же адресно автомат (с неформализованным, например, описанием) по событию, которое он ожидает, т.е. описано явно, у Вас почему-то оказывается сложным. Предполагаю, что Вы предпочитаете широковещательные сообщения о событиях и разгребаете их внутри тредов. Я утверждаю, что треды можно запускать внешним шедулером по событию адресно - естественно для этого такой шедулер дожен быть, но не обязательно в составе вытеснящей RTOS. fk0 утверждает, что треды запускать можно только в биглупе, иначе это не прототридсы. Вы же замешиваете события в состояния и утверждаете, что уже где-то у кого-то появляются редкие и опасные ошибки:) Карочи:), автомат когда чего ждёт, выходит из ожидания по событию. Дабы он об этом событии не беспокоился пока того нет (не поллил), автомат не нужно вызывать. для этого должна быть приспособа:) Сон - такое состояние СИСТЕМЫ, но не треда, когда все без исключения задачи(равно треды) ожидают событие и согласны на определенный уровень энергопотребления. Тут есть тонкий момент, о котором статья у Самека (перевод на embedders.org) насчет энергопотребления - пока выполнялись дцать тредов некоторые события уже могли наступить и в таком случае СИСТЕМА не должна засыпать. Принятием этого решения кто-то должен заняться на основании информации о том, какие же события ожидаются тредами ("заказаны"). Т.е. голых прототридсов (для собственно задач-автоматов) при многозадачности и сне действительно недостаточно. Но сложности тут не в событиях как постпереключателях состояний тредов, а в организации независимости задач раз, ну и, по-хорошему, для уменьшения жрачки стОит уметь будить треды адресно это два.