Was ist Deadlock im Betriebssystem: Bedingungen & Erkennungsalgorithmus

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Das Hauptziel eines Betriebssystems besteht darin, eine ordnungsgemäße Kommunikation zwischen Hardware- und Softwareressourcen bereitzustellen und auch gemeinsame Dienste für Programme bereitzustellen. Wenn ein Betriebssystemprozess auf eine Ressource zugreifen möchte, sendet er zuerst eine Anforderung an die bestimmte Ressource, auf die er zugreifen möchte, verwendet dann die Ressource und gibt die Ressource nach der Verwendung schließlich frei. Angenommen, viele Prozesse versuchen gleichzeitig, auf eine Ressource zuzugreifen, wird es in einer solchen Situation, in der das Konzept Deadlock auftritt, schwierig, allen Prozessen gleichzeitig eine Ressource bereitzustellen. Daher beschreibt dieser Artikel, wie ein Deadlock auftritt und wie diese Deadlock-Situation überwunden werden kann.

Was ist der Deadlock im Betriebssystem?

Definition: Dead-Lock ist eine Situation, in der zwei oder mehr Prozessoren auf ein Ereignis warten, aber solche Ereignisse, die nicht eintreten, eine Deadlock-Bedingung sind und die Prozessoren sich in einem Deadlock-Zustand befinden. Nehmen wir zum Beispiel ein Echtzeitszenario an, in dem zwei Autos A & B von zwei einzelnen Fahrern auf einer Einbahnstraße gefahren werden. Jetzt entsteht die Situation, in der der Fahrer von Auto A sagt, dass er sich in Richtung Norden bewegt, während der Fahrer von Auto B sagt, dass er sich in Richtung Süden bewegt. Aber keiner von beiden fährt zurück, damit sich ein anderes Auto vorwärts bewegen kann. Dieser Zustand wird als Deadlock-Zustand bezeichnet.




Auto-Beispiel

Auto-Beispiel

Zum besseren Verständnis betrachten wir ein weiteres Beispiel, in dem zwei Ressourcen R1, R2 und zwei Prozesse P1 und P2 vorhanden sind, wobei R1 P1 und R2 P2 zugewiesen sind. Wenn nun P1 auf R2 zugreifen möchte, wie wir bereits wissen, wird R2 von P2 gehalten, und jetzt P2 auf R1 zugreifen möchte, das P1 nur ausführt, wenn auf R2 zugegriffen wird, wird P2 in dieser Situation nur ausgeführt, wenn auf R1 zugegriffen wird ist ein Deadlock-Zustand.



Prozessor-Beispiel

Prozessor-Beispiel

Dead-Lock-Bedingungen

Im Folgenden sind die vier wichtigen Deadlock-Bedingungen aufgeführt, die auftreten müssen, wenn alle Bedingungen gleichzeitig auftreten. Es besteht eine gewisse Wahrscheinlichkeit, dass der Deadlock auftritt.

Gegenseitiger Ausschluss

Dies bedeutet, dass jede Ressource, die wir verwenden, sich gegenseitig ausschließen muss. Wo immer nur ein Prozess jeweils nur eine Ressource verwendet. Zum Beispiel läuft der Druckvorgang und plötzlich versucht ein anderer Vorgang, den Druckvorgang zu unterbrechen. Hier wird also in einer Situation des gegenseitigen Ausschlusses erst nach Abschluss der Druckaufgabe nur die nächste Aufgabe verarbeitet. Gegenseitiger Ausschluss kann durch gleichzeitiges Teilen von Ressourcen beseitigt werden, was praktisch nicht möglich ist.

Gegenseitiger Ausschluss

gegenseitiger Ausschluss

Keine Vorkaufsrecht

