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



Ähnliche Dokumente
Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard

Betriebssysteme - Deadlocks

Verklemmungen - Deadlocks

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

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

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

Vorlesung Betriebssysteme II

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

Deadlock. Peter Puschner Institut für Technische Informatik

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

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

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

9. Vorlesung Betriebssysteme

Kapitel 5 Verklemmungsprobleme. Verklemmungsprobleme

Aufgaben zum Thema Verklemmungen

Prozessor (CPU, Central Processing Unit)

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

Leser-Schreiber-Realisierung mit Semaphoren

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

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

Aufgaben zum Thema Verklemmungen

Technische Informatik II (TI II) (7) Synchronisation. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Datenbanken und Informationssysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Klausur am

Lösung von Übungsblatt 9. (Interprozesskommunikation)

2.3 Prozessverwaltung

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Betriebssysteme. Teil 12: Deadlocks

9. Foliensatz Betriebssysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Betriebssysteme. Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik. Wintersemester 2016/17

1 Prozesse und Scheduling (12 Punkte)

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

Datenbanksysteme 2009

Verteilte Systeme. Diffusionsalgorithmen. Secure Identity Research Group

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

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

3.5 Synchronisation ohne Sperren

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Prioritäten/Zeitstempel-Verfahren

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

Aufgaben Semaphore Übersicht (Dijkstra)

4. Übung - Rechnerarchitektur/Betriebssysteme

1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden?

Deadlocks und autonomes Fahren

Systeme I: Betriebssysteme Wiederholung wichtiger Inhalte der Kapitel 3-7. Maren Bennewitz

Prozeß-Interaktion u. -Kommunikation

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. 14. Transaktionen

Systeme I: Betriebssysteme Wiederholung wichtiger Inhalte der Kapitel 3-7. Maren Bennewitz

Moderne Betriebssysteme

Kapitel 8 Betriebsmittelverwaltung und Verklemmungen (deadlocks)

4. Übung - Rechnerarchitektur/Betriebssysteme

Immediate Priority Ceiling

2. Prozeßverklemmungen

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

Verteilte Echtzeit-Systeme

Vorlesung "Systemsoftware II" Wintersemester 2002/03

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

Einheit 11 - Graphen

Lösung zum 2. Übungsblatt VBS

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

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017

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

Literatur. VA SS Teil 5/Messages

Testen nebenläufiger Objekte

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

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

Lösungsvorschläge Blatt Z1

Betriebssysteme 1. Einführung (2) Synchronisation: Probleme mit gleichzeitigem Zugriff auf Datenstrukturen Beispiel: Zwei Threads erhöhen einen Zähler

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Betriebssysteme 1 BS1-E SS Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen. Foliensatz E: Synchronisation Deadlocks. v1.

3. Übung zur Vorlesung Verteilte Betriebssysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

9 Verteilte Verklemmungserkennung

Heute. Medium Access Control / Färbungen, Teil 2. Kapazität & Scheduling. kurze Wiederholung Schöner verteilter Färbungsalgorithmus

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Vorlesung Datenstrukturen

Betriebssysteme (BS)

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

Lösung 3. Übung zur Vorlesung Betriebssysteme

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Algorithmen für eingebettete Systeme

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

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

Musterlösung Prüfung WS 01/02

1 Kürzeste Pfade in Graphen

Transkript:

Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 19. Dezember 2013 Betriebssysteme / verteilte Systeme Betriebssysteme I (1/15) i Betriebssysteme I WS 2013/2014 4 Verklemmungen (Deadlocks) Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 216

4 Verklemmungen (Deadlocks)... Inhalt: Einführung Formale Definition, Voraussetzungen Behandlung von Deadlocks: Erkennung und Behebung Vermeidung (Avoidance) Verhinderung (Prevention) Tanenbaum 3 Stallings 6.1-6.6 Nehmer/Sturm 8 Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 217 4.1 Einführung Wichtige Aufgabe des BSs: Verwaltung von Ressourcen Ressourcen werden an Prozesse zugeteilt Ressource kann nur jeweils von einem Prozeß genutzt werden wechselseitiger Ausschluß aber: mehrere identische Instanzen einer Ressource möglich Mögliches Problem: Deadlock, z.b. Prozeß A hat belegt, benötigt CD-Brenner Prozeß B hat CD-Brenner belegt, benötigt A wartet auf B, B wartet auf A,... Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 218

