Scheduling Synchronous/Reactive Model
Page references given below refer to Stephen Edwards' dissertation [1].
Most of the information here is summarized from chapter 4 of that
dissertation.
"A Synchronous/Reactive system must respond to inputs before
more arrive, so a system will fail it is too slow relative
to its environment." (pages 53-54)
The goal in scheduling a Synchronous/Reactive graph is to minimize
the worst-case execution time.
The proposed scheduling algorithm takes the following steps:
- Convert the SR graph into a dependency graph of the output ports
- Number the outputs in the SR graph
- Create a dependency graph of the outputs
- Decompose the dependency graph into strongly connected components
- For each strongly connected component,
- Choose a "head" of one or more vertices in the dependency graph
- Remove the "head"
- Repeat 3 on tail
- Generate a schedule
- If head and tail are separable, then schedule
head tail
- Otherwise, denote this as (head . tail)
which is scheduled as tail then head then
tail
References
- Stephen Anthony Edwards, The Specification and Execution
of Synchronous Reactive Systems,
Ph.D. Thesis, University of California, Berkeley, 1997,
Available as UCB/ERL M97/31.
Updated 04/14/98.