Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10...

38
Systeme 1 Kapitel 7.1 Deadlocks WS 2009/10 1

Transcript of Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10...

Page 1: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Systeme 1

Kapitel 7.1Deadlocks

WS 2009/10 1

Page 2: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Organisatorisches• Zwischenklausur Sa. 19.12.09:

– 10 Uhr s.t. (45 Minuten)– Räume 101-026/036– Stoff:

• Vorlesung• Übungsblätter (bis inkl. Blatt 3)

• Fragestunde– Mi. 16.12.09– 16 Uhr, RZ Raum 112

• Zentrale Weihnachtsvorlesung: 17.12.09• Die praktischen Übungen finden bis einschließlich 23.12.09 statt. Beginn

im neuen Jahr ist der 11.01.10.• Verschiebung der zentralen Theoriebesprechung

– Mi. 06.01.10 (Feiertag) => Do. 07.01.10 (RZ Raum 112, 16 Uhr)– Regulärer Betrieb ab 20.01.10.

• Die erste Vorlesung im neuen Jahr findet am 08.01.10 statt.

WS 2009/10 2

Page 3: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Letzte Vorlesung• Wechselseitiger Ausschluss:– Hardware (TSL RX/LOCK)– Betriebssystem (sleep(lock), wakeup(lock))

• MUTEX• Produzenten-Konsumenten-Problem– Gemeinsamer Puffer– Prozesse schreiben in den Puffer (Produzenten)– Prozesse lesen aus dem Puffer (Konsumenten)– Probleme:

• 2 Konsumenten: 1 Element im Puffer; Puffer voll• 1 Konsument, 1 Produzent: beide Schlafen für immer

Deadlock– Lösung: Semaphoren

WS 2009/10 3

Page 4: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Letzte Vorlesung• Deadlock

– 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.

– Voraussetzungen:• Wechselseitiger Ausschluss• Hold-and-wait-Bedingung• Ununterbrechbarkeit• Zyklische Wartebedingung

– Modellierung von Ressourcenbelegung und Ressourcenanforderung

– Verhinderung von Deadlocks: Bankieralgorithmus• Ressourcen-Anforderung bekannt• Überführung nur in sichere Zustände

Garantie für Deadlockfreie AusführungWS 2009/10 4

Page 5: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Beispiel für ein Deadlock

WS 2009/10 5

Prozess p2

Prozess p1

DruckerPlotter

Drucker

Plotter

I1 I2 I3 I4

I5

I6

I7

I8

Beide Prozesse beendet

Start

Beide benötigen Drucker

Beide benötigen Plotter

t

Deadlock unvermeidbar!

Page 6: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Gegenbeispiel (kein Deadlock)

WS 2009/10 6

Prozess p2

Prozess p1

DruckerPlotter

Drucker

Plotter

I1 I2 I3 I4

I5

I6

I7

I8

Beide Prozesse beendet

Start

Beide benötigen Drucker

Beide benötigen Plotter

t

Page 7: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

• Noch zu zeigen: Wie wird auf sicheren Zustand geprüft?

• Zunächst einfache Variante:Nehme an, dass es eine einzige Ressourcenklasse gibt, die aber mehrere Ressourcen enthalten kann.– Bsp.:

• Es gibt 10 verschiedene Drucker.• Wenn alle 10 Drucker durch Prozesse belegt sind, dann wird kein

weiterer vergeben.• Ein Prozess kann mehrere Drucker anfordern, aber nur bis zu einer

bestimmten Maximalzahl ≤ 10 (nach Voraussetzung (2)).

WS 2009/10 7

Page 8: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

Gegeben:– n Prozesse p1, …, pn, die Ressourcen aus einer einzigen Klasse

anfordern– Anzahl zur Verfügung stehender Ressourcen: V ∈ℕ– Für jeden Prozess pi gibt es

• eine maximale Anzahl Mi von Ressourcen, die der Prozess anfordern wird• eine Anzahl von Ressourcen Ei , die der Prozess zu einem bestimmten

Zeitpunkt schon erhalten hat• eine Anzahl von Ressourcen, die der Prozess nach diesem Zeitpunkt noch

maximal anfordern wird: Ai = Mi - Ei – Die Anzahl der freien Ressourcen zu diesem Zeitpunkt ergibt sich zu

Es gilt weiterhin:• Mi ≤ V mit 1 ≤ i ≤ n• Ei ≤ Mi mit 1 ≤ i ≤ n

WS 2009/10 8

Page 9: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

Beispiel:– Es gibt V = 10 Instanzen einer Ressource.– 3 Prozesse p1, p2, p3

