next up previous contents
Next: Vorgehensweise Up: Simulationsaufbau Previous: Testumgebung   Inhalt

Guaranteed Percentage

Von den vielen in Abschnitt 2.6 beschriebenen Varianten des Guaranteed Percentage Scheduling ist in dem Simulator die im Folgenden beschriebene implementiert. Dabei wird für jeden Thread eine Klasse festgelegt, wie es in Abschnitt 2.6.3 beschrieben ist. Dazu kommt noch eine Klasse für nicht echtzeitfähige Threads.

Zu Anfang eines jeden Intervalls wird die Anzahl der Takte berechnet, die dem Anteil eines Thread an der Rechenleistung des Prozessors, also an der Gesamtzahl der Takte im Intervall, entspricht. Diese Anzahl wird gespeichert und mit jedem Takt, den der Thread verbraucht, heruntergezählt. Hier werden auch die verursachten Latenzen mit angerechnet, da sonst die Echtzeitbedingungen nicht mehr garantiert werden können.

In jedem Takt werden nach diesen Vorbereitungen die Prioritäten der ausführbaren Threads berechnet. Dabei bekommen Threads der Klasse genau die höchste Priorität, diejenigen der Klasse minimal bekommen die nächst niedrigere, wenn sie ihren Anteil noch nicht erreicht haben. Danach werden die Threads der Klasse maximal ausgeführt, dann die der Klasse minimal, die ihren minimalen Anteil schon bekommen haben. Zum Schluß kommen noch die nicht echtzeitfähigen Threads hinzu. Threads der Klassen genau und maximal bekommen eine Priorität von Null, sobald sie ihren Anteil erreicht haben, und werden somit nicht mehr ausgeführt.

Um die Durchmischung zu verbessern, wird innerhalb der Klassen eine Unterpriorität aus dem Quotienten aus der Anzahl der in diesem Intervall noch zu rechnenden Taktzyklen und dem zugewiesenen Anteil berechnet. Dadurch ergibt sich innerhalb der Intervalle und innerhalb der Klassen eine Art von Least Laxity First.

Anhand der so errechneten Prioritäten werden die beiden höchsten Threads ausgewählt und in einer Liste gespeichert. Aus dieser Liste wird dann der auszuführende Thread im folgenden Takt ausgewählt.


next up previous contents
Next: Vorgehensweise Up: Simulationsaufbau Previous: Testumgebung   Inhalt
Alexander Schulz
2000-06-18