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

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

Deadlock. Peter Puschner Institut für Technische Informatik

Verklemmungen - Deadlocks

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

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

Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard

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

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Betriebssysteme. Teil 12: Deadlocks

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

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Vorlesung Betriebssysteme II

Klausur Nichtsequentielle Programmierung

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

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

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

Prozessor (CPU, Central Processing Unit)

Betriebssysteme - Deadlocks

Prioritäten/Zeitstempel-Verfahren

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

1 Prozesse und Scheduling (12 Punkte)

9. Foliensatz Betriebssysteme

Betriebssysteme (BS)

9. Vorlesung Betriebssysteme

Übung Betriebssysteme 11

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

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

Prozeß-Interaktion u. -Kommunikation

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

Datenbanksysteme 2009

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

Literatur. VA SS Teil 5/Messages

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

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Greedy Algorithms - Gierige Algorithmen

2.3 Prozessverwaltung

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Parallele Prozesse. Prozeß wartet

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

Organisation der Vorlesung, Einführung in Betriebssysteme. Betriebssysteme. Christoph Lindemann WS 2004/05

Kapitel 6. Verklemmungen (Deadlocks)

Vorlesung Datenstrukturen

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

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Algorithmen und Datenstrukturen 13

Aufgaben zum Thema Verklemmungen

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

Legende: Running Ready Blocked P1 P2 P3. t[ms] 1 Prozesse und Scheduling (16 Punkte)

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

Verteilte Echtzeit-Systeme

Verkettete Datenstrukturen: Bäume

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Nicht-blockierende Synchronisation für Echtzeitsysteme

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Literatur. Betriebssysteme WS 2015/16 - Teil 8/Synchronisation I

Datenbanken und Informationssysteme

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Dualität von Koordinierungstechniken

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation mit Semphoren (30)

4. Übung - Rechnerarchitektur/Betriebssysteme

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Windows 2000 Scheduler

Graphenalgorithmen I

Leser-Schreiber-Realisierung mit Semaphoren

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Übung zu Grundlagen der Betriebssysteme. 10. Übung

Lösungen zu Kapitel 5

Single- und Multitasking

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Domänenmodell: Fadenkommunikation und -synchronisation

Nebenläufige Programmierung: Praxis und Semantik. Zugriff auf mehrere Ressourcen

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

ADS: Algorithmen und Datenstrukturen 2

Algorithmen. Von Labyrinthen zu. Gerald Futschek

Verteilte Systeme. Synchronisation II. Prof. Dr. Oliver Haase

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

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Algorithmen. Von Labyrinthen zu. Gerald Futschek

Musterlösung Prüfung WS 01/02

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner

Info B VL 17: Deadlocks

Kapitel 8 Betriebsmittelverwaltung und Verklemmungen (deadlocks)

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

4. Übung - Rechnerarchitektur/Betriebssysteme

Grundbegriffe der Informatik

ADS 2: Algorithmen und Datenstrukturen

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG

Ausgewählte Kapitel eingebetteter Systeme

Transkript:

Betriebssysteme WS 2004/05 Deadlocks Christoph Lindemann Fahrplan 14.10. Organisation der Vorlesung, Einführung in Betriebssysteme 21.10. Strukturen von Betriebssystemen 28.10. Prozesse und Threads 4.11. CPU Scheduling 11.11. Synchronisation von Prozessen 18.11. Keine Vorlesung 25.11. Deadlocks 2.12. Keine Vorlesung 9.12. Speicherverwaltung (1) 16.12. Speicherverwaltung (2) 13.01. Virtueller Speicher 20.01. Dateisystem Schnittstelle 27.01. Strukturen von Rechnernetzen 3.02. Verteilte Systemstrukturen Universität Dortmund Rechnersysteme und Leistungsbewertung -2- Inhalt System Modell Deadlock (Verklemmung) Charakterisierung Methoden Deadlocks zu behandeln Deadlock Verhinderung (Prevention) Deadlock Vermeidung (Avoidance) Deadlock Erkennung (Detection) Erholung aus einem Deadlock (Recovery) Kombinierter Ansatz zur Deadlock Behandlung Das Deadlock Problem Eine Menge von blockierten Prozessen, von denen jeder eine Ressource besitzt und auf die Zuweisung einer Ressource wartet, die ein anderer Prozess dieser Menge besitzt. Beispiel Das System hat 2 Bandlaufwerke. P 1 und P 2 halten jeweils ein Bandlaufwerk und jeder braucht ein weiteres. Beispiel Semaphoren A und B, initialisiert mit 1 P 0 P 1 wait (A); wait(b) wait (B); wait(a) Universität Dortmund Rechnersysteme und Leistungsbewertung -3- Universität Dortmund Rechnersysteme und Leistungsbewertung -4-