– Maximale Anforderungen:

– Zustand zum Zeitpunkt t:

– Frage: Ist dies ein sicherer Zustand?WS 2009/10 9

Mi

p1 9

p2 4

p3 7

Ei Ai = Mi – Ei

p1 3 6 = 9 – 3

P2 2 2 = 4 – 2 F = 10 – 7 = 3

p3 2 5 = 7 - 2

7

Page 10: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

Nachweis, dass es sich um einen sicheren Zustand handelt:

WS 2009/10 10

Ei Ai Mi

p1 3 6 9

P2 2 2 4

p3 2 5 7

F = 10 – 7 = 3

Ei Ai Mi

p1 3 6 9

P2 4 0 4

p3 2 5 7

F = 10 – 9 = 1

Ei Ai Mi

p1 3 6 9

P2 0 - -

p3 2 5 7

F = 10 – 5 = 5

Ei Ai Mi

p1 3 6 9

P2 0 - -

p3 7 0 7

F = 10 – 10 = 0

Ei Ai Mi

p1 3 6 9

P2 0 - -

p3 0 - -

F = 10 – 3 = 7

Führe zunächstausschließlichProzess p2 aus

FreigabedurchProzess p2

FreigabedurchProzess p3 Jetzt kann Prozess 1 zu

Ende gebracht werden!

Page 11: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

Weise nun zunächst Prozess p1 eine weitere Ressource zu:

Ist dieser Zustand immer noch sicher?

Zur Erinnerung:– Ein Zustand ist sicher, wenn es auf jeden Fall eine deadlockfreie

„Restausführung“ aller Prozesse gibt, auch wenn die Prozesse ihre restlichen Anforderungen auf einen Schlag stellen und Freigaben erst bei Prozessbeendigung durchführen.

WS 2009/10 11

Ei Ai Mi

p1 3 6 9

P2 2 2 4

p3 2 5 7

F = 10 – 7 = 3

Ei Ai Mi

p1 4 5 9

P2 2 2 4

p3 2 5 7

F = 10 – 8 = 2

Page 12: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

Antwort: Der Zustand ist nicht sicher!

• Nimmt man den worst case an, dass alle Prozesse ihre Ressourcen künftig auf einen Schlag anfordern, so kann man Prozesse p1 und p3 nicht ausführen.

Führe Prozess p2 aus.• Nur p2 verbleibt als Möglichkeit.

WS 2009/10 12

Ei Ai Mi

p1 4 5 9

P2 2 2 4

p3 2 5 7

F = 10 – 8 = 2

Page 13: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Ei Ai Mi

p1 4 5 9

P2 4 0 4

p3 2 5 7

F = 10 – 10 = 0

Bankieralgorithmus: Einzelne Ressourcenklasse

Nachweis, dass es sich um einen unsicheren Zustand handelt:

• Mit den jetzt zur Verfügung stehenden 4 freien Ressourcen lassen sich weder Prozess p1 noch Prozess p3 ausführen, wenn sie ihre Ressourcenanforderungen sofort stellen und vor Prozessbeendigung nichts freigeben.

Der Zustand ist unsicher.WS 2009/10 13

Ei Ai Mi

p1 4 5 9

P2 2 2 4

p3 2 5 7

F = 10 – 8 = 2

Ei Ai Mi

p1 4 5 9

P2 0 - -

p3 2 5 7

F = 10 – 6 = 4

Führe Prozessp2 bis zumEnde aus

FreigabedurchProzess p2

Page 14: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

• Überprüfung auf sicheren Zustand:– Teste, ob es einen Prozess gibt, dessen

Anforderungen alle mit den verfügbaren Ressourcen erfüllt werden können.

– Nimm an, dass dieser Prozess ausgeführt wird und alle seine Ressourcen danach freigegeben werden.

– Teste, ob es nun einen anderen Prozess gibt, dessen Ressourcenanforderung erfüllt wird und verfahre mit diesem Prozess gleichermaßen.

– Der Zustand ist sicher, wenn auf diese Weise alle Prozesse „virtuell“ zu Ende gebracht werden können.

– Sonst ist der Zustand unsicher.

WS 2009/10 14

Page 15: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Einzelne Ressourcenklasse

• Bemerkung:– Im Allgemeinen kann es mehrere Prozesse geben, die virtuell ausgeführt

werden können.– Das Endergebnis ist aber immer das Gleiche!– Grund:

• Nach virtueller Prozessausführung und Freigabe aller Ressourcen eines Prozesses pi können höchstens mehr Ressourcen zur Verfügung stehen.