4.1 Einführung... Unterbrechbare und ununterbrechbare Ressourcen Unterbrechbare Ressource kann einem Prozeß ohne Schaden wieder entzogen werden z.b. Prozessor (Sichern und Wiederherstellen des Prozessorzustands beim Threadwechsel) z.b. Hauptspeicher (Auslagern auf Platte) Deadlocks können verhindert werden Ununterbrechbare Ressource kann einem Prozeß nicht entzogen werden, ohne daß seine Ausführung fehlschlägt z.b. CD-Brenner Im Folgenden: ununterbrechbare Ressourcen Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 219 4.1 Einführung... Anforderung von Ressourcen Systemabhängig, z.b. explizite Anforderung über speziellen Systemauruf implizit beim Öffnen eines Geräts (Systemaufruf open) falls Ressource nicht verfügbar: Systemaufruf blockiert Häufig wird Zuteilung auch explizit programmiert z.b. durch Nutzung von Semaphoren Umgekehrt ist auch Belegung eines Semaphors als Ressourcenzuteilung interpretierbar dann i.d.r. Threads statt Prozesse Vereinfachung in diesem Kapitel: Prozesse mit nur einem Thread, d.h. gesamter Prozess blockiert! Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 220

Anmerkungen zu Folie 220: Bei Prozessen mit mehreren Threads wird durch einen blockierenden Systemaufruf nur der aufrufende Thread blockiert, was die Betrachtung komplizierter macht. Daher gehen wir diesem Abschnitt davon aus, daß falls ein Prozeß eine bereits belegte Ressource anfordert, der Prozess vollständig blockiert wird, also z.b. nur einen Thread besitzt (klassischer Prozess). Genau dieselbe Situation tritt ein, wenn mehrere Threads (desselben Prozesses oder auch verschiedener Prozesse) welchselseitigen Ausschluß, z.b. durch Semaphore, realisieren. Hier kann man die Semaphor-Einheiten als ununterbrechbare Ressource auffassen. Die P-Operation ist dann die Anforderung einer Einheit des entsprechenden Semaphors. Daher wird im Folgenden manchmal von Prozessen (im Sinne von klassischen Prozessen mit einem Thread) und manchmal von Threads gesprochen. 4.1 Einführung... (Animierte Folie) Beispiel: Nutzung von zwei Ressourcen Verklemmung möglich Semaphore resource1 = 1; Semaphore resource2 = 1; Thread A P(resource1); P(resource2); UseBothResources(); V(resource2); V(resource1); Thread B P(resource2); P(resource1); UseBothResources(); V(resource1); V(resource2); Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 221

4.2 Formale Beschreibung Definition Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand (Verklemmungs-Zustand), wenn jeder Prozeß aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozeß aus dieser Menge auslösen kann. Alle Prozesse warten Die Ereignisse werden daher niemals ausgelöst Keiner der Prozesse wird jemals wieder aufwachen Im BS-Kontext oft: Ereignis = Freigabe einer Ressource Bzw. Thread(s) Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 222 4.2 Formale Beschreibung... Bedingungen für einen Ressourcen-Deadlock 1. Wechselseitiger Ausschluß: Jede Ressource kann zu einem Zeitpunkt von höchstens einem Prozeß genutzt werden. 2. Hold-and-Wait (Besitzen und Warten): Ein Prozeß, der bereits Ressourcen besitzt, kann noch weitere Ressourcen anfordern. 3. Ununterbrechbarkeit (kein Ressourcenentzug): Einem Prozeß, der im Besitz einer Ressource ist, kann diese nicht gewaltsam entzogen werden. 4. Zyklisches Warten: Es gibt eine zyklische Kette von Prozessen, bei der jeder Prozeß auf eine Ressource wartet, die vom nächsten Prozeß in der Kette belegt ist. Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 223

4.2 Formale Beschreibung... Bedingungen für einen Deadlock... Anmerkungen: Bedingungen 1-3 sind notwendige Bedingungen, aber nicht hinreichend Bedingung 4 ist eine potentielle Konsequenz aus 1-3 die Unauflösbarkeit des zyklischen Wartens ist eine Folge aus 1-3 Alle vier Bedingungen zusammen sind notwendig und hinreichend für eine Verklemmung Konsequenz: wenn eine der Bedingungen unerfüllbar ist, können keine Deadlocks auftreten Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 224 4.2 Formale Beschreibung... Modellierung von Deadlocks Belegungs-Anforderungs-Graph: gerichteter Graph zwei Arten von Knoten: Prozesse ( ) Ressourcen ( ) Kante Ressource Prozeß: Ressource ist vom Prozeß belegt Kante Prozeß Ressource: Prozeß wartet auf Zuteilung der Ressource Ein Deadlock liegt genau dann vor, wenn der Graph einen Zyklus enthält R1 P2 R1 P2 P1 R2 P1 R2 Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 225