Brücken Überquerungs-Beispiel System Modell Ressource Typ R 1, R 2,..., R m CPU Zyklen, Speicherplatz, Ein-/Ausgabe Gerät Jeder Ressource-Typ R i hat W i Instanzen. Verkehr nur in einer Richtung möglich. Jeder Bereich der Brücke kann als Ressource angesehen werden. Falls ein Deadlock auftritt, kann er aufgelöst werden, indem ein Auto zurückfährt (Ressourcen wegnehmen (preemption) und wiederaufsetzen (rollback)). Jeder Prozess benutzt eine Ressource wie folgt: beantragen benutzen freigeben Evtl. müssen mehrere Autos zurücksetzen, falls ein Deadlock eintritt. Unendliches Warten (Starvation) ist möglich. Universität Dortmund Rechnersysteme und Leistungsbewertung -5- Universität Dortmund Rechnersysteme und Leistungsbewertung -6- Deadlock Charakterisierung Ein Deadlock kann auftreten, falls vier Bedingungen gleichzeitig erfüllt sind: Gegenseitiger Ausschluss (Mutual exclusion): nur ein Prozess kann gleichzeitig eine Ressource benutzen. Halten und Warten (Hold and wait): ein Prozess besitzt mindestens eine Ressource und wartet auf die Zuweisung einer weiteren Ressource, die von einem anderen Prozess gehalten wird. Keine Ressource-Wegnahme (No preemption): eine Ressource kann nur freiwillig von dem Prozess freigegeben werden, der sie hält, nachdem der Prozess seine Aufgaben vollendet hat. Zyklisches Warten ( Circular wait): es existiert eine Menge {P 0, P 1,, P 0 } von wartenden Prozessen, so dass P 0 auf eine Ressource wartet, die von P 1 gehalten wird, P 1 wartet auf eine Ressource, die von P 2 gehalten wird,, P n 1 wartet auf eine Ressource, die von P n gehalten wird, und P n wartet auf eine Ressource, die von P 0 gehalten wird. Ressource Zuweisungs- (Resource-Allocation) Graph Eine Menge von Knoten V und Kanten E. V wird eingeteilt in zwei Typen: P = {P 1, P 2,, P n }, die Menge aller Prozesse im System. R = {R 1, R 2,, R m }, die Menge aller Ressource Typen im System. Anfragen Kante gerichtete Kante P i fi R j Zuweisungs-Kante gerichtete Kante R j fi P i Universität Dortmund Rechnersysteme und Leistungsbewertung -7- Universität Dortmund Rechnersysteme und Leistungsbewertung -8-

Resource-Allocation Graph (Forts.) Prozess Beispiel eines Resource Allocation Graph Ressourcen Typ mit 4 Instanzen P i beantragt Instanz von R j P i Rj P i hält eine Instanz von R j P i R j Universität Dortmund Rechnersysteme und Leistungsbewertung -9- Universität Dortmund Rechnersysteme und Leistungsbewertung -10- Resource Allocation Graph mit einem Deadlock Resource Allocation Graph mit Zyklus aber keinem Deadlock Universität Dortmund Rechnersysteme und Leistungsbewertung -11- Universität Dortmund Rechnersysteme und Leistungsbewertung -12-

