Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File



Ähnliche Dokumente
Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem

Deadlock. Peter Puschner Institut für Technische Informatik

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Verklemmungen - Deadlocks

Kontrollflüsse. Dining Philosophers. 6. Verklemmungen. Systemsoftware. Seite 6.1. (c) 2002, Prof. Dr. P. Sturm, Universität Trier

Systemprogrammierung (Lehramt) Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 G-Verklemmungen.fm

H Verklemmungen. 1 Motivation. 1 Motivation (2) H Verklemmungen. Beispiel: die fünf Philosophen am runden Tisch

Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard

Betriebssysteme. Teil 12: Deadlocks

Prozessor (CPU, Central Processing Unit)

Vorlesung Betriebssysteme II

Technische Informa/k II. Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Betriebssysteme - Deadlocks

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

Klausur Nichtsequentielle Programmierung

2.3 Prozessverwaltung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Datenbanken und Informationssysteme

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Prioritäten/Zeitstempel-Verfahren

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme

9. Vorlesung Betriebssysteme

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

1 Prozesse und Scheduling (12 Punkte)

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

9 Verteilte Verklemmungserkennung

Softwarelösungen: Versuch 4

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Wartende Prozesse in einer (FIFO-) Warteschlange organisieren

Einführung: Zustandsdiagramme Stand:

Datenbanksysteme 2009

9. Foliensatz Betriebssysteme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Anfragen werden als Ganzes erfüllt und erst nach Ablauf der Zeit der

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.

Leser-Schreiber-Realisierung mit Semaphoren

Musterlösung Prüfung WS 01/02

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Vorlesung Datenstrukturen

Theoretische Informatik 1

Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Algorithmen und Datenstrukturen 2

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Prozesse und Scheduling

Übung Betriebssysteme 11

13. Übung mit Musterlösung

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

10 Kürzeste Pfade SSSP-Problem

Informatik II Musterlösung

Kapitel 8 Betriebsmittelverwaltung und Verklemmungen (deadlocks)

Greedy Algorithms - Gierige Algorithmen

Aufgaben zum Thema Verklemmungen

Übung zu Grundlagen der Betriebssysteme. 10. Übung

Einführung in die Informatik 2

Aufgaben Semaphore Übersicht (Dijkstra)

Lösungen zu Kapitel 5

Info B VL 17: Deadlocks

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Algorithmen II Vorlesung am

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen

Lösung von Übungsblatt 9. (Interprozesskommunikation)

Graphenalgorithmen I

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Kapitel 6. Verklemmungen (Deadlocks)

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Lernmodul 7 Algorithmus von Dijkstra

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Heute. Algorithmen für Ad-hoc- und Sensornetze. Erinnerung: MAC-Layer. Erinnerung: Färbungen. Definition

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

15. Elementare Graphalgorithmen

Aufgaben zum Thema Verklemmungen

ADS 2: Algorithmen und Datenstrukturen

Einheit 11 - Graphen

Transkript:

Kapitel V Deadlocks (Verklemmungen) 1 Deadlocks System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Prozesse benötigen Genehmigung vor der Benutzung von Ressourcen. Nach Verwendung einer Ressource, wird die Ressource wieder freigegeben. Eine Menge von Prozessen befindet sich im Zustand eines Deadlocks, wenn jeder Prozess auf ein Ereignis wartet, das nur von einem anderen Prozess generiert wird, der auch auf ein Ereignis wartet. 2

Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren Ressourcenkonflikt zwischen zwei oder mehreren Prozessen: jeder Prozess hält eine Ressource und wartet auf eine Ressource, die gerade ein anderer Prozess hält Beispiel 1: System mit 2 Plattenspeichereinheiten P 1 und P 2 haben jeweils 1 Plattenspeicher, benötigen aber insgesamt 2 Plattenspeicher, um fortsetzen zu können. Beispiel 2: Deadlocks Semaphore A und B mit 1 initialisiert P 0 P 1 wait (A); wait(b) wait (B); wait(a) 3 Deadlock: Überqueren einer Brücke Autos benötigen auf der Brücke einen Straßenabschnitt, der von einem anderen Auto besetzt ist. Jeder Brückenabschnitt kann als Ressource betrachtet werden. Auflösen eines Deadlocks : 1 Auto fährt zurück (Aufgabe einer Ressource). Ein Deadlock könnte auch dazu führen, dass mehrere Autos zurückfahren müssen. Verhungern ist möglich. 4

