Definition
Ein Zustand, in dem ein Prozess oder Thread dauerhaft die Ressourcen oder die CPU‑Zeit verweigert werden, die er zum Fortschreiten benötigt, sodass er effektiv blockiert ist, während andere Aufgaben fortfahren.
Prinzip
Prinzip
Starvation entsteht aus Unfairness in Ressourcenzuteilung oder Scheduling‑Politiken: Prioritäten, Locks ohne Fairness oder monopolistische Clients können systematisch einen Teilnehmer vom Erhalt benötigter Dienste ausschließen.
Demonstration
Demonstration
Ein Low‑Priority‑Thread wird wiederholt von höherpriorisierten Tasks präemptiert, die nie zurückstecken, sodass der Low‑Priority‑Thread keinen Fortschritt macht, obwohl das System insgesamt aktiv bleibt.
Fehlanwendung
Fehlanwendung
'Starvation' auf jede temporäre Verlangsamung anzuwenden oder Starvation zu behaupten, wenn die Ursache Deadlock, Livelock oder vorübergehende Ressourcenknappheit ist, die sich auflöst.
Konsequenz
Konsequenz
Die korrekte Diagnose führt zu Fairness‑Korrekturen: Priority‑Aging, faire Locks/Queues, Bandbreiten‑/Ressourcenquoten oder Policy‑Änderungen; Nichtbehandlung führt zu unbegrenzten Verzögerungen für betroffene Tasks und unvorhersehbarer Dienstqualität.
Umkehrung
Umkehrung
Das Gegenteil ist garantierter Fortschritt oder eventualer Service: Scheduler‑ und Zuteilungsregeln, die sicherstellen, dass jede berechtigte Aufgabe schließlich die nötigen Ressourcen erhält (schwache oder starke Fairnessgarantien).
Abgrenzung
Abgrenzung
Betrifft Scheduling und Ressourcenallokation (CPU, Locks, I/O, Netzwerkbandbreite). Ausgeschlossen sind transiente Latenzen, permanente Ressourcenlecks und Deadlock‑Zyklen; Starvation kann auf Einzelrechnern und in verteilten Systemen auftreten.
Semantische Spannung
Semantische Spannung
Spannung zu Deadlock und Livelock: Starvation besitzt nicht die gegenseitige zyklische Abhängigkeit des Deadlocks noch die konstante Aktivität des Livelocks, kann aber indirekt durch diese Zustände oder durch unfaire Policies verursacht werden.
Synthese
Synthese
Starvation ist die anhaltende Verweigerung von Diensten an einen Teilnehmer wegen unfairer Allokation oder Scheduling; die Abhilfe ist die Wiedereinführung von Fairness, Quoten oder Aging, damit jeder Teilnehmer schließlich die benötigten Ressourcen erhält.