Preemptive execution is often required to satisfy the following demands:
-
Real-time operations -- refreshing a display at a constant rate, polling a device at certain frequency, etc.
-
Irregular problems, in which the current flow of control depends or might depend heavily upon frequent updates from other processing units.
-
A high degree of overlap between computation and communication -- for some systems sending or receiving large buffers has to be done in several steps. Failing to do it at appropriate rate can diminish the prospects of having CPU and IO transactions carried concurrently.
-
In order to satisfy those contradictory needs, TCE allows the user to decide which scheduling policy should be used.
|