Скрипач, пророк (31.10.2014 11:30 - 11:53, просмотров: 131) ответил fk01234 на Это годится только для простых (в сложных детерменизма во времени исполнения добиться тяжело, по крайне мере на таком уровне, а не плюс-минус три порядка) систем и с диким запасом неиспользуемых ресурсов. Вообще это называется time triggered
На самом деле, это "вычесывание" единственного случая когда задача не ждет никакого сигнала, готова к выполнению, но выполнять ее не стоит. Еще раз, к модели супервизора.
Для него, задачи делятся на две категории:
- готовые к выполнению;
- ожидающие сигнала.
В прикладной задаче или в супервизоре будет выполняться поллинг сигнала
и изменение статуса задач с "ожидающих сигнал"
на "готовые к выполнению".
Далее, рассмотрим вопрос: почему в месте,
где сформирован сигнал, нельзя просто
вызвать прикладную функцию (callback, например)
и уйти от поллинга?
Ответ прост: это передача сигнала из
более приоритетного кода в менее приоритетный.
Например, из обработчика прерывания в прикладной код.
И это самообман, который не является механизмом
взаимодействия процессов разных приоритетов,
а лишь "перетаскивание границы".
И что мы увидели в городе Херсоне?
Битовую переменную, которую устанавливает обработчик
прерывания и поллит супервизор.
А нафига этот поллинг в супервизоре? Нахрена этот самообман и посредники?
... но не любой ценой.