Gemäß vorbeugend basierte Algorithmen, wenn eine Prioritätsaufgabe versucht, die aktuelle Aufgabe zu unterbrechen. Der Präventivalgorithmus enthält die aktuelle Aufgabe und führt zunächst die Prioritätsaufgabe aus und kehrt zur ersten Aufgabe zurück. Eine Situation, die gemäß dem obigen Beispiel erklärt wurde, in der ein Prozess die Ressource hält, solange sie ausgeführt wird, dh P1 kann R1 erst nach der Ausführung freigeben, ähnlich wie P2 R2 erst nach der Ausführung freigeben. Wenn keine Vorkaufsrecht besteht, kann der Deadlock auftreten.


No-Preemption-Beispiel

No-Preemption-Beispiel

Halten und warten

Ein Prozess enthält einige Ressourcen und wartet auf zusätzliche Ressourcen, aber diese Ressourcen werden von einem anderen Prozess erfasst. Aus dem obigen Beispiel geht hervor, dass P1 R1 hält und auf R2 wartet, wobei R2 von P2 erfasst wird, und P2 R2 hält und auf R1 wartet, wobei R1 von P1 erfasst wird. Dies kann zu einem Stillstand und einer Wartesituation führen.

Hold-and-Wait-Beispiel

Hold-and-Wait-Beispiel

Rundschreiben Warten

Eine Reihe von Prozessen wird als Deadlock bezeichnet, wenn ein Prozess auf eine Ressource wartet, die einem anderen Prozess zugewiesen ist, und dieser Prozess auf eine Ressource wartet. Dies ähnelt dem oben erläuterten Beispiel, in dem er in Schleifenform vorliegt. Wenn P1 auf R2 wartet und R2 auf P2 zugewiesen ist und P2 auf R1 wartet und R1 auf P1 zugewiesen ist, handelt es sich um eine zirkuläre Warteform, wenn diese Bedingung den Deadlock erfüllt.

Circular-Wait-Beispiel

Rundschreiben-Warte-Beispiel

Dead-Lock-Erkennungsalgorithmus

Die Fälle, in denen wir Ressourcen Ressourcen zuweisen und das Betriebssystem erneut überprüft, ob ein Deadlock im System aufgetreten ist oder nicht, verwenden zwei Hauptalgorithmen zur Erkennung von Deadlocks

  • Einzelne Instanz
  • Mehrere Instanzen des Ressourcentyps

Einzelinstanz

Eine einzelne Instanz ist eine Situation, in der ein System einzelne Instanzen aller Ressourcen hat. Es wird auch als Warten auf Diagrammalgorithmus oder Ressourcenzuweisungsdiagramm bezeichnet. Das Ressourcenzuweisungsdiagramm besteht aus einer Reihe von Prozessen und einer Reihe von Ressourcen, die als zwei verschiedene Eckpunkte dargestellt werden. Die Ressourcen im Ressourcenzuordnungsdiagramm werden geändert und als Wartezeit für das Diagramm dargestellt. Wo das Warten auf die Diagrammform nur Prozesse hat, die als Eckpunkte dargestellt sind, wie unten gezeigt, wobei

  • Ressourcenzuweisungsdiagramm: Die Prozesse P1, P2, P3 und die Ressourcen R1, R2, R3 werden im Ressourcenzuweisungsdiagramm dargestellt.
  • Warten auf Grafik: Nur die Prozesse P1, P2, P3 werden beim Warten auf die Grafik erwähnt.
  • Wenn eine Zyklusbedingung vorliegt, bedeutet dies, dass bei einem kontinuierlichen Ablauf eines Prozesses in eine Richtung die Zyklusbedingung beendet wird und darauf gewartet wird, dass sich der Graph in einem Deadlock-Zustand befindet.

Beispiel 1: Das folgende Beispiel zeigt, dass kein Deadlock-Status vorliegt, da beim Warten auf das Diagramm kein kontinuierlicher Fluss beobachtet wird.

Einzelinstanz-Beispiel1

Einzelinstanz-Beispiel1

Beispiel 2: Eine Deadlock-Bedingung ist aufgetreten, weil ein kontinuierlicher Zyklusfluss von P1 nach P4 besteht.

Einzelinstanz - Beispiel2

Einzelinstanz-Beispiel2