Basis Fakten Wenn der Graph keinen Zyklus enthält Deadlock. Wenn der Graph einen Zyklus enthält kein Falls es nur eine Instanz pro Ressource Typ gibt, dann gibt es einen Deadlock. Falls mehrere Instanzen pro Ressource Typ existieren, ist ein Deadlock möglich. Methoden Deadlocks zu behandeln Sicherstellen, dass das System niemals einen Deadlock Zustand betritt.. Erlaube dem System einen Deadlock Zustand zu betreten und hole das System aus diesem Zustand. Ignoriere das Problem und tue so als ob Deadlocks niemals im System auftreten; von den meisten Betriebssystemen benutzt, einschließlich UNIX. Universität Dortmund Rechnersysteme und Leistungsbewertung -13- Universität Dortmund Rechnersysteme und Leistungsbewertung -14- Deadlock Vorbeugung Beschränke die Weise, wie Anfragen gestellt werden. Gegenseitiger Ausschluss nicht benötigt für Ressourcen, die gemeinsam benutzt werden können; gilt für Ressourcen, die nicht gemeinsam genutzt werden können. Halte und Warte garantiere dass ein Prozess, der eine Ressource anfordert keine andere Ressource hält. Prozess muss alle Ressourcen anfordern und zugewiesen bekommen,bevor er seine Ausführung beginnt, oder erlaube dem Prozess nur dann Ressourcen anzufordern wenn er keine hält. Geringe Ressourcen Ausnutzung; unendliches Warten möglich. Deadlock Vorbeugung (Forts.) Keine Ressource-Wegnahme Wenn ein Prozess Ressourcen hält und eine weitere anfordert, die nicht sofort zugewiesen werden kann, dann werden alle Ressourcen, die er hält freigegeben. Weggenommene Ressourcen werden zu der Liste der Ressourcen zugefügt, auf die der Prozess wartet. Der Prozess wird nur dann weiter ausgeführt, wenn er alle seine alten Ressourcen zugewiesen bekommt sowie die neuen, die er beantragt hat. Zyklisches Warten sortiere alle Ressource Typen in eine totale Ordnung und verlange von jedem Prozess, dass er Ressourcen in einer aufsteigenden Ordnung beantragt. Universität Dortmund Rechnersysteme und Leistungsbewertung -15- Universität Dortmund Rechnersysteme und Leistungsbewertung -16-

Deadlock Vermeidung Verlangt, dass das System a priori Informationen hat. Einfachstes und hilfreichstes Modell verlangt, dass jeder Prozess die Maximale Anzahl von Ressourcen jedes Typs angibt, die er brauchen könnte. Der Deadlock Vermeidungs-Algorithmus untersucht dynamisch den Ressource- Zuweisungs-Zustand um sicherzustellen, dass nie eine Zyklisches Warten auftritt. Ressource-Zuweisungs-Zustand ist definiert durch die Anzahl von verfügbaren und zugewiesenen Ressourcen und die maximalen Ansprüche der Prozesse. Sicherer Zustand Wenn ein Prozess eine verfügbare Ressource beantragt muss das System entscheiden, ob die sofortige Zuweisung das System in einem sicheren Zustand belässt. Das System ist in einem sicheren Zustand, falls eine sichere Sequenz von Prozessen existiert. Die Sequenz <P 1, P 2,, P n > ist sicher, falls für jeden P i gilt: die Ressourcen, die P i beantragen kann, können durch die aktuell verfügbaren Ressourcen + die Ressourcen, die von allen P j, mit j<i gehalten werden, erfüllt werden. Falls P i Ressourcen Ansprüche nicht sofort erfüllbar sind, dann kann P i warten bis alle P j beendet sind. Wenn P j beendet ist, kann P i benötigte Ressourcen zugewiesen bekommen, in Ausführung gehen, die Ressourcen freigeben und sich beenden. Wenn P i sich beendet, kann P i+1 seine benötigten Ressourcen zugewiesen bekommen und so weiter. Universität Dortmund Rechnersysteme und Leistungsbewertung -17- Universität Dortmund Rechnersysteme und Leistungsbewertung -18- Basis Fakten Sicher, unsicher, Deadlock Zustandsraum Falls ein System im sicheren Zustand ist Deadlocks. keine Falls ein System in einem unsicheren Zustand ist Deadlocks möglich. Vermeidung stelle sicher, dass ein System niemals in einen unsicheren Zustand läuft. Universität Dortmund Rechnersysteme und Leistungsbewertung -19- Universität Dortmund Rechnersysteme und Leistungsbewertung -20-

Resource-Allocation Graph Algorithmus Resource-Allocation Graph zur Deadlock Vermeidung Claim edge P i fi R j bedeutet, dass Prozess P j Ressource R j beantragen kann; dargestellt durch eine gestrichelte Linie. Eine claim edge wird in eine request edge konvertiert, wenn ein Prozess eine Ressource anfordert. Wenn eine Ressource von einem Prozess freigegeben wird, wird die assignment edge zu einer claim edge rückkonvertiert. Ressourcen müssen a priori im System beansprucht werden. Universität Dortmund Rechnersysteme und Leistungsbewertung -21- Universität Dortmund Rechnersysteme und Leistungsbewertung -22- Unsicherer Zustand im Resource-Allocation Graph Banker s Algorithmus Mehrere Instanzen. Jeder Prozess muss a priori seine maximalen Bedürfnisse beanspruchen. Wenn ein Prozess eine Ressource anfordert, muss er möglicherweise warten. Wenn ein Prozess alle seine Ressourcen zugewiesen bekommt, muss er sie in endlicher Zeit freigeben. Universität Dortmund Rechnersysteme und Leistungsbewertung -23- Universität Dortmund Rechnersysteme und Leistungsbewertung -24-