Systemmodell für Deadlocks Ressourcetypen: R 1, R 2,..., R m CPU Cycles, Speicherplatz, I/O Devices Jeder Ressourcetyp R i hat W i Instanzen. Jeder Prozess verwendet Ressourcen nach einem bestimmten Schema: Anforderung wenn nicht verfügbar, dann wartet Prozess bis die Ressource verfügbar ist Verwendung Prozess könnte auch andere Ressourcen benötigen, um eine Ressource zu verwenden. Freigabe nachdem die Ressource nicht mehr verwendet wird 5 4 Bedingungen für einen Deadlock 1. Wechselseitiger Ausschluss: Mindestens eine Ressource muss exklusiv verwendet werden. D.h. nur ein Prozess kann eine Ressource zu jedem beliebigem Zeitpunkt verwenden. Wenn ein anderer Prozess diese Ressource benötigt, so wird dieser Prozess solange verzögert, bis die Ressource frei wird. 2. Hold and Wait: Es existiert ein Prozess, der mindestens eine Ressource hat, und auf weitere Ressourcen wartet, die von anderen Prozessen gehalten werden. 3. Kein unfreiwilliges Abgeben von Ressourcen: Eine Ressource kann nur freiwillig von dem Prozess abgegeben werden, nachdem dieser die Ressource nicht mehr benötigt. 4. Circular Wait: Es gibt eine Menge von Prozessen {P0,,Pn}, die sich alle im Wartezustand befinden. P0 wartet auf eine Ressource, die von P1 gehalten wird. P1 wartet auf eine Ressource, die von P2 gehalten wird,..., Pn wartet auf eine Ressource, die von P0 gehalten wird. Circular Wait impliziert Hold and Wait. Bedingungen 1. 3. sind notwendig aber nicht ausreichend für eine Verklemmung. Wenn mindestens eine der oben genannten Bedingungen nicht zutrifft, dann kann es keinen Deadlock geben. 6

Circular Wait Geschlossene Kette von Prozessen, von denen jeder Prozess mindestens eine Ressource hält, die von einem anderen Prozess benötigt wird. Prozess P1 requests held by Ressource A Ressource B held by requests Prozess P2 Ein Deadlock tritt genau dann auf, wenn das Circular Wait nicht aufgelöst werden kann. Circular Wait kann nicht aufgelöst werden, wenn Bedingungen 1 bis 3 gelten. 7 Resource-Allocation Graph (1) Menge von Knoten V und Kanten E V wird in 2 Teilmengen unterteilt: P = {P 1, P 2,, P n }, die Menge aller Prozesse im System. R = {R 1, R 2,, R m }, die Menge aller Ressourcetypen im System. Eine Ressourceanfrage bezieht sich immer auf eine Instanz eines Ressourcetyps. Anforderungskante gerichtete Kante P 1 R j Zuweisungskante gerichtete Kante R j P i 9

Resource-Allocation Graph (2) Prozess Ressourcetyp mit 4 Instanzen P i fordert Instanz von R j an P i P i hat eine Instanz von R j P i R j R j 10 Resource Allocation Graph: ein Beispiel Beispiel: P 2 hat eine Instanz von R 1 und R 2, und wartet auf eine Instanz von R 3. P 2 kann fortsetzen, wenn R 3 von P 3 freigelassen wird. 11

Resource Allocation Graph mit einem Deadlock Circular Wait: alle 3 Prozesse warten darauf, dass ein anderer Prozess eine Ressource frei gibt. 13 12 Resource Allocation Graph mit einemzyklus aber ohne Deadlock Wenn P 4 seine Instanz von R 2 freigibt, dann kann R 2 an P 3 zugewiesen werden. Dadurch wird der Zyklus durchbrochen.

