• Keine Ergebnisse gefunden

Aufgabe 1: Deadlock-Avoidance

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe 1: Deadlock-Avoidance"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. rer. nat. Roland Wism ¨uller

Aufgabenblatt 10 Musterl¨osung

Vorlesung Betriebssysteme I Wintersemester 2021/22

Aufgabe 1: Deadlock-Avoidance

Zun¨achst stellen wir fest, daß der RessourcenvektorE = 1 1 1

ist. Vor der ersten Ressourcen-Anforderung ist der Zustand gegeben durch (Reihenfolge der Prozesse: A, B, C; Reihenfolge der Ressourcen: R, S, T):

C=

0 0 0 0 0 0 0 0 0

 R=

1 1 0 0 1 1 1 0 1

 A= 1 1 1

1) Anfrage R von Prozeß A. Der Zustandnachder (simulierten) Zuteilung ist:

C =

1 0 0 0 0 0 0 0 0

 R=

0 1 0 0 1 1 1 0 1

 A= 0 1 1

Es ist leicht zu sehen, daß alle Prozesse beendet werden k¨onnen (Reihenfolge z.B.: A, B, C). Daher ist der Zustand sicher, und R wird an A zugeteilt.

2) Anfrage S von Prozeß B. Der Zustandnachder (simulierten) Zuteilung ist:

C =

1 0 0 0 1 0 0 0 0

 R=

0 1 0 0 0 1 1 0 1

 A= 0 0 1

Auch hier k¨onnen alle Prozesse beendet werden (Reihenfolge: B, A, C), und der Zustand ist sicher. S wird also an B zugeteilt.

3) Anfrage T von Prozeß C. Der Zustandnachder (simulierten) Zuteilung ist:

C =

1 0 0 0 1 0 0 0 1

 R=

0 1 0 0 0 1 1 0 0

 A= 0 0 0

Nun kann kein Prozess mehr weitergef¨uhrt werden, der Zustand ist unsicher, T wird nicht an C zugeteilt, d.h. C wird blockiert.

4) Anfrage S von Prozeß A. S ist belegt, also wird A blockiert.

5) Anfrage T von Prozeß B. Der Zustand nach der (simulierten) Zuteilung ergibt sich aus dem Zustand nach Schritt 2), da die Zuteilung in Schritt3)ja nicht erfolgt ist und A in Schritt4)die Ressource nicht zugeteilt wurde. Daher bleibt diese Ressource als Restforderung von A in der ersten Zeile vonRstehen:

C =

1 0 0 0 1 1 0 0 0

 R=

0 1 0 0 0 0 1 0 1

 A= 0 0 0

Jetzt k¨onnen die Prozesse in der Reihenfolge B, A, C zu Ende gef¨uhrt werden. Der Zustand ist somit sicher, und T wird an B zugeteilt.

Bei der Freigabe von T durch Prozeß B erkennt das Betriebssystem, daß Prozeß C auf dieses Betriebsmittel wartet (siehe Schritt3)). Daher muss es pr¨ufen, ob jetzt eine Zuteilung m¨oglich ist. Das Zustand nach Freigabe von T durch Prozeß B ist:

1

(2)

C=

1 1 0 0 0 0 0 0 0

 R=

0 0 0 0 1 1 1 0 1

 A= 0 0 1

(Hinweis: wenn ein Prozeß ein Betriebsmittel freigibt, k¨onnen wir dieses wieder zu den maximalen Restforderungen dazunehmen. Wir erlauben also, daß ein Prozess die Betriebsmittel auch mehrfach hintereinander anfordern kann, solange er seine beim Start angegebene MaximalbelegungRnicht ¨uberschreitet.)

Nach der simulierten Zuteilung von T an C haben wir den Zustand:

C=

1 1 0 0 0 0 0 0 1

 R=

0 0 0 0 1 1 1 0 0

 A= 0 0 0

Dieser Zustand ist sicher, da die Prozesse in der Reihenfolge A, C, B zu Ende laufen k¨onnen. Also wird T jetzt an C zugeteilt.

Aufgabe 2: Sichere Zust¨ande

Im Folgenden werden die Spalten der Vektoren bzw. Matrizen immer in der Reihenfolge (Scanner, Modem, Drucker, Festplatte) angegeben.

a) RessourcenvektorE= 2 1 3 3

BelegungsmatrixC=

0 0 0 0 0 0 1 0 0 1 0 1 1 0 2 0 0 0 0 1

AnforderungsmatrixR=

1 1 0 0 2 0 1 0 0 0 0 1 0 0 2 1 0 1 3 1

Belegungsvektor c= 1 1 3 2

RessourcenrestvektorA=E−c= 1 0 0 1

Das System befindet sich nicht in einem sicheren Zustand. Nach dem Bankier-Algorithmus kann er nie die Forde- rungR4,j ≤Aerf¨ullen haben, da nur 3 Drucker zur Verf¨ugung stehen und Prozess D fordert maximal 4 Drucker an!

b) Neue Situation ohne Prozess D:

RessourcenvektorE= 2 1 3 3

BelegungsmatrixC=

0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1

AnforderungsmatrixR=

1 1 0 0 2 0 1 0 0 0 0 1 0 1 3 1

Belegungsvektor c= 0 1 1 2

RessourcenrestvektorA=E−c= 2 0 2 1

(i) Prozess B und Prozess C k¨onnen zun¨achst terminieren, weilR2,j≤ 2 0 2 1

undR3,j≤ 2 0 2 1 . Es ist egal in welcher Reihenfolge, danach istA = 2 1 3 2

