EE382C Embedded Software Systems - The Scheduling Problem

The firing rules for dataflow graphs, synchronous/reactive systems, and finite state machines impose partial ordering constraints on the actor firings. Examples of partial orderings include data dependencies among the actors in dataflow graphs, input/output relationships in synchronous/reactive systems, and transitions in finite state machines. We would like to develop scheduling algorithms that constrain the partial ordering in order to meet the following practical objectives: At the same time, we want to satisfy the following constraint: For many models of computation, the scheduling problem is often NP-complete. One notable exception is scheduling for the Synchronous/Reactive model of computation, which can be performed in polynomial time. As of 2/24/97, no scheduling algorithm has been found that will schedule all valid Synchronous Dataflow Graphs in polynomial time in the size of the graph:

#nodes + #arcs * (1 + log2 delayPerArc + log2 inputTokensPerArc + log2 outputTokensPerArc)

(Some material was adapted from Lecture 14 from Specification and Modeling of Reactive Real-Time Systems at U.C. Berkeley.)


Updated 03/02/99.