Grundlegende Fakten Resource AllocationGraph ohne Zyklen kein Deadlock. Resource AllocationGraph mit mindestens 1 Zyklus nur eine Instanz pro Ressourcentyp, dann Deadlock. mehrere Instanzenpro Ressourcentyp, dann ist ein Deadlock möglich. 16 14 Methoden zur Behandlung von Deadlocks Ignoriere Deadlocks Annahme, dass es keine Deadlocks gibt Annahme der meisten Betriebssysteme (z.b. Unix) Rebooten hilft immer! Deadlock Prevention verhindern einer der 4 Deadlock-Bedingungen. Deadlock Avoidance (Banker Algorithmus) Ressourcenreservierungen, die zu Deadlock führen könnten, werden nicht gewährt. Erkennen von Deadlocks Ressourcenanforderungen werde immer gewährt, sofern Ressourcen vorhanden sind. Periodisches Überprüfen, ob ein Deadlock vorliegt und ggf. Recovery

Verhindern von Deadlocks (1) Deadlock Prevention Garantiere, dass eine oder mehrere von den notwendigen Deadlock- Bedingungen nicht erfüllt sind. Hold and Wait Prozesse fordern alle Ressourcen auf einmal an. Prozesse warten, bis alle Ressourcen vorhanden sind. Verhungern von Prozessen möglich. Schlechte Nutzung der zugewiesenen Ressourcen Information über die benötigten Ressourcen wird vorausgesetzt. Wechselseitiger Ausschluss Gemeinsam verwendbare Ressourcen benötigen keinen exklusiven Zugriff (Lesen von Files). Nicht gemeinsam verwendbare Ressourcen benötigen exklusiven Zugriff (z.b. Drucker). Wechsels. Ausschluss kann nicht unterbunden werden. 17 Verhindern von Deadlocks (2) Deadlock Prevention kein unfreiwilliges Abgeben von Ressourcen: Virtuelle Ressourcen (preemptive Scheduling) Virtuelle Ressourcen (z.b. CPU) ermöglichen vorzeitige Abgabe von Ressourcen. ohne vorzeitige Abgabe von Ressourcen Wenn Prozess eine Ressource anfordert, die nicht frei ist, dann muss er alle seine Ressourcen freigeben. Prozess bekommt alle oder keine Ressourcen Circular Wait Nummeriere alle Ressourcetypen (Ressourcen A, B, C) und gewährleiste: Jeder Prozess fordert alle Ressourcen in aufsteigender Reihenfolge an. Bevor ein Prozess eine Ressource i anfordert, muss er alle Ressourcen j mit j i freigeben. 18

Algorithmus zur Verhinderung von Deadlocks Deadlock Avoidance Benötige zusätzliche Information darüber, wie viele Ressourcen angefordert werden. Entscheide, ob Anforderung erfüllt werden kann oder nicht. Sicherer Zustand: System kann Ressourcen in einer bestimmten Reihenfolge an Prozesse vergeben, ohne dabei einen Deadlock zu verursachen. Ein System befindet sich in einem sicheren Zustand, wenn es eine sichere Sequenz gibt. 19 Sichere Sequenz System muss bei einer Ressourceanfrage überprüfen, ob bei Vergabe der Ressourcen das System in einem sicheren Zustand bleibt. Ein System ist sicher, wenn es eine sichere Sequenz von allen Prozessen gibt. Eine Menge von Prozessen < P1,,Pn > ist sicher in Bezug auf Deadlocks, wenn für jeden Prozess Pi gilt: Die von Pi und von allen Pj (j < i) benötigten Ressourcen können zugewiesen werden. Wenn Ressourcen nicht unmittelbar verfügbar sind, dann kann Pi warten, bis alle Pj (j <i) fertig sind. Wenn Pj fertig ist, kann Pi die benötigten Ressourcen bekommen, exekutieren, die Ressourcen freigeben und terminieren. Wenn Pi terminiert, dann kann Pi+1 die Ressourcen von Pi verwenden, usw. 20

Grundlegende Fakten System in sicherem Zustand keine Deadlocks. System in unsicherem Zustand Deadlocks möglich Verhindern von Deadlocks gewährleiste, dass System nie in einen unsicheren Zustand kommt. 22 21 Resource-Allocation Graph graphischer Ansatz: funktioniert nur, wenn es eine Instanz pro Ressource gibt. May-Kante P 1 R j Prozess P 1 könnte Ressource R j in der Zukunft anfordern (gestrichelte Kante) May-Kante wird zu einer Anforderungskante, wenn Prozess die Ressource anfordert. Wenn Ressource wieder freigegeben wird, dann wird aus einer Zuweisungskante eine May-Kante. Für jedes Prozess-Ressourcen Paar muss eine etwaige Anforderung in der Zukunft a-priori bekannt sein.

