next up previous contents
Next: Praktische Fälle Up: Scheduling-Verfahren Previous: Prozesse und Threads   Inhalt


Bewertung

Für den Mikrocontroller steht das Einhalten harter Deadlines bei vertretbarem Hardwareaufwand im Vordergund. Damit fallen alle Verfahren aus, die harte Echtzeitbedingungen nicht garantieren können. Unter diesem Gesichtspunkt fallen Shortest Job First sowie Fair Share und Proportional Share weg.

Weiterhin fallen alle Algorithmen weg, die exponentiellen Aufwand haben und somit nicht online verwendet werden können, wie etwa Branch-and-Bound.

Cyclic Scheduling eignet sich nur, um einen Zeitplan für eine vollkommen statisch vorgegebene Aufgabe so aufzubauen, daß er innerhalb der Zeitschranken abläuft. Daher eignet sich dieses Verfahren nicht zur Implementierung in einem Prozessor, der sich ja gerade dadurch auszeichnet, daß er frei programmiert werden kann und eine große Vielfalt von Problemen lösen können soll. Außerdem muß er auf asynchron auftretende Ereignisse reagieren.


Tabelle 2.1: Eigenschaften verschiedener Scheduling-Verfahren
  Harte   Garantierte    
Verfahren Deadlines Stabilität Auslastung Dynamik Online
Cyclic Ja Nein 100% statisch Nein
Branch and Bound Ja Ja 100% statisch Nein
Shortest Job First Nein Nein (100%) statisch Nein
Rate-Monotonic Ja Ja >ln 2 statisch Nein
Earliest Deadline First Ja Nein 100% dynamisch Ja
Least Laxity First Ja Nein 100% dynamisch Ja
Guaranteed Percentage Ja Nein[*] 100% dynamisch Ja
Proportional Share Nein Nein (100%) dynamisch Ja
Fair Share Nein Nein (100%) dynamisch Ja

Zu betrachten sind also nur noch Online-Verfahren, die harte Echtzeitbedingungen garantieren können. Mit Ausnahme des Rate-Monotonic Scheduling sind dies alles dynamische Verfahren.

Neben Rate-Monotonic, der mit geringem Aufwand zu implementieren ist, bei dem aber die geringe Gesamtauslastung problematisch sein kann, sind dies die beiden Deadline-basierten Verfahren. Least Laxity First hat gegenüber Earliest Deadline First den Vorteil, daß früher erkannt wird, wenn eine Deadline nicht mehr zu erreichen ist. Dem gegenüber steht der erhöhte Aufwand und die zusätzliche Ungenauigkeit, die mit der Verwendung der Worst-Case-Laufzeit im Algorithmus einhergeht.

Zuletzt bietet sich für die Implementierung in einem Mikrocontroller Guaranteed Percentage an, der die sehr schnelle Kontextumschaltung eines mehrfädigen Prozessors gut nutzen kann, um sehr feingranular einen gleichmäßigen Fortschritt aller Threads zu garantieren.


next up previous contents
Next: Praktische Fälle Up: Scheduling-Verfahren Previous: Prozesse und Threads   Inhalt
Alexander Schulz
2000-06-18