4.2 Formale Beschreibung... (Animierte Folie) Beispiel: Ablauf mit Verklemmung 01 Anfrage R Anfrage S Freigabe R Freigabe S 01 Anfrage S Anfrage T Freigabe S Freigabe T 01 Anfrage T Anfrage R Freigabe T Freigabe R A B C Dead lock! R S T Reihenfolge: A B C A B C... Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 226 4.2 Formale Beschreibung... (Animierte Folie) Beispiel: Ablauf ohne Verklemmung Anfrage R Anfrage S Freigabe R Freigabe S Anfrage S Anfrage T Freigabe S Freigabe T 01 Anfrage T Anfrage R Freigabe T Freigabe R A B C C fordert T an R S T Betriebssystem erkennt, daß Belegung von T durch C zu Deadlock führen könnte ==> C wird blockiert Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 227

4.3 Behandlung von Deadlocks Prinzipiell vier Möglichkeiten Vogel-Strauß-Algorithmus nichts tun und hoffen, daß alles gut geht Deadlock-Erkennung und -Behebung lässt zunächst alle Anforderungen zu, löst ggf. Deadlock auf Deadlock-Avoidance (Deadlock-Vermeidung) BS lässt Resourcenanforderung nicht zu, wenn dadurch ein Deadlock entstehen könnte Deadlock-Prevention (Deadlock-Verhinderung) macht eine der 4 Deadlock-Bedingungen unerfüllbar Achtung: Begriffsverwirrung bei Verhinderung vs. Vermeidung! Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 228 4.3.1 Deadlock-Erkennung und -Behebung Deadlock-Erkennung bei einer Ressource pro Typ Deadlock Belegungs-Anforderungs-Graph enthält Zyklus R A B C S D T E F U V W G Benötigt Algorithmus, der Zyklen in Graphen findet Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 229

4.3.1 Deadlock-Erkennung und -Behebung... Deadlock-Erkennung bei mehreren Ressourcen pro Typ Belegungs-Anforderungs-Graph nicht mehr adäquat Prozeß wartet nicht auf bestimmte Ressource, sondern auf irgendeine Ressource des passenden Typs Im Folgenden: Matrix-basierter Algorithmus Das System sei wie folgt modelliert: n Prozesse P 1,...,P n m Klassen von Ressourcen Klasse i (1 i m) enthält E i Ressource-Instanzen Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 230 4.3.1 Deadlock-Erkennung und -Behebung... Datenstrukturen des Matrix-Algorithmus Ressourcenvektor E Anzahl verfügbarer Ressourcen für jede Klasse Ressourcenrestvektor A gibt für jede Klasse an, wieviele Ressourcen noch frei sind Belegungsmatrix C C ij = Anzahl der Ressourcen der Klasse j, die Prozeß P i belegt n Invariante: j = 1...m : C ij + A j = E j Anforderungsmatrix R i=1 R ij = Anzahl der Ressourcen der Klasse j, die Prozeß P i noch benötigt (d.h. im Moment anfordert) Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 231

4.3.1 Deadlock-Erkennung und -Behebung... Beispiel: Bandgeräte Plotter CD ROM Bandgeräte Plotter CD ROM E = ( 4 2 3 1 ) A = ( 2 1 0 0 ) Ressourcenvektor Ressourcenrestvektor 0 0 1 0 C = 2 0 0 1 0 1 2 0 Belegungsmatrix 2 2 0 1 R = 1 0 3 0 2 1 0 0 Anforderungsmatrix Zeile 2: Belegung Zeile 2: Forderungen durch Prozeß 2 von Prozeß 2 Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 232 4.3.1 Deadlock-Erkennung und -Behebung... Matrix-Algorithmus 1. Suche unmarkierten Prozeß P i, so daß i-te Zeile von R kleiner oder gleich A ist, d.h. R ij A j für alle j = 1...m 2. Falls ein solcher Prozeß existiert: addiere i-te Zeile von C zu A, markiere Prozeß P i, gehe zu 1 3. Andernfalls: Ende Alle am Ende nicht markierten Prozesse sind an einem Deadlock beteiligt Schritt 1 sucht Prozeß, der zu Ende laufen könnte Schritt 2 simuliert Freigabe der Ressourcen am Prozeßende Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 233