Resource-Allocation Graph zur Verhinderung (Avoidance) von Deadlocks Bisher: Anforderungs- und Zuweisungskanten; Jetzt auch May-Kanten: P i --->R J zeigt an, dass R J in der Zukunft von P i angefordert werden könnte. P1 muss vor P2 (P1 bekommt R2) ausgeführt werden, um einen sicheren Zustand zu gewährleisten. Wenn R2 zuerst an P2 zugewiesen wird, dann entsteht ein Zyklus und ein Deadlock ist möglich, falls R2 von P1 angefordert wird. 23 Unsicherer Zustand in einem Resource-Allocation Graph Graph mit Zyklus und Potential für Deadlock; Unsicherer Zustand: P1 fordert R2 an. 24

Banker Algorithmus Deadlock Avoidance Bestimmt ob sich ein System in einem sicheren Zustand befindet. Algorithmus funktioniert für Ressourcenanforderung mit mehreren Instanzen. Jeder Prozess muss die maximale Zahl von Instanzen einer Ressource angeben, die er davon benötigt. Diese Zahl darf nicht über die verfügbaren Ressourcen hinausgehen. Verwende folgende Variablen: N ist die Anzahl der Prozesse. M ist die Anzahl der Ressourcetypen. Available: Vektor der Länge m, welcher die Anzahl der verfügbaren Ressourcen von jedem Typ angibt. Max: n x m (May-) Matrix, welche die maximale Anforderung für jeden Prozess bezüglich aller Ressourcen definiert. Allocation: n x m Matrix, welche die derzeitige Zuordnung von Ressourcen für jeden Prozess spezifiziert. Need: n x m Matrix, welche die restlichen Anforderungen von Ressourcen für jeden Prozess angibt. Work: Vektor der Länge m (Ressourcen) Finish: Vektor der Länge n (Prozesse) 25 Banker Algorithmus: Zustand sicher? Work = Available; Finish = False; iterate = True; repeat If there exists an i such that Finish[i] = False AND Need[i,*] <= Work then Work = Work + Allocation [i,*] Finish[i] = True; else iterate = False; endif until iterate If for every i: Finish[i] = True then System ist in einem sicheren Zustand endif 26

Banker Algorithmus: Ein Beispiel 3 Ressourcen: A, B, C mit je 10, 5 und 7 Instanzen Betrachte das System zu einem bestimmten Zustand: Allocation Max Available Need A B C A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 7 4 3 P1 2 0 0 3 2 2 1 2 2 P2 3 0 2 9 0 2 6 0 0 27 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 0 1 1 System befindet sich in einem sicheren Zustand, da die Sequenz <P1,P3,P4,P2,P0> das Sicherheitskriterium erfüllt. 4 3 1 Algorithmus für die Anforderung von Ressourcen (1) if Request[i,*] <= Need[i,*] then goto 2 else Prozess überschreitet maximale Anforderung ; exit (2) if Request[i,*] <= Available[*] then goto 3 else Prozess muss warten, da Ressourcen nicht verfügbar (3) Modifiziere Systemzustand gemäß der Anforderung - Available = Available - Request[i,*] - Allocation [i,*] = Allocation [i,*] + Request [i,*] - Need[i,*] = Need[i,*] - Request [i,*] 28 Finde heraus, ob die weitere Anforderung das System in einem sicheren Zustand belassen. Falls nicht, so muss diese Anforderung warten. Falls ja, dann werden die Ressourcen zugeteilt.

Anforderung von Ressourcen: Ein Beispiel Annahme: P1 mit zusätzlichen Request: (1,0,2) Überprüfe ob Request <= Available korrekt, dann ermittle neuen Zustand Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 P4 2 1 1 0 0 2 0 1 1 4 3 1 Neues System befindet sich in einem sicheren Zustand, da die Sequenz <P1,P3,P4,P0,P2> das Sicherheitskriterium erfüllt. Anforderung kann erfüllt werden. 29 Erkennen von Deadlocks Erlaube System in einendeadlock zu gelangen. Erkennungsalgorithmus Recovery-Mechanismus 30

