Übungen zu Grundlagen der Betriebssysteme Wintersemester 2012/2013 Prof. Hannes Frey / Frank Bohdanowicz Übungsblatt 7 Abgabe bis Sonntag, den 13.01.2013, 23:59 Uhr, als PDF via SVN Gruppenname: Name Aufgabe 1 @Uni-Kennung (4 Punkte) Nennen Sie die 4 (notwendigen und hinreichenden) Bedingungen zur Entstehung eines Deadlocks und erläutern Sie diese mit wenigen Worten! Aufgabe 2 (6 Punkte) Gegeben sei eine Menge von Prozessen {P1, P2, P3} und eine Menge von exklusiv benutzbaren, und nicht entziehbaren Betriebsmitteln {R1, R2, R3}. Die Notation <Pi,Rj> bezeichnet die Anforderung des Betriebsmittels Rj durch den Prozess Pi. Geben Sie an, welche der unten angegebenen Anforderungsfolgen in einen Deadlock münden. Zeichnen Sie zu jeder Anforderungsfolge den Betriebsmittelbelegungsgraphen und den Prozesswartegraphen. Begründen Sie Ihre Entscheidung, ob eine Deadlocksituation vorliegt oder nicht, an Hand Ihrer Graphen. Zu Beginn jeder Anforderungsfolge seien alle Betriebsmittel unbelegt. Grundlagen der Betriebssysteme – WS 2012/13 – Blatt 7 2/4 (a) <P1,R3>, <P2,R2>, <P3,R1>, <P3,R2>, <P2,R1>, <P1,R1> (b) <P1,R2>, <P2,R2>, <P1,R3>, <P3,R3>, <P1,R1>, <P2, R3>, <P3,R2> (c) <P1,R1>, <P2,R2>, <P3,R3>, <P1,R2>, <P1,R3>, <P3,R2> Aufgabe 3 (8 Punkte) Gegeben ist ein System mit 5 Prozessen (P1, P2, P3, P4, P5) und 4 Betriebsmitteln (A, B, C, D). Ein Teil der vorhandenen Betriebsmittel sei bereits belegt. Die Belegung ist wie folgt: Prozesse A B C D P1 0 0 1 2 P2 1 0 0 0 P3 1 3 5 4 P4 0 6 3 2 P5 0 0 1 4 Die Maximalanforderungen der einzelnen Prozesse sind ebenfalls bekannt. Prozesse A B C D P1 0 0 1 2 P2 1 7 5 0 P3 2 3 5 6 P4 0 6 5 2 P5 0 6 5 6 Von den Betriebsmitteln A,B,C und D stehen jeweils noch die folgenden Einheiten zur Verfügung. A B C D 1 5 2 0 Grundlagen der Betriebssysteme – WS 2012/13 – Blatt 7 3/4 Beantworten Sie die folgenden Fragen und wenden Sie dabei den Banker-Algorithmus an. a) Wie viele Einheiten an Betriebsmitteln (A,B,C,D) besitzt das System jeweils insgesamt? A B C D b) Ermitteln Sie die ausstehenden Restanforderungen an Betriebsmittel der einzelnen Prozesse ! Prozesse A B C D P1 P2 P3 P4 P5 c) Befindet sich das System in einem sicheren Zustand? Begründen Sie! d) Prozess P2 stellt eine Anfrage nach weiteren Betriebsmittel (A,B,C,D) über (0,4,2,0). Überprüfen Sie, ob die Anfrage vom System erfüllt werden kann. Aufgabe 4 (4 Punkte) Gegeben sei ein Swapping System, dessen Speicher folgende Lochgrössen aufweist, diese sind in der angegebenen Reihenfolge Lokalisiert: 10KB, 4KB, 20KB, 18KB, 7KB, 9KB, 12KB, 15KB. Geben Sie die Größe der freien Speicherblöcke an, wenn folgende Speicherblöcke sukzessive (in der hier angegegebenen Reihenfolge) angefordert werden: 12KB, 10KB, 15KB. Betrachten Sie folgende Algorithmen: Best-fit, Next-fit, First-fit und Worst-fit. Löcher Best-fit Next-fit First-fit Worst-fit 10KB 4KB 20KB 18KB 7KB 9KB 12KB 15KB Grundlagen der Betriebssysteme – WS 2012/13 – Blatt 7 Aufgabe 5 4/4 (8 Punkte) Gegeben ist das C-Programm matrix.c und zwei Textdateien test1.txt und test2.txt, welche Sie auf der Webseite der Übung finden. Das Programm matrix.c öffnet eine angegebene Datei (test1.txt), welche eine 3x3 Matrix enthalten sollte und gibt diese anschließend auf der Konsole aus. Laden Sie das Programm matrix.c und die Dateien test1.txt und test2.txt in die Linux-Umgebung ihrer Bearbeitungsgruppe. Kompilieren Sie das Programm dort mit „gcc -o matrix matrix.c“ und starten Sie es mit „./matrix test1 &“. Das Programm beendet sich nicht, sondern läuft im Hintergrund weiter (zusehen über „ps -elf“). a) Das Linux Programm lsof (list open files) zeigt Informationen über geöffnete Dateien im Betriebssystem Linux an. Welche Informationen bekommen sie angezeigt, wenn sie nach dem Start von „./matrix test1 &“ den Befehl „lsof test1.txt“ eingeben? Geben Sie die Ausgabe mit einer kurzen Erläuterung der wichtigsten Informationen hier an. b) Erweitern Sie das Programm matrix.c zu matrixmul.c. Dabei sollen zwei Textdateien (test1.txt und test2.txt) eingelesen werden. Die beiden Dateien enthalten jeweils eine 3x3 Matrix welche miteinander multipliziert werden sollen. Die Ergebnismatrix soll in eine neue Datei mit Namen result.txt geschrieben werden.