Высокоуровневое проектирование встраиваемых систем. Платунов А.Е - 14 стр.

UptoLike

диспетчеризации отдельных компонентов в псевдопараллельной среде) и о
реактивности системы. Совместность вычислений является одним из
признаков, по которым можно классифицировать MoC. Например, как Eles [67],
так и Liu [56] выделяют:
Модели вычислений с неявной спецификацией совместности (data-driven,
event-driven, demand-driven);
Модели вычислений с явной спецификацией совместности (control-driven,
imperative).
Первый тип совместности предполагает, что спецификация системы дается
без явного указания порядка, в котором производятся вычисления отдельными
компонентами. Порядок определяется неявно из взаимозависимости
компонентов. Если компонент E1 требует для вычислений данные,
генерируемые на выходе компонента E2, то выполнение компонента E1 будет
зависеть от выполнения E2. Модели вычислений с неявной спецификацией
совместности типичны, в основном, для задач обработки потоков информации:
обработки сигналов и изображений, сбора информации, обработки потоков
запросов. Для этого типа совместности различают два стиля выполнения
вычислений отдельными компонентами: запуск по наличию данных на входах
компонента (data-driven или «push») и запуск по требованию данных с выхода
компонента (demand-driven или «pull»). Большинство MoC, используемых при
проектировании ВсС, реализуют стиль «push», некоторые позволяют
реализовать как первый, так и второй. Модели, реализующие только запуск по
требованию, имеют мало смысла, так как ВсС, в основном, являются
событийно-ориентированными, то есть реагируют на события внешней среды,
которые легче всего представить как входные данные для системы. Среди MoC,
реализующих стиль «push», можно назвать: модель с дискретными событиями
[60], сети процессов Кана [74], модели с потоками данных (SDF [39, 63], DDF
[39]), модель с непрерывным временем [39], ОСМВ. Среди моделей,
реализующих комбинированный подход к выполнению вычислений
push/pull»), можно назвать Click [79, 47], CI [79].
Второй тип совместности вычислений предполагает, что порядок
выполнения вычислений отдельными компонентами задается явно в
спецификации системы. В спецификации может быть указано, какие
компоненты выполняются последовательно друг относительно друга, какие
совместно (параллельно или псевдопараллельно). В качестве примера можно
привести фрагмент спецификации на языке ESTEREL (синхронно-реактивная
модель вычислений [49]):
run p1;
[run p2 || run p3];
run p4;
13