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:
- scheduling cost: Scheduling decisions should be made as
much as possible at compile time.
- bounded memory: The total number of unconsumed tokens
should be bounded throughout the execution if this is possible
for the given graph.
At the same time, we want to satisfy the following constraint:
- deadlock: The graph should not halt if there are enabled
actors
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.