Schlüsseldifferenz: Deadlock bezieht sich auf die Situation, wenn Prozesse im Kreislauf stehen und auf die Ressourcen warten. Auf der anderen Seite tritt Hunger auf, wenn ein Prozess unbegrenzt auf eine Ressource wartet. Deadlock bedeutet Hunger, aber Hunger impliziert keinen Deadlock.
Ein einfaches Beispiel dafür ist ein System mit zwei Bandlaufwerken, und zwei Prozesse beanspruchen jeweils ein Bandlaufwerk und warten darauf, dass der andere als weiterer Vorgang ausgeführt wird.
Es ist wichtig zu erwähnen, dass die Situation von Deadlock Occus gilt, wenn diese vier Bedingungen alle gleichzeitig zutreffen -
- Gegenseitiger Ausschluss - Eine Ressource kann jeweils nur von einem Prozess verwendet werden
- Halten und warten - Ein Prozess, der mindestens eine Ressource belegt, muss eine zusätzliche Ressource erwerben, die von einem anderen Prozess belegt wird. Daher wartet dieser Prozess darauf, dass diese Ressource freigegeben wird
- Keine Vorkaufsquelle wird nur durch den Prozess freigegeben, der sie nach Beendigung ihrer Aufgabe beschäftigt hat.
- Zirkulares Warten - Alle Prozesse in den Sets warten auf eine Ressource, die von anderen Prozessen vorgehalten wird. Dies schließt sogar den letzten Prozess in dem Set ein.
Dies geschieht, wenn ein Prozess mit schlechterer Priorität die Ressource aufgrund eines ständigen Flusses von Prozessen mit einer höheren Priorität als der Ressource erhält, weshalb der Prozess möglicherweise immer warten muss. Die Lösung für den Umgang mit Hunger besteht darin, sicherzustellen, dass ein unabhängiger Manager die Ressourcenzuteilung verwaltet, um sicherzustellen, dass jeder Prozess die Ressource zu einem bestimmten Zeitpunkt erhält. Eine zufällige und unkontrollierte Auswahl oder Konkurrenz muss vermieden werden, um ein Verhungern zu verhindern. Deadlock bedeutet Hunger, aber Hunger impliziert keinen Deadlock.
Daher unterscheiden sich Deadlock und Hunger voneinander. Deadlock tritt auf, wenn keiner der Prozesse in der Gruppe aufgrund der Belegung der erforderlichen Ressourcen durch einen anderen Prozess voranschreiten kann. Auf der anderen Seite tritt Hunger auf, wenn ein Prozess auf unbestimmte Zeit wartet, um die benötigte Ressource abzurufen.
Vergleich zwischen Deadlock und Starvation:
Sackgasse | Hunger | |
Definition | Deadlock tritt auf, wenn keiner der Prozesse in der Gruppe aufgrund der Belegung der erforderlichen Ressourcen durch einen anderen Prozess voranschreiten kann | Hunger tritt auf, wenn ein Prozess auf unbestimmte Zeit wartet, um die benötigte Ressource abzurufen. |
Anderer Name | Zirkulares Warten | Lebte Schloss |
Entstehende Bedingungen | Diese vier Bedingungen ergeben sich gleichzeitig - gegenseitiger Ausschluss, Halten und Warten, Nichtvoraussage und Zirkularwitz | Unkontrollierte Verwaltung von Ressourcen Prozessprioritäten werden strikt durchgesetzt Ressourcenverknappung |
Vermeidung / Präventionstechniken |
|
|
Fortschritt | Kein Prozess kann Fortschritte machen | Neben dem Opferprozess können andere Prozesse voranschreiten oder ablaufen |
Ende | Erfordert einen externen Eingriff | Kann oder muss möglicherweise nicht von außen eingreifen |