Erkennen von Deadlocks 1 Instanz pro Ressource Wait-for-Graph Knoten sind Prozesse P i wartet auf P j : P i P j Periodische Anwendung eines Algorithmus, der Zyklen im Graphen sucht. Ein Zyklus entspricht einem Deadlock. Annahme, dass der Algorithmus in keinendeadlock involviert ist. 31 Resource-Allocation Graph und Wait-for Graph Resource-Allocation Graph Wait-for graph 32

Erkennen von Deadlocks Mehrere Instanzen pro Ressource n... Anzahl der Prozesse m... Anzahl der Ressourcen Available: Vektor der Länge m gibt die Anzahl der verfügbaren Ressourcen an. Allocation: n x m Matrix spezifiziert die derzeitige Zuordnung von Ressourcen für jeden Prozess. Request: n x m Matrix, welche die aktuellen Anforderungen pro Prozess angibt. Request [i,j] = k bedeutet, dass k zusätzliche Instanzen vom Ressourcentyp R j von Prozess P i benötigt werden. 33 Algorithmus zum Erkennen von Deadlocks Annahme: Work und Finish sind Vektoren der Länge m und n. 1. Initialisierung: (a) Work ::= Available (b) For i = 1,2,, n if Allocation i 0, then Finish[i] := false; otherwise, Finish[i] := true. 2. Finde einen Index i sodass 2 Bedingungen gültig sind: (a) Finish[i] = false (b) Request i Work Wenn es kein i gibt, dann gehe zu 4. 3. Work := Work + Allocation i Finish[i] := true gehe zu 2. 4. If Finish[i] = false, für einige i, 1 i n, dann befindet sich das System in einem Deadlock. Wenn Finish[i] = false, dann ist P i deadlocked. 34

Erkennungsalgorithmus: Beispiel (1) 5 Prozesse P 0 bis P 4 ; 3 Ressourcetypen A (7 Instanzen), B (2 Instanzen), und C (6 Instanzen). Snapshot zum Zeitpunkt T 0 : Allocation Request Available A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 35 P 4 0 0 2 0 0 2 Sequenz <P 0, P 2, P 3, P 1, P 4 > impliziert Finish[i] = true für alle i. Beispiel (2) P 2 fordert eine zusätzliche Instanz vom Typ C an. Request A B C P 0 0 0 0 P 1 2 0 2 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Was ist der Zustand des Systems? Kann Ressourcen von P 0 für andere Anforderungen verwenden; reicht aber nicht für alle Anforderungen aus; P 1, P 2, P 3 und P 4 befinden sich in einem Deadlock. 36

Deadlock Recovery: Prozessterminierung Abbrechen aller betroffenen Prozesse Abbrechen einzelner beteiligter Prozesse, solange bis der Deadlock- Zyklus beseitigt ist (wiederholtes Aufrufen des Erkennungsalg.) Rollback aller beteiligten Prozesse bis zu einem definierten Aufsetzpunkt (Deadlock kann sich wiederholen). Reihenfolge für das Abbrechen von Prozessen? Prozessprioritäten bisherige und verbleibende Laufzeit eines Prozesses Ressourcen, die bisher verwendet worden sind Ressourcen, die noch benötigt werden interaktive oder Batch-Prozesse 38 Deadlock Recovery: Freigabe von Ressourcen Auswahl von Prozessen für Ressourcenfreigabe minimiere Kosten Ressourcen werden Prozessen schrittweise entzogen und an andere Prozesse vergeben, bis kein Deadlock mehr vorliegt Rücksetzen der Prozesse, denen Ressourcen entzogen werden, bis zum Punkt der Zuweisung Verhungern eines Prozesses ist möglich berücksichtige Anzahl der Rollbacks 39

Zusammenfassung 4 Deadlock Bedingungen Wechselseitiger Ausschluss Hold and Wait Kein unfreiwilliges Abgeben von Ressourcen Circular Wait Deadlock Prevention Deadlock Avoidance Erkennen eines Deadlocks Recovery 41