Unterschied zwischen Deadlock und Hunger im Betriebssystem

Autor: Laura McKinney
Erstelldatum: 3 April 2021
Aktualisierungsdatum: 23 April 2024
Anonim
Was ist ein Betriebssystem? Computer & IT-Wissen einfach erklärt
Video: Was ist ein Betriebssystem? Computer & IT-Wissen einfach erklärt

Inhalt


Deadlock und Starvation sind die Bedingungen, unter denen die Prozesse, die eine Ressource anfordern, lange verzögert wurden. Obwohl Deadlock und Hunger in vielerlei Hinsicht voneinander verschieden sind. Sackgasse Dies ist eine Bedingung, in der kein Prozess zur Ausführung fortgesetzt wird und jeder auf Ressourcen wartet, die von den anderen Prozessen erfasst wurden. Auf der anderen Seite, in HungerEin Prozess mit hohen Prioritäten verwendet kontinuierlich die Ressourcen, die einen Prozess mit niedriger Priorität verhindern, um die Ressourcen zu erfassen. Lassen Sie uns mit Hilfe der folgenden Vergleichstabelle weitere Unterschiede zwischen Deadlock und Hunger diskutieren.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichSackgasseHunger
BasicBei Deadlock wird kein Prozess fortgesetzt und blockiert.Hunger ist der Punkt, an dem Prozesse mit niedriger Priorität blockiert werden und Prozesse mit hoher Priorität fortgesetzt werden.
Entstehende BedingungDas Auftreten von gegenseitigem Ausschluss, Halten und Warten, Keine Vorwegnahme und Zirkulares Warten gleichzeitig.Durchsetzung von Prioritäten, unkontrolliertes Ressourcenmanagement.
Anderer NameRundschreiben warten.Lebenssperre.
RessourcenBei einem Deadlock werden die angeforderten Ressourcen von den anderen Prozessen blockiert.Bei Hunger werden die angeforderten Ressourcen kontinuierlich von Prozessen mit hoher Priorität verwendet.
VerhütungVermeiden Sie gegenseitigen Ausschluss, halten Sie und warten Sie und Zirkel warten Sie und erlauben Sie Vorrang. Altern.


Definition von Deadlock

Deadlock ist eine Situation, in der die verschiedenen Prozesse in der CPU um die begrenzte Anzahl von in der CPU verfügbaren Ressourcen konkurrieren. Hier enthält jeder Prozess eine Ressource und wartet, bis eine Ressource abgerufen wird, die von einem anderen Prozess gehalten wird. Alle Prozesse warten zirkulär auf Ressourcen. In der Abbildung unten sehen Sie, dass der Prozess P1 die vom Prozess P2 angeforderte Ressource R2 erfasst hat und der Prozess P1 die von R2 gehaltene Ressource R1 anfordert. Prozess P1 und P2 bilden also einen Deadlock.

Deadlock ist ein häufiges Problem in Multiprozessorbetriebssystemen, verteilten Systemen und auch in Parallelcomputersystemen. Es gibt vier Bedingungen, die gleichzeitig auftreten müssen, um den Deadlock-Zustand zu erhöhen: Gegenseitiger Ausschluss, Halten und Warten, Keine Vorwegnahme und Zirkulares Warten.


  • Gegenseitiger Ausschluss: Es kann jeweils nur ein Prozess eine Ressource verwenden, wenn ein anderer Prozess dieselbe Ressource anfordert. Er muss warten, bis der Prozess, der die Ressource verwendet, diese freigibt.
  • Gedrückt halten und warten: Ein Prozess muss eine Ressource halten und darauf warten, eine andere Ressource zu erhalten, die von einem anderen Prozess gehalten wird.
  • Keine Vorauszahlung: Der Prozess, der die Ressourcen enthält, kann nicht ausgeschlossen werden. Der Prozess, der die Ressource hält, muss die Ressource freiwillig freigeben, wenn sie ihre Aufgabe abgeschlossen hat.
  • Zirkulares Warten: Der Prozess muss zirkulär auf Ressourcen warten. Angenommen, wir haben drei Prozesse {P0, P1, P2}. Der P0 muss auf die Ressource warten, die von P1 gehalten wird. P1 muss warten, um die von Prozess P2 gehaltene Ressource zu erfassen, und P2 muss warten, um den von P0 gehaltenen Prozess zu erfassen.

