• Keine Ergebnisse gefunden

Aufgabenblatt11Musterl¨osung VorlesungBetriebssystemeIWintersemester2021/22

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabenblatt11Musterl¨osung VorlesungBetriebssystemeIWintersemester2021/22"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

Aufgabenblatt 11 Musterl¨osung

Vorlesung Betriebssysteme I Wintersemester 2021/22

Aufgabe 1: Deadlock-Prevention

Um die Deadlock-Prevention f¨ursynchronized-Methoden in einem Java-Programm umzusetzen, m¨ussen wir eine Reihenfolge der Java-Objekte definieren, also(o1, o2, ..., on)(Dabei m¨ussen nur Objekte ber¨ucksichtigt werden, die synchronized-Methoden haben). Nun m¨ussen wir fordern, daß bei der Ausf¨uhrung einer Methodeoi.ma() nur Me- thodenoj.mb() mitj > iaufgerufen werden d¨urfen.

Da JavaReentrant Locksverwendet, sind tats¨achlich auch Methodenaufrufe auf Objektenok erlaubt, f¨ur die schon ein Aufruf im Aufrufkeller aktiv ist. Wenn also z.B.o1.ma() die Methodeo3.mb() aufruft, darf diese aucho1.mc() aufrufen (dao1ja schon / noch durch den Thread gesperrt ist), nicht abero2.md().

Diese Bedingung durch Einschr¨ankungen in der Struktur des Java-Codes zu erzwingen, ist nicht unbedingt einfach. In der Regel m¨usste man st¨arkere Bedingungen fordern, z.B.:

• Es gibt eine hierarchische (also baumartige) Beziehung zwischen den Klassen, so daß eine Klasse auf Ebenexnur Methoden von Klassen auf Ebeney > xaufrufen darf.

• Zus¨atzlich d¨urfen Methoden einer Klasse Methoden derselben Klasse nur auf dem this-Objekt aufrufen, aber nicht auf anderen Objekten.

Mit der ersten Bedingung vermeidet man Zyklen zwischen Objekten verschiedener Klassen, mit der zweiten Bedingung Zyklen zwischen Objekten derselben Klasse. In der Praxis wird es aber viele F¨alle geben, in denen man diese Bedingungen nicht allgemein erf¨ullen kann (oder will).

Aufgabe 2: Deadlocks

Ja, Deadlocks sind m¨oglich. Angenommen, alle Mailboxen sind leer. Jetzt sendet A an B und wartet auf eine Antwort, B sendet an C und wartet auf eine Antwort, und C sendet an A und wartet auf eine Antwort. Damit sind die Voraussetzungen f¨ur einen (Kommunikations-)Deadlock erf¨ullt.

Aufgabe 3: Schedulingalgorithmen

a) FCFS (First Come First Serve), nicht-pr¨aemptiv

0 A

8

B

36

C

48 D

51 E

55 Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 8-0-8 = 0 8-0 = 8

B 3 28 36-3-28 = 5 36-3 = 33

C 7 12 48-7-12 = 29 48-7 = 41

D 9 3 51-9-3 = 39 51-9 = 42

E 15 4 55-15-4 = 36 55-15 = 40

Mittelwerte: 109/5 = 21,8 164/5 = 32,8

1

(2)

b) HPF (Highest Priority First), nicht-pr¨aemptiv

0 A

8

C

20

B

48 D

51 E

55 Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 4 8-0-8 = 0 8-0 = 8

B 3 28 1 48-3-28 = 17 48-3 = 45

C 7 12 0 20-7-12 = 1 20-7 = 13

D 9 3 2 51-9-3 = 39 51-9 = 42

E 15 4 3 55-15-4 = 36 55-15 = 40

Mittelwerte: 93/5 = 18,6 148/5 = 29,6

c) SJF (Shortest Job First), nicht-pr¨aemptiv

0 A

8

C

20 D

23 E

27

B

55 Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 8-0-8 = 0 8-0 = 8

B 3 28 55-3-28 = 24 55-3 = 52

C 7 12 20-7-12 = 1 20-7 = 13

D 9 3 23-9-3 = 11 23-9 = 14

E 15 4 27-15-4 = 8 27-15 = 12

Mittelwerte: 44/5 = 8,8 99/5 = 19,8

d) RR (Round Robin), Zeitscheibenl¨ange 5, pr¨aemptiv

0 A

5 B

10 A

