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:

  1. Convert the SR graph into a dependency graph of the output ports
    1. Number the outputs in the SR graph
    2. Create a dependency graph of the outputs
  2. Decompose the dependency graph into strongly connected components
  3. For each strongly connected component,
    1. Choose a "head" of one or more vertices in the dependency graph
    2. Remove the "head"
    3. Repeat 3 on tail
    4. Generate a schedule
      1. If head and tail are separable, then schedule head tail
      2. Otherwise, denote this as (head . tail) which is scheduled as tail then head then tail


  1. 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.