Ich weiß, deadlock und starvation Definitionen, aber ich bin immer noch verwirrt in diesen paar Punkte (Nicht in der Lage, um anzukommen, an dem man richtig ist)
- a) ein deadlock ist eine extremer Fall von Hunger
- b) Deadlocks und verhungern sind zwei voneinander unabhängige Konzepte
- c) Hunger führt nur in die Sackgasse
Deadlock: ist, wenn die Prozesse nicht bekommen, Zugang zu Ressourcen, weil jeder Prozess ist zu warten, für einen anderen Prozess und es ist ein Zyklus.
Hunger: ist, wenn ein Prozess mit niedriger Priorität ausgeführt, nicht bekommen Zugang zu den Ressourcen, die es braucht, weil es eine hohe Priorität Zugriff auf die Ressourcen. Das gesamte system der Prozesse ist nicht gekommen, um halt in diesem Fall.
Da nur Prozess mit niedriger Priorität ausgeführt wird, keinen Zugriff auf Ressourcen in Hunger, während in deadlock kein Prozess hat Zugriff auf die Ressourcen, die Sie brauchen daher deadlock ist ein extremer Fall von Hunger mit der Kriterium der Extremität wird die Gesamtzahl der Prozess kann nicht auf die Ressource zugreifen.
Deadlock und starvation sind im Zusammenhang als beide sind die Fälle, dass ein Prozess keinen Zugriff auf die Ressource.
Hunger führt nicht zum deadlock als hungernde Prozess mit niedriger Priorität ausgeführt immer warten, während andere Prozesse mit hoher Priorität laufen bis zur Fertigstellung.
Gerücht hat es, dass, wenn Sie heruntergefahren die IBM 7094 am MIT im Jahr 1973, fanden Sie einen low-priority-Verfahren, das eingereicht worden war 1967 und ist noch nicht ausgeführt worden ist.‡
‡in der Erwähnten Betriebssystem-Konzepte Buch von Abraham Silberschatz, Peter B. Galvin, Greg Gagne
Gut, eine ist richtig.
Hunger führen kann softlock oder suboptimale Leistung (scheduling).
Da deadlock ist ein besonderer Fall von starvation (alle Anwärter sind Ressourcen-hungrig) Sie sind /nicht/unabhängig.
DeadLock : Wenn zwei threads auf einander warten, und für immer,eine solche Art von unendlichen warten, heißt deadlock.Lange Wartezeiten von einem thread, in dem das warten endet nie, wird auch als deadlock.
Hunger : Lange warten ein thread, in dem die Wartezeit endet an einem bestimmten Punkt heißt deadlock.
Zum Beispiel low-priority-thread warten, bis der Abschluss aller hohe Priorität, threads,es kann lange warten, endet aber an einem bestimmten Punkt,wird das aber nichts mit Hunger.