13 C

18 D

21 B

26 E

30 C

35 B

40 C 42

B 47

B 52

B 55 Inhalt der Bereit-Warteschlangen (n¨achster auszuw¨ahlender Thread steht links):

• Zeitpunkt 10: A, C, D, B

• Zeitpunkt 18: D, B, E, C

Die Warteschlangen sind immer f¨ur den Zeitpunkt angegeben, in dem der Scheduler aktiv ist, d.h. der bisher rech- nende Thread unterbrochen und hinten in die Warteschlange eingereiht, der erste Thread in der Warteschlange aber noch nicht rechnend gesetzt wurde.

Beachten Sie, daß RR nicht bedeutet, daß die Threads in der Reihenfolge A,B,C,D,E,A, ... rechnen!

Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 13-0-8 = 5 13-0 = 13

B 3 28 55-3-28 = 24 55-3 = 52

C 7 12 42-7-12 = 23 42-7 = 35

D 9 3 21-9-3 = 9 21-9 = 12

E 15 4 30-15-4 = 11 30-15 = 15

Mittelwerte: 72/5 = 14,4 127/5 = 25,4

e) HPF (Highest Priority First), pr¨aemptiv

0 A

3 B

7

C

19

B

43 D

46 E

50 A

55 Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 4 55-0-8 = 47 55-0 = 55

B 3 28 1 43-3-28 = 12 43-3 = 40

C 7 12 0 19-7-12 = 0 19-7 = 12

D 9 3 2 46-9-3 = 34 46-9 = 37

E 15 4 3 50-15-4 = 31 50-15 = 35

Mittelwerte: 124/5 = 24,8 179/5 = 35,8

2

(3)

f) Shortest Remaining Time First

0 A

8 C

9 D

12 C

15 E

19 C

27

B

55 Thread Ankunftszeit Bedienzeit Priorit¨at Wartezeit Durchlaufzeit

A 0 8 8-8-0 = 0 8-0 = 8

B 3 28 55-3-28 = 24 55-3 = 52

C 7 12 27-7-12 = 8 27-7 = 20

D 9 3 12-9-3 = 0 12-9 = 3

E 15 4 19-15-4 = 0 19-15 = 4

Mittelwerte: 32/5 = 6,4 87/5 = 17,4

Aufgabe 4: Scheduling

a) Richtig sind:

• nicht-pr¨aemptives SJF (Shortest Job First)

• pr¨aemptives SJF (Shortest Job First)

b) B

Prio. 0:

Prio. 1:

Prio. 0:

Prio. 1:

0 3 10 15

A C D

20

5 7 Zeit

A

A C

D B B A

A

D A C Wartezeit: 12 Durchlaufzeit: 20

3

Referenzen

ÄHNLICHE DOKUMENTE

Der Sonderfall wird zum ersten Mal durchlaufen und ist der erste Treffer in der Kontur und somit auch der letzte Treffer und diese Position wird zwischendurch nochmals durchlaufen,

Methoden erwarten als erstes Argument ein Objekt der Klasse in der sie definiert wurden oder die Klasse selbst (oder eine Subklasse)..

beschreiben die Eigenschaften einer Klasse beschreiben das Verhalten einer Klasse Beschreiben das Verhalten einer Klasse sind die konkreten Ausprägungen von In- stanz-variablen.

Im ersten Teil des Rechtecks steht der Name der Klasse, im zweiten Teil sind die Attribute/Instanzvariablen aufgeführt, die ein Objekt der Klasse beschreiben. Von jedem

Im ersten Teil des Rechtecks steht der Name der Klasse, im zweiten Teil sind die Attribute/Instanzva- riablen aufgeführt, die ein Objekt der Klasse beschreiben. Von jedem

Im Systemmodus kann die CPU kann jeden Befehl in ihrem Befehlssatz ausf¨uhren und jedes Feature der Hardware nutzen. Im Benutzer- modus kann sie jedoch nur eine Teilmenge

(Dieses Protokoll ist auch unter der Bezeichnung ’ write locks all, read locks one ’ bekannt. Nat¨urlich w¨aren zu jedem N W auch h¨ohere Werte f¨ur N R m¨oglich, das ist aber

davon verbrennen vollständig zu Kohlenstoffdioxid. 5% verbrennen unvollständig zu Kohlenstoffmonooxid. Stelle beide Reaktionsgleichungen auf und bestimme die Massen der