Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systeme 1 Kapitel 7 Deadlocks WS 2009/101. Deadlocks Definition: Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess.

Ähnliche Präsentationen


Präsentation zum Thema: "Systeme 1 Kapitel 7 Deadlocks WS 2009/101. Deadlocks Definition: Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess."—  Präsentation transkript:

1 Systeme 1 Kapitel 7 Deadlocks WS 2009/101

2 Deadlocks Definition: Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann. WS 2009/

3 Beispiel Exklusive Ressourcen 1 und 2 Hier kann es zu einer Deadlock-Situation kommen! – Prozess 0 wartet auf Freigabe von Ressource 2 – Prozess 1 wartet auf Freigabe von Ressource 1 WS 2009/103 /* Prozess 0 */... Fordere Ressource 1 an... Fordere Ressource 2 an... Benutze beide Ressourcen... /* Prozess 1 */... Fordere Ressource 2 an... Fordere Ressource 1 an... Benutze beide Ressourcen...

4 Voraussetzungen für Deadlocks Folgende Voraussetzungen müssen erfüllt sein, damit ein Deadlock auftreten kann: – Wechselseitiger Ausschluss: Jede Ressource ist entweder verfügbar oder genau einem Prozess zugeordnet. – Hold-and-wait-Bedingung: Prozesse, die schon Ressourcen reserviert haben, können noch weitere Ressourcen anfordern. – Ununterbrechbarkeit: Ressourcen, die einem Prozess bewilligt wurden, können nicht gewaltsam wieder entzogen werden. – Zyklische Wartebedingung: Es muss eine zyklische Kette von Prozessen geben, von denen jeder auf eine Ressource wartet, die dem nächsten Prozess in der Kette gehört. Leider sind in realen Betriebssystemen diese Bedingungen üblicherweise erfüllt. WS 2009/104

5 Voraussetzungen für Deadlocks Ressourcenbelegungen und Ressourcenanforderungen können durch einen gerichteten Belegungs-Anforderungs-Graphen dargestellt werden. Es gibt 2 Arten von Knoten: – Kreise repräsentieren Prozesse pi: – Quadrate repräsentieren Ressourcen rj: Eine Kante von einer Ressource rj zu einem Prozess pi bedeutet: Ressource rj wird von Prozess pi belegt. Eine Kante von einem Prozess pi zu einer Ressource rj bedeutet: Prozess pi hat Ressource rj angefordert, aber noch nicht erhalten. WS 2009/105 pipi rjrj rjrj pipi gehört pipi rjrj will

6 Modellierung von Ressourcenbelegung und Ressourcenanforderung Ein Zyklus in dem Graphen existiert genau dann, wenn man von einem Knoten ausgehend über eine Folge von Kanten wieder zu dem Knoten zurückkommt: Zyklen im Belegungs-Anforderungsgraphen repräsentieren Deadlocks! WS 2009/106 p1p1 r2r2 r1r1 p2p2

7 Beispiel: Abarbeitungsfolge 1 Prozesse p 1, p 2, p 3, Ressourcen R, S, T – Prozess p 1 : Anforderung R, Anforderung S, Freigabe R, Freigabe S – Prozess p 2 : Anforderung S, Anforderung T, Freigabe S, Freigabe T – Prozess p 3 : Anforderung T, Anforderung R, Freigabe T, Freigabe R WS 2009/107 p1p1 p2p2 p3p3 RST 1. p 1 verlangt R. p1p1 p2p2 p3p3 RST 2. p 2 verlangt S. p1p1 p2p2 p3p3 RST 3. p 3 verlangt T. p1p1 p2p2 p3p3 RST 4. p 1 verlangt S. p1p1 p2p2 p3p3 RST 5. p 2 verlangt T. p1p1 p2p2 p3p3 RST 6. p 3 verlangt R. Deadlock!

8 Beispiel: Abarbeitungsfolge 2 Prozesse p 1, p 2, p 3, Ressourcen R, S, T – Prozess p 1 : Anforderung R, Anforderung S, Freigabe R, Freigabe S – Prozess p 2 : Anforderung S, Anforderung T, Freigabe S, Freigabe T – Prozess p 3 : Anforderung T, Anforderung R, Freigabe T, Freigabe R WS 2009/108 p1p1 p2p2 p3p3 RST 1. p 1 verlangt R. p1p1 p2p2 p3p3 RST 2. p 3 verlangt T. p1p1 p2p2 p3p3 RST 3. p 1 verlangt S. p1p1 p2p2 p3p3 RST 4. p 3 verlangt R. p1p1 p2p2 p3p3 RST 5. p 1 gibt R frei. p1p1 p2p2 p3p3 RST 6. p 1 gibt S frei. Kein Deadlock!

9 Verhinderung von Deadlocks: Bankieralgorithmus Bankieralgorithmus von Dijkstra (1965) verhindert Deadlocks im System. – Scheduling (Prozessorzuteilung an Prozesse) in einer Weise, dass keine Deadlocks auftreten können. Voraussetzungen: 1)Es ist im Voraus bekannt, welche und wie viele Ressourcen die einzelnen Prozesse (maximal) anfordern werden. 2)Diese maximale Anforderung übersteigt für keinen Prozess die zur Verfügung stehenden Ressourcen. Nach der 2. Voraussetzung gibt es auf jeden Fall einen Ablauf, bei dem es kein Problem mit fehlenden Ressourcen / Deadlocks gibt: – Führe einfach alle Prozesse nacheinander aus. – Nach Ablauf eines Prozesses gibt dieser sicherlich alle seine Ressourcen frei. Grundidee des Bankieralgorithmus: – Versuche möglichst viel Pseudo-Parallelismus zu erreichen (keine streng sequentielle Abarbeitung der Prozesse) – Riskiere dabei aber an keinem Punkt eine potentielle Deadlock-Situation! WS 2009/109

10 Bankieralgorithmus Vorgehen: – Überführe das System immer nur in sichere Zustände! – Ein Zustand ist sicher, wenn es auf jeden Fall eine deadlockfreie Restausführung aller Prozesse gibt, unabhängig davon, in welcher Weise die Prozesse in Zukunft ihre Ressourcenanforderungen und –freigaben durchführen werden, d.h. insbesondere, wenn die Prozesse ihre restlichen Anforderungen auf einen Schlag stellen und Freigaben erst bei Prozessbeendigung durchführen. – Sonst: Zustand ist unsicher. Nach Voraussetzung ist der Startzustand sicher! Beachte: Ein unsicherer Zustand muss nicht notwendigerweise zu einem Deadlock führen. WS 2009/1010

11 Bankieralgorithmus Der Bankieralgorithmus – prüft also bei jeder Ressourcenanforderung eines Prozesses p i, ob das System bei Erfüllung der Anforderung in einen unsicheren Zustand kommt. – Falls ja: Erfülle Anforderung nicht, stelle Prozess p i zurück und mache mit einem anderen Prozess weiter. Dadurch garantiert der Bankieralgorithmus in jedem Fall eine deadlockfreie Ausführung. Noch zu zeigen: Wie wird auf sicheren Zustand geprüft? (nächste Vorlesung) WS 2009/1011


Herunterladen ppt "Systeme 1 Kapitel 7 Deadlocks WS 2009/101. Deadlocks Definition: Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess."

Ähnliche Präsentationen


Google-Anzeigen