![]() |
Real-Time Scheduling-Algorithmen → Ressourcenzugriff (prioritätenbasiert, unterbrechend) |
In manchen Fällen müssen Tasks exklusiven Zugriff auf Ressourcen wie etwa gemeinsam genutzte
globale Variablen oder Geräte erhalten, um ein nicht-deterministisches oder allgmein ein
unerwünschtes Programmverhalten zu verhindern. Programmteile, in denen solche ein exklusiver
Zugriff notwendig ist, heißen kritische Abschnitte.
Tasks, die keinen exklusiven Zugriff haben, müssen warten, bis die Ressource freigegeben wird.
Daher muss die Freigabe-Operation überprüfen, ob gerade eine andere Task auf die Ressource
wartet und diejenige wartende Task mit der höchsten Prorität aufwecken. Wir nennen die
Anforderung einer Ressource P(S) und die Freigabe-Operation V(S),
wobei S der jeweiligen Ressource entspricht.
Bei Tasks mit kritischen Abschnitten kann die sogenannte Prioritätsumkehrung auftreten.
Im Allgemeinen tritt Prioritätsumkehrung auf, wenn eine Task mit niedriger Priorität eine
Task mit höherer Priorität blockiert, weil erstere exklusiven Zugriff auf eine Ressource hat.
Im allgemeinen Fall gibt es keine obere Schranke für die Dauer der Blockierung. Insbesondere ist die
Länge der Prioritätsumkehrung nicht durch die Länge eines kritischen Abschnitts nach oben
beschränkt.
Einführung > Real-Time Scheduling-Algorithmen
> Ressourcenzugriffsprotokoll (prioritätenbasiert, unterbrechend)
zurück | weiter |