Ein anderes Beispiel (vgl.Sha, Rajkumar und Lehoczky (1990)[102]:p.1180): Task besitzt die kritischen Sektionen
und
mit den Aufrufen
. Task
besitzt die kritische Sektion
mit den Aufrufen
und Task
besitzt die kritischen Sektionen
und
mit den Aufrufen
.
Task beginnt mit der Ausführung seiner unkritischen Sektion und startet auch die Nutzung von Semaphor
. Dann tritt Task
auf. Da er eine höhere nominelle Priorität als Task
besitzt, kann er die Ausführung seiner unkritischen Sektion beginnen und Task
wird blockiert. Wenn Task
dann seine kritische Sektion mit Semaphor
beginnen will, muß er eine höhere Priorität haben als der aktuell genutzte Semaphor mit dem höchsten Ceilingwert; dies ist zur Zeit
. Der Task
hat aber selbst nur den Wert
. Also wird Task
von Task
geblockt und Task
kann die Nutzung von Semaphor
fortsetzen. Zugleich erbt er (inherits) die Priorität von Task
für die Dauer der Nutzung von Semaphor
, also
. Dann kommt Task
zur kritischen Sektion mit Semaphor
. Da aktuell kein anderer Task einen Semaphor nutzt kann er die Kontrolle übernehmen. Während der Nutzung tritt Task
auf. Wegen einer höheren nominellen Priorität als Task
kann Task
die Abarbeitung seiner unkritischen Sektion beginnen und Task
wird blockiert. Wenn Task
dann zur ersten kritischen Sektion mit Semaphor
kommt, kann er die Kontrolle aber nicht gewinnen, da Task
aktuell die Kontrolle besitzt und Task
eine höhere Priorität als
benötigen würde. Er hat aber nur die Priorität
. Also wird Task
von Task
blockiert. Außerdem erbt (inherits) Task
die Priorität von Task
für die Dauer der Abarbeitung von Semaphor
, also
. Am Ende der Nutzung von Semaphor
durch Task
will Task
seine kritische Phase mit Semaphor
beginnen und Task
die Nutzung von Semaphor
. Ferner gibt es aktuell noch die Anfrage von den Task
, wobei Task
immer noch die Kontrolle von Semaphor
besitzt. Also wird zu diesem Zeitpunkt noch der Semaphor
mit
benutzt. Da Task
eine höhere Priorität besitzt, kann er mit der Nutzung von Semaphor
beginnen. Nach Beendigung der kritischen Sektion mit Semaphor
will Task
in die Nutzung des Semaphors
eintreten. Auch dies geht aufgrund seiner höheren nominellen Priorität. Wenn Task
Semaphor
wieder frei gibt, dann kann Task
mit der geerbten Priorität
seine Nutzung von Semaphor
fortsetzen. Nach Beendigung der Nutzung von Semaphor
kann dan Task
in seine kritische Sektion eintreten und Semaphor
nutzen.
Gerd Doeben-Henisch 2013-01-16