Wenn im System sehr häufig ein Deadlock auftritt, wird der Erkennungsalgorithmus häufig verwendet. Wenn der Erkennungsalgorithmus häufiger verwendet wird, entsteht mehr Overhead und mehr Rechenzeit. Um dies zu überwinden, rufen wir den Algorithmus auf, nachdem wir bei gleicher Zeit das Gewicht für den Graphen verwendet haben, um einen Deadlock zu erkennen.

Mehrere Instanzen des Ressourcentyps

Mehrere Instanzen des Ressourcentyps sind eine Situation, in der ein System mehrere Instanzen aller Ressourcen hat. Dies wird auch als Bankers-Algorithmus bezeichnet. Nach dem Bankers-Algorithmus gibt der Prozess seine Ressourcen frei, sobald er alle erforderlichen Ressourcen erhält.

Betrachten wir das folgende Beispiel, nehmen wir an, dass es 3 Prozesse P0, P1, P2 und Ressourcentyp A, B, C gibt, in denen A sein kann Zentralprozessor , B kann Drucker sein und C kann die Tastatur sein. Die Ziffern „0“ in der Spalte geben die Verfügbarkeit von Ressourcen an.

Fall (i): Angenommen, wenn wir annehmen, dass die Bedingungsanforderung die Bedingung '000' ist, die in P0 und P2 vorhanden ist, sollten wir prüfen, welche Anforderung erfüllt ist, die Prozesse P0 die Prozesse nach der Zuweisung freigeben und die nächsten P2-Prozesse nach der Zuweisung freigeben. Auf diese Weise gibt in einer Sequenz einer nach dem anderen Prozess P0, P2, P3, P1, P4 in einer Sequenz frei. Schließlich erhalten wir verfügbare Ressourcen als P7, P2, P6. Die verfügbare Sequenz ist eine Bedingung, bei der kein Deadlock vorliegt.

Bankers-Algorithmus-Beispiel1

Banker-Algorithmus-Beispiel1

Häuser (ii): Angenommen, wenn P2 001 anstelle von 000 ist, wenden Sie jetzt den Algorithmus des Bankiers an, um nach Deadlock-Bedingungen zu suchen, bei denen der einzige P0 unter allen 5 Prozessen ausgeführt wird. Daher befinden sich P1, P2, P3, P4 mit Ausnahme von P0 im Deadlock-Zustand.

Banker-Beispiel2

Banker-Beispiel2

Anwendungen von Deadlock

Die Anwendung von Deadlock kann anhand eines Echtzeitbeispiels für Online-Prüfungsergebnisse erläutert werden, bei dem mehrere Studenten zum Zeitpunkt der Veröffentlichung versuchen, auf ihre Universitätswebsite zuzugreifen. Man kann beobachten, dass die Webseite manchmal nicht für mehrere Benutzer gleichzeitig geladen wird. Dies ist eine Deadlock-Bedingung. Dies kann mit einem der Algorithmen überwunden werden.

Vorteile

Die Vorteile von Deadlock sind

  • Bei der Vermeidung von Deadlocks wird keine Prävention beobachtet
  • Keine Verzögerung im Prozess

Nachteile

Der Nachteil von Deadlock ist

  • Die zu verwendende Ressource muss im Voraus bekannt sein
  • Blockierung des Prozesses für eine lange Zeit
  • Vorkaufsverluste werden vererbt.

Dieser Artikel gibt einen Überblick darüber, wie ein Deadlock auftritt, wenn zwei oder mehr Prozesse vorhanden sind, und über die drei Bedingungen, unter denen ein Deadlock auftritt, sowie über die beiden Arten von Algorithmen, nämlich den Algorithmus zur gemeinsamen Nutzung von Ressourcen, der feststellt, dass ein Deadlock vorliegt Deadlock-Zustand und Banker-Algorithmus, der ein Deadlock-Vermeidungsalgorithmus ist. Hier ist die Frage 'Was passiert, wenn der Deadlock ignoriert wird?'.