-
Die
Erfindung betrifft das Gebiet der zeitschrankengesteuerten Ablaufsteuerung
(EDF-Scheduling) und insbesondere eine Erweiterung der zeitschrankengesteuerten
Ablaufsteuerung (EDF-Scheduling) um die Vererbung von Zeitschranken
zur Verminderung nicht einhaltbarer Zeitschranken bei Verwendung
von gegenseitigen Ausschlüssen. Insbesondere betrifft die
Erfindung Verfahren und Systeme zur Steuerung des Ablaufs eines
Anwenderprogramms in einem eingebetteten Hardware-System bzw. zur
simulativen Ermittlung der Echtzeitfähigkeit der Steuerung
des Ablaufs eines simulierten Anwenderprogramms in einem simulierten
eingebetteten Hardware-System.
-
Earliest
Deadline First (EDF) ist ein Schedulingverfahren (Zeitablaufsteuerung),
das mit variablen Prioritäten arbeitet. EDF gehört
zu den zeitbasierten Scheduling-Verfahren, denn es trifft seine
Entscheidungen so, dass Fertigstellungstermine (Deadlines) eingehalten
werden. Es wird dabei zu jedem Scheduling-Punkt jene Task ausgewählt,
deren Deadline am zeitlich nähesten liegt, d. h. dessen
Frist unter den bereitstehenden Tasks am ehesten abläuft.
Die Deadline ist dabei eine Eigenschaft einer Task und kann prinzipiell
statisch oder dynamisch zum Zeitpunkt der Task-Aktivierung vergeben
werden. EDF gilt als optimal, sofern im System keine gegenseitigen
Ausschlüsse (Mutex) auftreten. Es werden immer die Zeitpunkte
für das Scheduling betrachtet, an denen entweder ein neuer
Task bereit wird, ein gerade noch aktiver Task beendet wird oder
(bei periodischen Tasks) eine neue Periode eines Tasks anfängt.
-
Gegenstand
dieser Erfindung ist analog eines Priority-Inheritance in einem
prioritätsbasierten Scheduling eine Erweiterung einer EDF-Ablaufsteuerung,
die in Wechselwirkung mit belegten und zu belegenden Mutexen die
Deadlines als Schedulingkriterium temporär derart anpasst,
dass die Zeit der Blockierung desjenigen Tasks mit der kürzesten
Zeitschranke minimiert wird. Zu jedem Schedulingpunkt wird hierzu
die kürzeste Zeitschranke desjenigen Task, der auf die
Belegung des selben Mutex wartet, vorübergehend auf den
den Mutex belegenden Task übertragen.
-
So
stellt die Erfindung gemäß einem ersten Aspekt
ein Verfahren zur Steuerung des Ablaufs eines Anwenderprogramms
in einem eingebetteten Hardware-System bereit, wobei das Anwenderprogramm
aus mehreren Routinen besteht, deren Ausführung jeweils
einzeln durch das Auftreten zugeordneter Ereignisse in der Umgebung
des Hardware-Systems gestartet wird, und denen jeweils eine Zeitschranke
zugeordnet ist, innerhalb derer die Routine nach Aktivierung abgearbeitet
sein muss. Die Ablaufsteuerung steuert den Ablauf der Routinen sortiert
nach dem Ende ihrer Zeitschranke so, dass jede Routine ihre Zeitschranke
einhält, wenn dies aufgrund der Ausführungszeit
der Routinen und der gegebenen Rechenleistung des Hardware-Systems
möglich ist.
-
Gemäß einem
zweiten Aspekt stellt die Erfindung ein Verfahren zur simulativen
Ermittlung der Echtzeitfähigkeit der Steuerung des Ablaufs
eines simulierten Anwenderprogramms in einem simulierten eingebetteten
Hardware-System bereit. Das simulierte Anwenderprogramm besteht
dabei aus mehreren Routinen, deren Ausführung jeweils einzeln
durch das simulierte Auftreten zugeordneter Ereignisse in der simulierten
Umgebung des simulierten Hardware-Systems gestartet wird, und denen
jeweils eine Zeitschranke zugeordnet ist, innerhalb derer die Routine
nach Aktivierung abgearbeitet sein muss. Die simulierte Ablaufsteuerung
steuert den simulierten Ablauf der Routinen sortiert nach dem Ende
ihrer Zeitschranke so, dass in der Simulation jede Routine ihre
Zeitschranke einhält, wenn dies aufgrund der simulierten
Ausführungszeit der Routinen und der gegebenen simulierten
Rechenleistung des simulierten Hardware-Systems möglich
ist.
-
Es
ist bei beiden Verfahren bevorzugt, dass die Aktivierungsreihenfolge
der Routinen nicht vorher bekannt ist bzw. bekannt sein muss.
-
Vorzugsweise
wird die Zeitschranke einer Routine erst zum Zeitpunkt ihrer Aktivierung
auf der Basis des aktuellen Zustands des Hardware-Systems bestimmt.
-
Ferner
kann bei den erfindungsgemäßen Verfahren die Ausführungszeit
der aktivierten Routinen vom Zustand des Hardware-Systems zum Zeitpunkt
der Aktivierung abhängen. Außerdem können
sich die Routinen durch die Verwendung gemeinsamer Resourcen des
Hardware-Systems gegenseitig blockieren.
-
Die
zeitliche Lage und die Dauer der Verwendung der gemeinsamen Resourcen
des Hardware-Systems sind vorzugsweise nicht vorher bekannt.
-
Es
ist ferner bevorzugt, dass die Zeitschranke einer laufenden Routine
bei Erkennen einer Blockierung durch eine belegte gemeinsame Resource
des Hardware-Systems auf die Routine übertragen wird, die
die angeforderte Resource belegt hält, und anschliessend
die Ablaufsteuerung neu entscheidet, welche Routine weiter ausgeführt
wird, und nach Freigabe der gemeinsamen Resource des Hardware-Systems
durch die belegende Routine die Zeitschranke wieder auf den ursprünglichen
Wert zurückgesetzt wird, und anschliessend die Ablaufsteuerung
neu entscheidet, welche Routine weiter ausgeführt wird.
-
Ferner
betrifft die Erfindung ein korrespondierendes System zur Steuerung
des Ablaufs eines Anwenderprogramms in einem eingebetteten Hardware-System,
wobei das Anwenderprogramm aus mehreren Routinen besteht, deren
Ausführung jeweils einzeln durch das Auftreten zugeordneter
Ereignisse in der Umgebung des Hardware-Systems gestartet wird,
und denen jeweils eine Zeitschranke zugeordnet ist, innerhalb derer
die Routine nach Aktivierung abgearbeitet sein muss, mit einer Ablaufsteuerungseinheit,
die den Ablauf der Routinen sortiert nach dem Ende ihrer Zeitschranke
so steuert, dass jede Routine ihre Zeitschranke einhält,
wenn dies aufgrund der Ausführungszeit der Routinen und
der gegebenen Rechenleistung des Hardware-Systems möglich
ist.
-
Gemäß dem
zweiten erfindungsgemäßen Aspekt wird ein System
bereitgestellt zur simulativen Ermittlung der Echtzeitfähigkeit
der Steuerung des Ablaufs eines simulierten Anwenderprogramms in
einem simulierten eingebetteten Hardware-System, wobei das simulierte
Anwenderprogramm aus mehreren Routinen besteht, deren Ausführung
jeweils einzeln durch das Auftreten zugeordneter Ereignisse in der
simulierten Umgebung des simulierten Hardware-Systems gestartet
wird, und denen jeweils eine Zeitschranke zugeordnet ist, innerhalb
derer die Routine nach Aktivierung abgearbeitet sein muss, mit einer
Ablaufsteuerungseinheit, die den Ablauf der Routinen sortiert nach
dem Ende ihrer Zeitschranke so steuert, dass jede Routine ihre Zeitschranke
einhält, wenn dies aufgrund der Ausführungszeit
der Routinen und der gegebenen simulierten Rechenleistung des simulierten
Hardware-Systems möglich ist.
-
Der
erfindungsgemäße Auswahlalgorithmus lautet vorzugsweise
wie folgt:
-
Der
Mutex-Belegungsalgorithmus lautet vorzugsweise wie folgt:
-
Der
Mutex-Freigabealgorithmus lautet erfindungsgemäß vorzugsweise
wie folgt:
-
Der
Task-Aktivierungsalgorithmus lautet erfindungsgemäß vorzugsweise
wie folgt:
-
Der
erfindungsgemäße Algorithmus bzw. das Verfahren
benötigt a priori kein Wissen über die beteiligten
Mutexe und Tasks, deren Laufzeiten und/oder Deadlines. Daher eignet
sich das Scheduling-Verfahren prinzipiell auch für Systeme
mit dynamisch erzeugten Tasks und Mutexen. Die für das
Scheduling benötigten Kriterien (Deadline, ggf. Priorität)
können dynamisch zum Aktivierungszeitpunkt dem Scheduler
per Aktivierungs-Aufruf übergeben werden.
-
Im
folgenden wird die Erfindung auf die beigefügten Figuren
näher erläutert. Es zeigen
-
1 ein
Schedule nach EDF;
-
2 ein
Schedule nach EDF mit Deadline-Propagation;
-
3 ein
Schedule nach EDF bei implizitem Mutex (kooperative Gruppe);
-
4 ein
Schedule nach EDF bei implizitem Mutex (kooperative Gruppe) mit
Deadline-Propagation; und
-
5 ein
Schedule nach Jansen bei Szenario ohne gegenseitiger Aktivierung
von Tasks
-
Im
Folgenden werden einige Scheduling-Szenarien skizziert, um den erfindungsgemäßen
Algorithmus bzw. das erfindungsgemäße Verfahren
für explizite und implizite gegenseitige Ausschlüsse
näher zu erläutern.
-
Expliziter Mutex
-
In
den in den 1 bis 4 dargestellten
erfindungsgemäßen Beispielen besteht ein System
aus 3 Tasks und einem Mutex. Task3 belegt in (1) einen Mutex. Zum
Zeitpunkt (2) führt dann die Aktivierung der Task1 mit
kürzerer Deadline zu einer vorzeitigen Verdrängung
(Preemption). Task1 aktiviert nun in (3) die Task2 mit noch kürzerer
Deadline. Task2 versucht nun, den von Task3 belegten Mutex zu belegen
und blockiert.
-
Da
Task 2 an der Semaphore blockiert, führt die kürzere
Deadline von Task1 dazu, dass Task1 zunächst bis zu ihrer
Terminierung weiterläuft. Erst nach dem Ende der Ausführung
von Task1 kann Task3 geschedulet werden und gibt daher die Semaphore
erst so spät frei, dass Task2 zwangsläufig seine
Deadline verletzt. Dies ist in 1 gezeigt.
-
Mit
Deadline-Propagation (siehe 2) erbt
hingegen Task3 die Deadline von Task2 temporär für
den Zeitraum der Mutexbelegung auf Grund des Versuchs von Task2,
den von Task3 belegten Mutex zu belegen. Dies führt zu
einer Deadline-Umkehr, so dass zunächst Task3 bis zur Freigabe
der Semaphore weiterlaufen kann. Das nachfolgende Scheduling führt
nach EDF nun dazu, dass Task2 noch vor Verstreichen der Deadline terminiert.
-
Impliziter Mutex (kooperative Gruppen)
-
In
diesem Beispiel wird von dem selben System wie oben skizziert ausgegangen.
Darüber hinaus teilen sich im Folgenden Falle Task2 und
Task3 einen impliziten Mutex (kooperative Gruppe).
-
Da
Task3 zu Systemstart aktiv ist, belegt es implizit zugleich den
gemeinsamen Mutex. Zum Zeitpunkt (2) führt dann eine Aktivierung
der Task1 mit kürzerer Deadline zu einer Preemption, wie
in 3 dargestellt. Task1 aktiviert wiederum in (3)
Task2 mit noch kürzerer Deadline, die sich denselben Mutex
wie Task3 teilt und dadurch zunächst blockiert.
-
Da
Task2 blockiert und Task3 die längste Deadline hat, wird
nach EDF zunächst Task1 geschedulet. Nach der Terminierung
von Task1 ist Task3 die einzige verbleibende lauffähige
Task und läuft bis zu ihrer Terminierung. Die Freigabe
des impliziten Mutex erfolgt bei der Terminierung jedoch erst so
spät, dass Task2 seine Deadline nicht mehr einhalten kann.
-
Durch
die Aktivierung von Task2 erfolgt ein impliziter Versuch, den gemeinsamen
Mutex von Task3 und Task2 zu belegen. Hierdurch erbt die den Mutex
belegende Task3 temporär die Deadline von Task2, was dazu führt,
dass statt Task1 nun Task3 bis zu ihrer Terminierung läuft
und seinen mit Task2 implizit geteilten Mutex freigibt. Das nachfolgende
Scheduling führt nach EDF nun dazu, dass Task2 noch vor
Verstreichen der Deadline terminiert. Siehe 4.
-
Abgrenzung zu bekannten EDF-Erweiterungen
-
Jansen
et. al. beschreiben in „Lightweight EDF Scheduling
with Deadline Inheritance” [1] ebenfalls ein Verfahren
zur Vererbung von Deadlines an andere Tasks. Das dort beschriebene
Verfahren vererbt statisch und verlangt daher a priori genaueres
Wissen über die Tasks, deren Deadlines sowie von den jeweiligen
Tasks verwendeten Mutexen. Darüber hinaus geht das Verfahren
von Jansen davon aus, dass Tasks periodisch durch externe Ereignisse
aktiviert werden, stets die selbe Laufzeit haben, und sich nicht
gegenseitig aktivieren können. All diese Einschränkungen
gelten für das erfindungsgemäße Verfahren
nicht.
-
Die
in 1 bis 4 gezeigte Aktivierungsreihenfolge
lässt sich nicht direkt im Verfahren von Jansen umsetzen,
da die Tasks bei Jansen sich nicht gegenseitig aktivieren können.
Ein adaptiertes Szenario, das die Aktivierungen durch einen periodischen
Auslöser erfährt, sähe wie in 5 gezeigt
aus.
-
Zum
Zeitpunkt (1) belegt die Task3 den Mutex und erbt damit zugleich
die zuvor bekannte Deadline der nächstfolgenden Aktivierung
der Task2. Eine nachfolgend aktivierte Task1 geht daher zwar in
den „Rechenbereit”-Zustand über, wird
jedoch auf Grund seiner nunmehr späteren Deadline nicht
geschedulet. Die Aktivierung von Task2 in (2) führt zu
einer Blockierung von Task2, da der Scheduler über das
Wissen verfügt, dass Task2 den selben Mutex wie Task3 belegen
wird. Zu Zeitpunkt (3) gibt Task3 den Mutex frei und verliert seine ererbte
kürzere Deadline, so dass Task2 nun geschedulet werden
kann. Nach der Freigabe des Mutex durch Task2 erfolgt das Scheduling
des Rests des Szenarios nach EDF.
-
Literatur
-
[1] Lightweight
EDF Scheduling with Deadline Inheritance; Pierre G. Jansen, Sape
J. Mullender, Paul J. M. Havinga, Hans Scholten; Internal Report;
University of Twente; http://purl.org/utwente/41399
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - Jansen et.
al. [0032]
- - Lightweight EDF Scheduling with Deadline Inheritance; Pierre
G. Jansen, Sape J. Mullender, Paul J. M. Havinga, Hans Scholten;
Internal Report; University of Twente; http://purl.org/utwente/41399 [0035]