. Nun k¨onnen auch Prozess A und Prozess E terminieren weil: 1 1 0 0

=R1,j≤A= 2 1 3 2

und 0 1 3 1

=R4,j≤A = 2 1 3 2 .

(ii) Neue Situation: Prozess E belegt die zweite (die letzte ben¨otigte) Festplatte.

RessourcenvektorE = 2 1 3 3

BelegungsmatrixC=

0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 2

AnforderungsmatrixR=

1 1 0 0 2 0 1 0 0 0 0 1 0 1 3 0

Belegungsvektor c= 0 1 1 3

2

(3)

RessourcenrestvektorA=E−c= 2 0 2 0

Prozess B kann zu Ende gef¨uhrt werden, dadurch wirdA = 2 0 3 0

. Nun kann kein weiterer Prozess weitergef¨uhrt werden: Prozess C nicht, weil 0 0 0 1

=R1,j6≤A= 2 0 3 0 gilt;

ebensowenig Prozess A und Prozess E, weil kein Modem verf¨ugbar ist.

Die Situation ist also unsicher. Ein Deadlock entst¨unde z.B. dann, wenn Prozess E ein Modem und Prozess C eine weitere Festplatte zugeteilt w¨urde.

(iii) Neue Situation: Prozess E verzichtet auf das Modem, Prozess A belegt einen Scanner und Prozess E belegt eine Festplatte.

RessourcenvektorE = 2 1 3 3

BelegungsmatrixC=

1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 2

AnforderungsmatrixR=

0 1 0 0 2 0 1 0 0 0 0 1 0 0 3 0

Belegungsvektor c= 0 1 1 3

RessourcenrestvektorA=E−c= 1 0 2 0

Der Zustand ist unsicher, da keiner der Prozesse zu Ende gef¨uhrt werden kann.

Ein Deadlock entsteht wenn Prozess A ein Modem, Prozess C eine Festplatte, Prozess E drei Drucker und Prozess B beide Scanner anfordern:

• A fordert 1 x Modem von C

• C fordert 1 x Festplatte von E

• E fordert 3 x Drucker (davon 1 x Drucker ist von B belegt)

• B fordert 2 x Scanner (davon 1 x Scanner ist von A belegt

Aufgabe 3: Deadlock- Avoidance

RessourcenvektorE= 3 2

, RessourcenrestvektorA= 1 0

BelegungsmatrixC=

 1 0 1 1 0 1

, AnforderungsmatrixR=

 1 2 1 0 2 0

Dieser Zustand ist sicher:

• R2,j≤A ⇒Prozess 2 kann zu Ende laufen,A2= 2 1 .

• R3,j≤A2 ⇒Prozess 3 kann zu Ende laufen,A3= 2 2 .

• R1,j≤A3 ⇒Prozess 1 kann zu Ende laufen,A1= 3 2 . Das Betriebssystem wird die Ressource also zuteilen.

Aufgabe 4: Belegungs-Anforderungs-Graph / Deadlock- Avoidance

a) Prozess 1 Prozess 2 Prozess 3

Drucker CD−ROM

Festplatte

Anmerkung:Der Graph zeigt den Deadlock durch einen Zyklus zwischen Prozess 2 und Prozess 3 an.

b) (i) RessourcenvektorE = 2 3 2

, RessourcenrestvektorA= 1 0 1

BelegungsmatrixC=

1 2 0 0 1 0 0 0 1

, AnforderungsmatrixR=

1 1 2 1 0 1 2 1 0

(ii) R2,j≤A, P2 kann zu Ende laufen, danach istA= 1 1 1

. Dann ist kein Prozess mehr ausw¨ahlbar.

(iii) Nein.

3

(4)

Aufgabe 5: Deadlock-Prevention

Um zyklisches Warten zu vermeiden, ordnen wir die Ressourcen (die Konten) gem¨aß ihrer Kontonummern. Nach dem Lesen einer Eingabezeile sperrt ein Prozess zuerst das Konto mit der niedrigeren Nummer, dann, wenn er die Sperre bekommt (was zu Wartezeiten f¨uhren kann), sperrt er das andere Konto. Da kein Prozess jemals auf ein Konto wartet, das eine kleinere Nummer hat als das Konto, das er bereits gesperrt hat, gibt es nie ein zyklisches Warten, also nie einen Deadlock.

4

Referenzen

ÄHNLICHE DOKUMENTE

Weisen Sie nach, dass ω = 4 eine primitive vierte Einheitswurzel in Z 17 ist (dabei ist Z 17 der K¨ orper mit 17 Elementen, der sich ergibt, wenn in Z Addition und Multiplikation

Philipp - Melanchthon Gymnasium Bautzen Mathematik Kl. a) Berechne alle Innenwinkel des Dreiecks. Überlege Dir dazu eine praktische Rechengeschichte und notiere sie. d) Nenne

auch die bekannten Grundwerke der Tradition nicht, und sind die.. Sammlungen des Bohäri, Moslim, Mälik, Abu Däwud,

Laza: Lineare Algebra individuell Online-Version

Vergleichen Sie diese mit der Anzahl der Schritte des in der Vorlesung beschriebenen Verfahrens (DiskreterLogarithmus)..

 Deadlock avoidance decide for each process if it can proceed or has to wait based on available resources, currently allocated?. resources and the resources allocated by a process

Hierbei wäre zu überlegen, ob Erklärungen auf dem Plakat festgehalten werden und / oder ob die Schüler diese mündlich zum

Deadlock and Starvation Producer-Consumer, The concept of the monitor, Condition