Daten Strukturen für den Banker s Algorithmus Sicherheits-Algorithmus Seit n = Anzahl der Prozesse, und m = Anzahl der Ressource Typen. Available: Vektor der Länge m. Falls Available[j] = k, es sind k Instanzen des Ressource Typs R j verfügbar. Max: n x m Matrix. Falls Max[i,j] = k, dann beantragt Prozess P i maximal k Instanzen des Ressource Typs R j. Allocation: n x m Matrix. Falls Allocation[i,j] = k dann sind Prozess P i gerade k Instanzen von R j. zugewiesen. Need: n x m Matrix. Falls Need[i,j] = k, dann braucht P i k weitere Instanzen von R j um seine Aufgabe zu beenden. Need [i,j] = Max[i,j] Allocation [i,j]. Universität Dortmund Rechnersysteme und Leistungsbewertung -25-1. Seien Work und Finish Vektoren der Länge m bzw. n. Initialisiere: Work := Available Finish [i] = false for i - 1,3,, n. 2. Suche ein i so, dass gilt: (a) Finish [i] = false (b) Need i Work Falls kein solches i existiert, gehe zu 4. 3. Work := Work + Allocation i Finish[i] := true gehe zu 2. 4. Falls Finish [i] = true für alle i, dann ist das System in einem sicheren Zustand. Universität Dortmund Rechnersysteme und Leistungsbewertung -26- Resource-Request Algorithmus für Prozess P i Request i = request Vektor für Prozess P i. Falls Request i [j] = k dann benötigt Prozess P i k Instanzen von Ressourcen Typ R j. 1. Falls Request i Need i gehe zu 2. Sonst gehe in Fehler Behandlung, weil der Prozess seine maximale Anforderung überschritten hat. 2. Falls Request i Available, gehe zu 3. Sonst muss P i warten, weil Ressourcen nicht verfügbar sind. 3. Gebe vor, die beantragten Ressourcen P i zuzuweisen, indem der Zustand wie folgt geändert wird: Available := Available = Request i ; Allocation i := Allocation i + Request i ; Need i := Need i Request i;; Falls sicher die Ressourcen werden P i zugewiesen. Falls unsicher P i muss warten, und der alte resourceallocation Zustand wird wiederhergestellt. Universität Dortmund Rechnersysteme und Leistungsbewertung -27- Beispiel des Banker s Algorithmus 5 Prozesse P 0 bis P 4 ; 3 Ressource Typen A (10 Instanzen), B (5 Instanzen), und C (7 Instanzen). Zustand zum Zeitpunkt T 0 : Allocation Max Available A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 2 4 3 3 Universität Dortmund Rechnersysteme und Leistungsbewertung -28-

Beispiel (Forts.) Der Inhalt der Matrix. Need ist definiert als Max Allocation. Need A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 Das System ist in einem sicheren Zustand weil die Sequenz < P 1, P 3, P 4, P 2, P 0 > die Sicherheitskriterien erfüllt. Beispiel (Forts.): P 1 beantragt (1,0,2) Überprüfe, dass Request Available (d.h., (1,0,2) (3,3,2) true). Allocation Need Available A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 Die Ausführung des Sicherheitsalgorithmus zeigt, dass die Sequenz <P 1, P 3, P 4, P 0, P 2 > die Sicherheitsbedingungen erfüllt. Kann ein request nach (3,3,0) von P 4 erfüllt werden? Kann ein request nach (0,2,0) von P 0 erfüllt werden? Universität Dortmund Rechnersysteme und Leistungsbewertung -29- Universität Dortmund Rechnersysteme und Leistungsbewertung -30- Deadlock Erkennung Erlaube dem System eine Deadlock Zustand zu betreten Erkenne Deadlock Behandlungs-Schema Einzige Instanz jedes Ressource Typs Verwalte wait-for graph Knoten sind Prozesse. P i fi P j falls P i auf P j. wartet Rufe periodisch einen Algorithmus auf, der nach einem Zyklus im Graph sucht. Ein Algorithmus, der einen Zyklus in einem Graph findet, braucht O(n 2 ) Operationen, wobei n die Anzahl der Knoten im Graph ist. Universität Dortmund Rechnersysteme und Leistungsbewertung -31- Universität Dortmund Rechnersysteme und Leistungsbewertung -32-