4.3.1 Deadlock-Erkennung und -Behebung... (Animierte Folie) Beispiel: Bandgeräte Plotter CD ROM Bandgeräte Plotter CD ROM E = ( 4 2 3 1 ) A = ( 2 1 0 0 ) Ressourcenvektor Ressourcenrestvektor 0 0 1 0 C = 2 0 0 1 0 1 2 0 Belegungsmatrix 2 2 0 1 R = 1 0 3 0 2 1 0 0 Anforderungsmatrix 1. R <= A 3,j j für j = 1... 4 Anforderungen von Prozeß 3 erfüllbar Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 234 4.3.1 Deadlock-Erkennung und -Behebung... (Animierte Folie) Beispiel: Bandgeräte Plotter CD ROM Bandgeräte Plotter CD ROM E = ( 4 2 3 1 ) A = ( 2 2 2 0 ) Ressourcenvektor Ressourcenrestvektor 0 0 1 0 C = 2 0 0 1 0 1 2 0 Belegungsmatrix 2 2 0 1 R = 1 0 3 0 2 1 0 0 Anforderungsmatrix 1. R 1,4 > A 4 Prozeß 1 kann auch nicht Deadlock zwischen weiterlaufen Prozeß 1 und 2! Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 235

4.3.1 Deadlock-Erkennung und -Behebung... Wann wird Deadlock-Erkennung durchgeführt? Bei jeder Ressourcen-Anforderung: Deadlocks werden schnellstmöglich erkannt ggf. zu hoher Rechenaufwand In regelmäßigen Abständen Wenn Prozessorauslastung niedrig ist Rechenkapazität ist verfügbar niedrige Auslastung kann Hinweis auf Deadlock sein Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 236 4.3.1 Deadlock-Erkennung und -Behebung... Möglichkeiten zur Behebung von Deadlocks Temporärer Entzug einer Ressource schwierig bis unmöglich (wir betrachten hier ununterbrechbare Ressourcen...) Rücksetzen eines Prozesses Prozeßzustand wird regelmäßig gesichert (Checkpoint) bei Verklemmung: Rücksetzen auf Checkpoint, bei dem Prozeß Ressource noch nicht belegt hatte auch schwierig Abbruch eines Prozesses wähle Prozeß, der problemlos neu gestartet werden kann z.b. in Datenbanksystemen (Transaktionen) Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 237

4.3.2 Deadlock-Avoidance (Animierte Folie) Vorbemerkung: Ressourcenspur Prozeß B gib CD frei CD gib frei belege CD belege CD belege CD belege gib CD frei In diesem Bereich: Verklemmung ist unvermeidlich! gib frei Prozeß A Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 238 4.3.2 Deadlock-Avoidance... Sichere und unsichere Zustände: Ein Zustand heißt sicher, wenn es eine Ausführungsreihenfolge der Prozesse gibt, in der alle Prozesse (ohne Deadlock) zu Ende laufen, selbst wenn alle Prozesse sofort die maximalen Ressourcenanforderungen stellen Sonst heißt der Zustand unsicher Anmerkung: ein unsicherer Zustand muß nicht zwangsläufig in eine Verklemmung führen es müßen ja nicht alle Prozesse (sofort) ihre Maximalforderungen stellen! Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 239

4.3.2 Deadlock-Avoidance... Bankiers-Algorithmus BS teilt Ressource nur dann zu, wenn dadurch auf keinen Fall ein Deadlock entstehen kann dazu: BS prüft bei jeder Ressourcenanforderung, ob der Zustand nach der Anforderung noch sicher ist falls ja, wird die Ressource zugeteilt falls nein, wird der anfordernde Prozeß blockiert sehr vorsichtige (restriktive) Ressourcenzuteilung! Das BS muß dazu die (maximalen) zukünftigen Forderungen aller Prozesse kennen! in der Praxis i.a. nicht erfüllbar Verfahren nur für spezielle Anwendungsfälle tauglich Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 240 4.3.2 Deadlock-Avoidance... Bestimmung, ob ein Zustand sicher ist Durch angepaßten Matrix-Algorithmus zur Deadlock-Erkennung ( 4.3.1, Folie 230) Der aktuelle Zustand des Systems ist durch E, A, und C beschrieben vorhandene, freie und belegte Ressourcen R beschreibt nun die maximalen zukünftigen Forderungen Der Zustand ist genau dann sicher, wenn der Algorithmus für diese Werte von E, A, C und R keine Verklemmung erkennt d.h., auch wenn im aktuellen Zustand (E, A, C) alle Prozesse sofort ihre maximalen Forderungen (R) stellen, gibt es einen Ablauf, der alle Prozesse zu Ende führt Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 241