Alle Prozesse pj, die vorher ausführbar waren, sind nach Ausführung von pi auf jeden Fall immer noch ausführbar.

• Würde sich nach einer Ressourcenanforderung ein unsicherer Zustand ergeben, dann wird die Anforderung nicht erfüllt und der Prozess wird blockiert.

• Ansonsten wird Ressourcenanforderung erfüllt.• In der Praxis führt der Bankieralgorithmus daher die Prozesse im

Allgemeinen also nicht sequentiell aus, sondern quasi-parallel!• Die Tests auf Sicherheit von Zuständen beschränken die Quasi-Parallelität

allerdings in gewisser Weise – mit dem Vorteil, dass Deadlocks garantiert verhindert werden.WS 2009/10 15

Page 16: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Mehrere Ressourcenklassen, z.B. Drucker, Plotter, …• Gegeben:

– n Prozesse p1, …, pn, die Ressourcen aus Klassen K1, …, Km anfordern

– Anzahl zur Verfügung stehender Ressourcen aus Klasse Kk: Vk (1 ≤ k ≤ m)

Vektor verfügbarer Ressourcen (V1, …, Vm)– Für jeden Prozess pi und jede Ressourcenklasse Kk gibt es

• eine maximale Anzahl Mik von Ressourcen der Klasse Kk, die der Prozess pi anfordern wird

Maximalanforderungsmatrix

WS 2009/10 16

Zeile i gibt Maximalanforderungen von Prozess i an

Page 17: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

• Eine Anzahl Eik von Ressourcen der Klasse Kk, die der Prozess pi zu einem bestimmten Zeitpunkt schon erhalten hat.

Belegungsmatrix

• eine Anzahl von Ressourcen der Klasse Kk, die der Prozess pi nach diesem Zeitpunkt noch maximal anfordern wird: Aik = Mik - Eik

Restanforderungsmatrix

Bankieralgorithmus: Mehrere Ressourcenklassen

WS 2009/10

Zeile i gibt an, welche Ressourcen Prozess i schon erhalten hat.

Zeile i gibt an, welche Ressourcen Prozess i maximal noch anfordern wird.

Page 18: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Die Anzahl der freien Ressourcen der Klasse Kk zu diesem Zeitpunkt ergibt sich zu

Ressourcenrestvektor (F1, …, Fm)

– Es gilt weiterhin:• Eik ≤ Mik ≤ Vk mit 1 ≤ i ≤ n, 1 ≤ k ≤ m

– Bankieralgorithmus für mehrere Ressourcenklassen funktioniert analog zum Bankieralgorithmus für eine Ressourcenklasse. • Einziger Unterschied: Der Vergleich natürlicher Zahlen wird ersetzt

durch den Vergleich von Vektoren natürlicher Zahlen.• Für zwei Vektoren (v1, …, vm), (w1, …, wm) ∈ℕm gilt

(v1, …, vm) ≤ (w1, …, wm) gdw. vi ≤ wi mit 1 ≤ i ≤ mWS 2009/10 18

Page 19: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Überprüfung auf sicheren Zustand:– Teste, ob es einen Prozess pi gibt, dessen

Anforderungen alle mit den verfügbaren Ressourcen erfüllt werden können, d.h. teste, ob es eine Zeile i in Anforderungsmatrix gibt, die kleiner ist als Ressourcenrestvektor: (Ai1, …, Aim) ≤ (F1,…, Fm)(das ist nötig, da wir den worst case annehmen, dass ein Prozess alle restlichen Ressourcen auf einen Schlag anfordert und Ressourcen erst am Schluss freigibt)

– Markiere den Prozess pi

WS 2009/10 19

Page 20: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Überprüfung auf sicheren Zustand (ff):– Nimm an, dass dieser Prozess ausgeführt wird und alle

seine Ressourcen danach freigegeben werden, d.h. addiere (Ei1, …, Eim) zu (F1,…, Fm).

– Teste, ob es nun einen anderen Prozess pj gibt, dessen Ressourcenanforderung erfüllt wird (Aj1, …, Ajm) ≤ (F1,…, Fm) und verfahre mit diesem Prozess gleichermaßen.

– Der Zustand ist sicher, wenn auf diese Weise alle Prozesse markiert worden sind, d.h. „virtuell“ zu Ende gebracht werden konnten.

– Sonst ist der Zustand unsicher und die nicht-markierten Prozesse sind an dem potentiellen Deadlock beteiligt.

WS 2009/10 20

Page 21: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 21

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

2 0 0 1 Prozess 2

0 1 2 0 Prozess 3

A: 2 0 0 1 Prozess 1

1 0 1 0 Prozess 2

