Home

Prioritätsinversion

Prioritätsinversion bezeichnet ein Phänomen in zeitkritischen Systemen, bei dem die tatsächliche Priorität eines Tasks durch die Ausführung anderer Tasks beeinflusst wird und so die Bevorzugung eines höherpriorisierten Tasks verhindert oder verzögert wird. Typischer Auslöser ist der gleichzeitige Zugriff auf freigegebene Ressourcen wie Mutexes oder Sperren.

Der typische Mechanismus lässt sich mit drei Tasks erklären: Ein hochpriorisierter Task H wartet auf eine Ressource,

Auswirkungen dieser Inversion können vor allem in Echtzeitsystemen gravierend sein. Sie erhöht die Wartezeiten, verschlechtert das

Zur Eindämmung werden verschiedene Protokolle eingesetzt. Beim Priority Inheritance Protocol (PI) übernimmt L temporär die höchste

Siehe auch: Echtzeitsysteme, Scheduling, Synchronisation, Mutex.

die
von
einem
niedrigpriorisierten
Task
L
gehalten
wird.
Ein
Medium-Prioritäts-Task
M
kann
währenddessen
L
vorzeitig
unterbrechen.
Dadurch
wird
H
daran
gehindert,
die
Ressource
zu
erhalten,
obwohl
er
höher
priorisiert
ist
als
M.
Das
Ergebnis
ist
eine
verlängerte
Reaktionszeit
oder
verpasste
Deadlines
von
H,
obwohl
kein
direkter
Konflikt
zwischen
H
und
L
besteht.
Scheduling-Verhalten
und
kann
bei
zeitkritischen
Aufgaben
zu
Terminverzug
führen.
Priorität
aller
wartenden
höherpriorisierten
Tasks,
solange
es
die
Ressource
hält,
und
kehrt
nach
Freigabe
zur
ursprünglichen
Priorität
zurück.
Beim
Priority
Ceiling
Protocol
(PCP)
erhält
jede
Ressource
eine
Deckenpriorität;
bevor
eine
Aufgabe
startet,
müssen
alle
Deckenprioritäten
berücksichtigt
werden,
um
Inversionen
zu
vermeiden.
Weitere
Ansätze
umfassen
Ressourcensortierung,
nicht-blockierende
Synchronisation
oder
systematische
Vermeidung
von
Ressourcenkonflikten.