Betriebssysteme I WS 2013/2014 09.01.2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 19. Dezember 2013 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) i 4.3.3 Deadlock-Prevention Ziel: Vorbeugendes Verhindern von Deadlocks Eine der vier Deadlock-Bedingungen wird unerfüllbar gemacht damit sind Deadlocks unmöglich häufigste Lösung in der Praxis! Wechselseitiger Ausschluß Ressourcen nur dann direkt an einzelne Prozesse zuteilen, wenn dies unvermeidlich ist Beispiel: Zugriff auf Drucker nur über Drucker-Spooler es gibt keine Konkurrenz mehr um den Drucker aber: evtl. Deadlocks an anderer Stelle möglich (Konkurrenz um Platz im Spooler-Puffer) Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 242

4.3.3 Deadlock-Prevention... Hold-and-Wait-Bedingung Forderung: jeder Prozeß muß alle seine Ressourcen bereits beim Start anfordern Nachteil: i.d.r. sind Forderungen nicht bekannt Weiterer Nachteil: mögliche Ressourcen-Verschwendung Anwendung bei Transaktionen in Datenbank-Systemen: Two Phase Locking (Sperrphase, Zugriffsphase) Alternative: vor Anforderung einer Ressource alle belegten Ressourcen kurzzeitig freigeben i.a. auch nicht praktikabel (wechselseitiger Ausschluß!) Ununterbrechbarkeit (kein Ressourcenentzug) i.a. unpraktikabel, siehe Deadlock-Behebung Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 243 4.3.3 Deadlock-Prevention... Zyklisches Warten Durchnumerieren aller Ressourcen Anforderungen von Ressourcen zu beliebigem Zeitpunkt, aber nur in aufsteigender Reihenfolge! d.h. Prozeß darf nur Ressource mit größerer Nummer als bereits belegte Ressourcen anfordern Deadlocks werden damit unmöglich: zu jedem Zeitpunkt: betrachte reservierte Ressource mit der höchsten Nummer Prozeß, der diese Ressource belegt, kann zu Ende laufen er wird nur Ressourcen mit höherer Nummer anfordern Induktion: alle Prozesse können zu Ende laufen Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 244

4.3.3 Deadlock-Prevention... Zyklisches Warten... In der Praxis erfolgversprechendster Ansatz zur Verhinderung von Deadlocks Probleme: Festlegen einer für alle Prozesse tauglichen Ordnung nicht immer praktikabel kann zu Resourcenverschwendung führen Ressourcen müssen evtl. bereits reserviert werden, bevor sicher ist, daß sie benötigt werden Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 245 4.4 Verhungerung Situation: ein Prozeß P bekommt eine Ressource nie zugeteilt, obwohl kein Deadlock vorliegt wegen ständiger Ressourcenanforderungen anderer Prozesse, die vor der von P erfüllt werden Beispiel: Lösung des Leser/Schreiber-Problems aus 3.1.5 Vermeidung des Verhungerns: z.b. durch FIFO-Strategie FIFO: First In First Out teile Ressource an den Prozeß zu, der am längsten wartet Anmerkung: manchmal ist die Möglichkeit des Verhungerns gewollt wenn bestimmten Prozessen Priorität gegeben werden soll Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 246

4.5 Zusammenfassung / Wiederholung Deadlock: eine Menge von Prozessen wartet auf Ereignisse, die nur ein anderer Prozeß der Menge auslösen kann Bedingungen für Deadlocks: Wechselseitiger Ausschluß Hold-and-Wait (Besitzen und Warten) Ununterbrechbarkeit (kein Ressourcenentzug) Zyklisches Warten Behandlung von Deadlocks: Erkennung und Behebung Erkennung: Zyklus im Belegungs-Anforderungs-Graph, Matrix-basierter Algorithmus Behandlung: meist Abbruch eines Prozesses z.b. bei Datenbank-Transaktionen Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 247 4.5 Zusammenfassung / Wiederholung... Behandlung von Deadlocks...: Avoidance (Vermeidung) Ressource nur dann vergeben, wenn der entstehende Zustand sicher ist sicherer Zustand: kein Deadlock, selbst wenn alle Prozesse sofort ihre Maximalforderungen stellen Prevention (Verhinderung) eine der vier Bedingungen unerfüllbar machen z.b. Spooling: vermeidet wechselseitigen Ausschluß oft auch: Festlegung einer Reihenfolge der Ressourcen wenn alle Prozesse die Ressourcen nur in dieser Reihenfolge belegen, können keine Deadlocks entstehen Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 248