2 1 0 0 Prozess 3

F = (2 1 0 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Page 22: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Frage: Befinden wir uns in einem sicheren Zustand?

Bankieralgorithmus

WS 2009/10 22

Page 23: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 23

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

2 0 0 1 Prozess 2

0 1 2 0 Prozess 3

A: 2 0 0 1 Prozess 1

1 0 1 0 Prozess 2

2 1 0 0 Prozess 3

F = (2 1 0 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Nur 3. Zeile A3 = (2 1 0 0) der Restanforderungsmatrix ist kleiner gleich Ressourcenrestvektor F = (2 1 0 0).

Page 24: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 24

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

2 0 0 1 Prozess 2

2 2 2 0 Prozess 3

A: 2 0 0 1 Prozess 1

1 0 1 0 Prozess 2

0 0 0 0 Prozess 3

F = (0 0 0 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

“Ausführung” von Prozess 3

Page 25: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 25

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

2 0 0 1 Prozess 2

0 0 0 0 Prozess 3

A: 2 0 0 1 Prozess 1

1 0 1 0 Prozess 2

- - - - Prozess 3

F = (2 2 2 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Ressourcenfreigabe

Page 26: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 26

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

2 0 0 1 Prozess 2

0 0 0 0 Prozess 3

A: 2 0 0 1 Prozess 1

1 0 1 0 Prozess 2

- - - - Prozess 3

F = (2 2 2 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Nur 2. Zeile A2 = (1 0 1 0) der Restanforderungsmatrix ist kleiner gleich Ressourcenrestvektor F = (2 2 2 0).

Page 27: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 27

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

3 0 1 1 Prozess 2

0 0 0 0 Prozess 3

A: 2 0 0 1 Prozess 1

0 0 0 0 Prozess 2

- - - - Prozess 3

F = (1 2 1 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

“Ausführung” von Prozess 2

Page 28: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 28

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 1 0 Prozess 1

0 0 0 0 Prozess 2

0 0 0 0 Prozess 3

A: 2 0 0 1 Prozess 1

- - - - Prozess 2

- - - - Prozess 3

F = (4 2 2 1)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Ressourcenfreigabe

Page 29: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 29

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 2 0 1 1 Prozess 1

0 0 0 0 Prozess 2

0 0 0 0 Prozess 3

A: 0 0 0 0 Prozess 1

- - - - Prozess 2

- - - - Prozess 3

F = (2 2 2 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

“Ausführung” von Prozess 1

Page 30: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Beispiel– Vektor verfügbarer Ressourcen: – Maximalanforderungsmatrix

– Aktuelle Belegungsmatrix

– Aktuelle Restanforderungsmatrix

– RessourcenrestvektorWS 2009/10 30

M: 2 0 1 1 Prozess 1

3 0 1 1 Prozess 2

2 2 2 0 Prozess 3

E: 0 0 0 0 Prozess 1

0 0 0 0 Prozess 2

0 0 0 0 Prozess 3

A: - - - - Prozess 1

- - - - Prozess 2

- - - - Prozess 3

F = (4 2 3 0)

V = (4 2 3 1)Bandlaufwerke

ScannerCD-ROM

Plotter

Ressourcenfreigabe

Page 31: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Mehrere Ressourcenklassen

• Frage: Befinden wir uns in einem sicheren Zustand?

• BankieralgorithmusZustand ist sicher.

WS 2009/10 31

Page 32: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Bankieralgorithmus: Analyse

• Ist mit dem Bankieralgorithmus das Deadlock-Problem restlos gelöst?• Leider nein, da

– Prozesse können meist nicht im Voraus eine verlässliche Obergrenze für ihre Ressourcenanforderungen geben (zumindest nicht exakt genug, so dass das System nicht durch Überschätzung des Ressourcenbedarfs zu ineffizienter Ausführung gezwungen wird).

– Garantierte Obergrenzen würden häufig sogar die Anzahl der verfügbaren Ressourcen übersteigen, aber durch ständiges Zuweisen und Freigeben von Ressourcen stellt dies trotzdem kein Problem dar.

– Üblicherweise werden Prozesse dynamisch neu erzeugt werden und sind nicht statisch vorhanden.

– Ressourcen können auch plötzlich verschwinden (z.B. Bandlaufwerke fallen aus).

Bankieralgorithmus ist in der Theorie schön, löst aber nicht alle praktischen Probleme.

Zur Deadlock-Verhinderung sind Informationen über zukünftige Ressourcen-Anforderungen nötig, die nicht bekannt sind!

WS 2009/10 32

Page 33: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Angriff auf wechselseitigen Ausschluss

• Wechselseitiger Ausschluss: Jede Ressource ist entweder verfügbar oder genau einem Prozess zugeordnet.

• Auf wechselseitigen Ausschluss kann man nicht verzichten.– Gleichzeitiges Drucken zweier Prozesse auf dem gleichen Drucker???

• In gewissen Situationen lässt sich wechselseitiger Ausschluss aber einschränken.

• Bsp.: Drucken– Spooling: Prozesse drucken nicht direkt auf den Drucker, sondern in

ein globales Spooling-Verzeichnis.– Es gibt einen ständig laufenden Prozess (Drucker-Dämon), der als

einziger den Drucker reserviert und Dateien aus dem Spooling-Verzeichnis der Reihe nach druckt.

– Keine Deadlock-Probleme aufgrund Drucker-Zugriff, da nur ein einziger Prozess auf den Drucker zugreift.

– Das funktioniert perfekt, wenn Speicher im Spooling-Verzeichnis unbegrenzt ist.

WS 2009/10 33

Page 34: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Angriff auf wechselseitigen Ausschluss

• Bsp.: Drucken– ...– In Realität: Deadlock-Probleme, wenn Speicher im Spooling-

Verzeichnis begrenzt / zu gering (Konkurrenz um Plattenplatz)– Szenario:

• 2 Prozesse füllen Spooling-Speicher je zur Hälfte, sind noch nicht fertig mit Drucken

• Aus Effizienzgründen normalerweise Druckbeginn erst, wenn Dateien komplett ins Spooling-Verzeichnis gedruckt.

• Keiner der beiden Prozesse wird fertig! Deadlock

• Allgemeines Prinzip:– Teile Ressourcen nur zu, wenn unbedingt nötig.– Möglichst wenig Prozesse sollen Ressource selbst anfordern

dürfen.WS 2009/10 34

Page 35: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Angriff auf Hold-and-Wait-Bedingung

• Hold-and-wait-Bedingung: Prozesse, die schon Ressourcen reserviert haben, können noch weitere Ressourcen anfordern.

• Lösungsansätze zur Auflösung der Hold-and-wait-Bedingung:– Prozesse müssen benötigte Ressourcen immer auf einmal und im

Voraus anfordern.– Teilweise benutzt bei Betriebssystemen von Großrechnern.– Funktioniert nicht, wenn Prozesse Ressourcenbedarf nicht im Voraus

kennen.– (siehe Bankieralgorithmus)– Keine effiziente Ressourcennutzung, da Ressourcen unnötig lange

belegt.• Vor Ressourcenanforderung werden alle Ressourcen kurzzeitig

freigegeben, dann zusammen mit der neuen Ressource neu angefordert.

WS 2009/10 35

Page 36: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Angriff auf Ununterbrechbarkeit

• Ununterbrechbarkeit: Ressourcen, die einem Prozess bewilligt wurden, können nicht gewaltsam wieder entzogen werden.

• Kaum zu realisieren, dass Ressourcennutzung jederzeit ohne Schaden von außen unterbrochen werden kann.

WS 2009/10 36

Page 37: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Angriff auf zyklische Wartebedingung

• 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.

• Lösungsansätze zur Beseitigung der zyklischen Wartebedingung:– Jeder Prozess kann nur eine Ressource auf einmal belegen.

• Vorgehen in vielen Fällen unannehmbar– Ressourcen werden durchnummeriert. Reihenfolge der

Ressourcenanforderung darf nur in aufsteigender Reihenfolge erfolgen.• Belegungs-Anforderungsgraph kann dann nicht zyklisch werden.• Schwierigkeit, eine Ordnung zu finden, die allen Anforderungen

gerecht wird.

WS 2009/10 37

Page 38: Systeme 1 Kapitel 7.1 Deadlocks WS 2009/101. Organisatorisches Zwischenklausur Sa. 19.12.09: – 10 Uhr s.t. (45 Minuten) – Räume 101-026/036 – Stoff: Vorlesung.

Zusammenfassung• Deadlock-Verhinderung ist schwierig, da dazu im

Allgemeinen Informationen über zukünftige Ressourcen-Anforderungen nötig sind, die nicht bekannt sind!

• Deadlock-Freiheit kann zwar prinzipiell erreicht werden, häufig jedoch um den Preis starker Effizienz-Verluste.

• Häufig verzichtet man in der Praxis daher auf absolute Garantien für Deadlock-Freiheit.

• Warum geht bei solchen Systemen trotzdem meistens nichts schief?– Weil sie nicht an ihrem Ressourcen-Limit betrieben werden.

WS 2009/10 38