next up previous contents
Next: Implementierung in Hardware Up: Evaluierung und Simulation Previous: Die Granularität   Inhalt

Auswahlkriterien

Der optimale Algorithmus für das Scheduling von Threads auf einem mehrfädigen Prozessor ist stark von den Eigenschaften der verwendeten Threads abhängig. Wenn die Threads sehr ähnliche Parameter haben, ist eine gute Durchmischung und damit eine gute Auslastung des Prozessors nur mit Guaranteed Percentage oder Least Laxity First zu erreichen.

Dabei ist aber zu beachten, daß diese Verfahren auch die meisten Threadwechsel produzieren. Kann ein Prozessor diese hohe Zahl von Kontextwechseln nicht unterstützen, so ist Earliest Deadline First zu bevorzugen.

Sind die Threads dagegen sehr unterschiedlich, fällt Guaranteed Percentage etwas zurück, dafür wird hier Earliest Deadline First besser.

Abbildung 3.23 zeigt die Beschleunigung der verschiedenen Scheduling-Verfahren abhängig von der Art der Threads und von den Kosten für einen Kontextwechsel. Die Abbildung dient dazu, eine globale Einordnung der Verfahren zu ermöglichen. Dazu werden die Thread-Wechsel ausgezählt, die durch das Scheduling bedingt sind. Um einen Vergleich mit existierenden Systemen zu ermöglichen, werden für diese Thread-Wechsel Kosten in zusätzlichen Takten angenommen.

Die Messungen der Beschleunigungen und der Anzahl der Thread-Wechsel stammen aus den Untersuchungen aus Abschnitt 3.5. Dort wird jedoch nur das Verhältnis der Laufzeiten berücksichtigt, da ein mehrfädiger Mikrocontroller vorausgesetzt wird, der Kontextwechsel ohne Overhead durchführt. Die erste Zeile der Abbildung 3.23 betrachtet vier gleiche Theads. Die zweite Zeile zeigt zwei gleiche und einen langen Thread, während die oberste Zeile aus drei Threads mit sehr unterschiedlichen Deadlines berechnet wird.

Die einzelnen Werte sind nach der Formel

\begin{displaymath}
\frac{L+T*K}{\frac{L*m}{s}+W*K}
\end{displaymath} (5)

berechnet. Dabei ist L die Gesamtlaufzeit des Benchmark und zur Normierung wichtig. T ist die Anzahl der Tasks, da der Scheduler im sequentiellen Fall nach jedem Task einmal umschalten muß. Der mehrfädige Prozessor wird sehr viel öfter umschalten. Die Anzahl dieser Kontext-Wechsel (W) wird gemessen. K sind die Kosten für einen Kontext-Wechsel in Takten. m und s sind die Laufzeit der einzelnen Tasks in Takten im mehrfädigen bzw. sequentiellen Fall.

Die Grundlage der Formel ist die Beschleunigung $\frac{s}{m}$, die sich ergibt, wenn die Kosten für einen Thread-Wechsel gleich Null sind. Zu den Laufzeiten werden jeweils die Thread-Wechsel multipliziert mit den Kosten hinzugezählt und wieder das Verhältnis zwischen dem mehrfädigen und sequentiellen Fall gebildet. Die in Formel 3.2 gewählte Darstellung, bei der die Beschleunigung auf die Gesamtlaufzeit normiert wird, sorgt für ein ausgewogenes Verhältnis der Gewichtung der Beschleunigung und der Kosten für die Thread-Wechsel. Insbesondere darf das Ergebnis der Formel nicht von der Gesamtlaufzeit des Benchmark abhängen, damit die Werte vergleichbar sind.

Der Bezugspunkt für die Berechnungen ist Fixed Priority Preemptive mit 100 Takten Overhead für einen Kontextwechsel. Das entspricht in etwa heutigen Systemen. Alle Messungen werden auf diesen Wert normiert.

Abbildung 3.23: Beschleunigung der Scheduling-Verfahren

Es ist deutlich zu sehen, daß sich Guaranteed Percentage und Least Laxity First nicht mehr einsetzen lassen, wenn die Kosten für die Kontextwechsel steigen. Bei gleichen Threads bleiben für EDF unf FPP die Beschleunigungswerte auch bei hohen Kosten stabil, weil diese Verfahren in diesem Fall sehr wenige Kontextwechsel erzeugen. Bei unterschiedlich langen Threads müssen sie allerdings auch sehr oft umschalten. Guaranteed Percentage kann die hohe Anzahl der Thread-Wechsel bei moderaten Kosten und gleichen Threads noch durch seine gute Durchmischung und die dadurch hohe Beschleunigung ausgleichen. Bei höheren Kosten reicht dieser Effekt aber nicht mehr aus.

Unterschiedliche Threads sind für einen mehrfädigen Prozessor die optimale Last. Sind die Kosten für die Thread-Wechsel dagegen hoch, erreicht man mit gleichartigen Threads die beste Leistung.

Unabhängig davon ermöglicht Guaranteed Percentage aber eine bessere Kontrolle über die Ausführungsraten der einzelnen Threads. Allerdings muß man hier je nach der verwendeten Variante darauf achten, welche Anforderungen die Threads stellen. So die Einhaltung der Deadlines für Threads, deren Deadline kürzer ist als ein Intervall, nicht in jedem Fall garantiert werden.


next up previous contents
Next: Implementierung in Hardware Up: Evaluierung und Simulation Previous: Die Granularität   Inhalt
Alexander Schulz
2000-06-18