Es gibt zwar einige Anwendungen, die Programme erkennen können, die möglicherweise blockiert sind. Das Betriebssystem ist jedoch niemals dafür verantwortlich, die Deadlocks zu verhindern. Es liegt in der Verantwortung der Programmierer, Deadlock-freie Programme zu entwerfen. Dies kann erreicht werden, indem die obigen Bedingungen vermieden werden, die für das Auftreten eines Deadlocks erforderlich sind

Definition von Hunger

Verhungern kann definiert werden, als ob eine Prozessanforderung für eine Ressource andauernd von den anderen Prozessen als dem anfordernden Prozess verwendet wurde. Beim Verhungern wartet ein ausführbarer Prozess darauf, dass die CPU die Ressource zuweist. Der Prozess muss jedoch auf unbestimmte Zeit warten, da die anderen Prozesse die angeforderten Ressourcen kontinuierlich blockieren.

Das Problem des Hungerns tritt im Allgemeinen in auf Prioritätsplanungsalgorithmus. Beim Prioritätsplanungsalgorithmus wird dem Prozess mit der höheren Priorität immer die Ressource zugewiesen, wodurch verhindert wird, dass der Prozess mit der niedrigeren Priorität die angeforderte Ressource erhält.

Altern kann das Problem des Hungers lösen. Das Altern erhöht allmählich die Priorität des Prozesses, der lange auf die Ressourcen gewartet hat. Die Alterung verhindert, dass ein Prozess mit niedriger Priorität auf unbestimmte Zeit auf eine Ressource wartet.

  1. In einem Deadlock fährt keiner der Prozesse mit der Ausführung fort. Jeder Prozess wird blockiert und wartet auf die Ressourcen, die von dem anderen Prozess erfasst wurden. Andererseits ist Hunger ein Zustand, in dem die Prozesse mit höherer Priorität die Ressourcen kontinuierlich beschaffen können, indem verhindert wird, dass die Prozesse mit niedriger Priorität Ressourcen beschaffen, was zu einer unbestimmten Blockierung von Prozessen mit niedriger Priorität führt.
  2. Deadlock entsteht bei vier Bedingungen Gegenseitiger Ausschluss, Halten und Warten, Keine Vorwegnahme und Zirkulares Warten gleichzeitig auftritt. Beim Prozess tritt jedoch ein Hunger auf Prioritäten wurden durchgesetzt während der Ressourcenzuweisung oder es gibt ein unkontrolliertes Ressourcenmanagement im System.
  3. Deadlock wird oft beim Namen genannt Zirkular warten während der Hunger genannt wird Gelebte Sperre.
  4. In Deadlock werden die Ressourcen durch den Prozess blockiert, während im Hungerfall die Prozesse kontinuierlich von den Prozessen mit hohen Prioritäten verwendet werden.
  5. Deadlock kann verhindert werden, indem Bedingungen wie gegenseitiger Ausschluss, Halten und Warten und zirkuläres Warten vermieden werden und Prozesse, die Ressourcen für eine lange Zeit halten, ausgeschlossen werden. Andererseits kann ein Verhungern durch verhindert werden Altern.

Fazit:

Sowohl Deadlock als auch Starvation verzögern die Ausführung des Prozesses, indem sie ihn blockieren. Einerseits kann ein Deadlock dazu führen, dass Prozesse verhungern, und andererseits kann ein Verhungern dazu führen, dass Prozesse aus dem Deadlock herauskommen.