Resource-Allocation Graph und Wait-for Graph Mehrere Instanzen eines Ressource Typs Resource-Allocation Graph Corresponding wait-for graph Available: Ein Vektor der Länge m gibt die Anzahl von verfügbaren Ressourcen jeden Typs an. Allocation: Eine n x m Matrix definiert die Anzahl von Ressourcen jeden Typs, die gerade den Prozessen zugewiesen sind. Request: Eine n x m Matrix gibt die aktuellen Anforderungen jedes Prozesses an. Falls Request [ij] = k, dann fordert Prozess P i k weitere Instanzen von R j an. Universität Dortmund Rechnersysteme und Leistungsbewertung -33- Universität Dortmund Rechnersysteme und Leistungsbewertung -34- Erkennungs-Algorithmus 1. Seien Work und Finish Vektoren der Länge m bzw. n. Initialisiere: (a) Work :- Available (b) Für i = 1,2,, n, falls Allocation i 0, dann Finish[i] := false;sonst, Finish[i] := true. 2. Finde einen Index i so dass: (a) Finish[i] = false (b) Request i Work Falls kein solches i existier, gehe zu 4. Erkennungs-Algorithmus (Forts.) 3. Work := Work + Allocation i Finish[i] := true gehe zu 2. 4. Falls Finish[i] = false, für ein i, 1 i n, dann ist das System in einem Deadlock Zustand. Außerdem, falls Finish[i] = false, dann ist P i in einem Deadlock. Algorithm requires an order of m x n 2 operations to detect whether the system is in deadlocked state. Universität Dortmund Rechnersysteme und Leistungsbewertung -35- Universität Dortmund Rechnersysteme und Leistungsbewertung -36-

Beispiel für den Erkennungs-Algorithmus Fünf Prozesse P 0 bis P 4 ; drei Ressource Typen A (7 Instanzen), B (2 Instanzen), and C (6 Instanzen). Zustand 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 P 4 0 0 2 0 0 2 Sequenz <P 0, P 2, P 3, P 1, P 4 > resultiert in Finish[i] = true für alle i. Beispiel (Forts.) P 2 beantragt eine zusätzliche Instanz von Typ C. Zustand des Systems? Request A B C P 0 0 0 0 P 1 2 0 1 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Kann Ressourcen, die P 0 hält erneut anfordern, aber zuwenig Ressourcen, um Anforderungen anderer Prozesse zu erfüllen. Deadlock existiert, bestehend aus Prozessen P 1, P 2, P 3, und P 4. Universität Dortmund Rechnersysteme und Leistungsbewertung -37- Universität Dortmund Rechnersysteme und Leistungsbewertung -38- Erkennungs-Algorithmus Gebrauch Wann, und wie oft aufzurufen hängt ab von : Wie oft kommt ein Deadlock wahrscheinlich vor? Wie viele Prozesse müssen wieder aufgesetzt werden? - Einer für jeden Zyklus Falls Erkennungs-Algorithmus willkürlich aufgerufen wird, können viele Zyklen im resource graph sein, so dass man nicht mehr sagen kann, welcher der Prozesse den Deadlock verursacht hat. Behandlung von Deadlocks: Prozess Beendigung Breche alle deadlocked Prozesse ab. Breche jeweils einen Prozess gleichzeitig ab, bis der Deadlock Zyklus eliminiert ist. In welcher Reihenfolge sollen wir Prozesse abbrechen? Priorität des Prozesses. Wie lange ein Prozess gerechnet hat wie lange er noch rechnet. Ressourcen, die der Prozess benutzt hat. Ressourcen, die der Prozess noch braucht. Wie viele Prozesse müssen beendet werden. Ist der Prozess interaktiv oder batch? Universität Dortmund Rechnersysteme und Leistungsbewertung -39- Universität Dortmund Rechnersysteme und Leistungsbewertung -40-

Behandlung von Deadlocks : Ressource Wegnahme Auswahl eines Opfers minimiere Kosten. Rollback gehe zurück in einen sicheren Zustand, starte Prozess für diesen Zustand neu. Endloses Warten ein Prozess könnte immer als Opfer gewählt werden, baue Nummer des Rollbacks in Kostenfaktor ein. Kombinierter Ansatz zur Deadlock Behandlung Kombiniere die drei Grundansätze Verhinderung Vermeidung Erkennung erlaube die Benutzung des optimalen Ansatzes für jede Ressource im System. Teile Ressourcen in hierarchisch sortierte Klassen ein. Benutze am besten passendes Verfahren Deadlocks innerhalb jeder Klasse zu behandeln. Universität Dortmund Rechnersysteme und Leistungsbewertung -41- Universität Dortmund Rechnersysteme und Leistungsbewertung -42-