Musterlösung Prüfung SS 2000 Fach: Teilprüfung I3 (SEE, GRS, BTS) BTS Tag: Bearbeitungszeit: 4.7.2000 4 Stunden Name: ............................................................... Matr.Nr.: ................................................................ Punkte: .............. Hilfsmittel: Note: .................. Vorlesungsskripte und Lehrbücher Betriebssysteme Hinweise: Die Aufgaben sind auf den vorgelegten Aufgabenblätter zu lösen. Die Aufgabenblätter sind vollständig abzugeben. Bitte nicht mit Bleistift schreiben! Ich habe zusätzlich zu den Aufgabenblättern ......... Blätter abgegeben. Unterschrift: ................................................................ Aufgabe Punkte BTS 01 02 03 04 05 Aufgabe 01: (Allgemeines und Vermischtes) Punkte Name :....................................... 2 a) Vergleichen und erläutern Sie die Begriffe (bitte kurz und prägnant) Programm, Prozess (Task) und Thread. Programm wurde vom Benutzer erstellt und sagt noch nichts aus über seine Ausführung aus. Programm wird über der Betriebsystemebene ausgeführt. Ein Programm in Ausführung ist ein Prozess und ein Programm oder einzelne Teile des Programmes werden somit zu einer Verwaltungseinheit des Betriebssystems. Eine Task stellt die Betriebsmittel und Ausführungsumgebung für mehrere Ausführungspfade (Threads) zur Verfügung. b) Was ist der Unterschied zwischen Blockieren, Verklemmen und Verhungern(Behinderung)? Ein Prozess benötigt ein Betriebsmittel das im Moment nicht verfügbar ist und muss deshalb blockiert werden, d.h. in eine Warteschlange eingereiht werden. Prozesse sind verklemmt wenn jeder Prozess auf ein Ereignis (wie z.B. Freiwerden eines Betriebsmittel) oder eine Aktion eines anderen Prozesses wartet und die wartenden Prozesse eine Zyklus bilden. Ein Prozess verhungert, wenn bei einer Abarbeitung von verschiedenen Prozessen sie entweder bei der Prozessorzuteilung keine Berücksichtigung finden oder sie nicht voranschreiten können (aktiv warten) mit ihrer Bearbeitung. c) Nennen Sie einige Betriebsarten eines Rechners (inklusive der drei wichtigsten). Batchverarbeitung Dialogverarbeitung Realzeitverarbeitung d) Erläutern Sie die folgenden beiden Betriebssysteme Monolith Schalenmodell und geben Sie deren Vor- und Nachteile an. Strukturierungsmethoden für Beim Monolith besteht das Betriebssystem aus einer Ansammlung von Prozeduren und ist nicht strukturiert. Betriebssystemprozeduren lassen sich Name: ............................................... 3 leicht aufrufen und innerhalb des Betriebssystem können sich die Prozeduren gegenseitig aufrufen. Schnelle Ausführung der Betriebssystemaufrufe da nicht wie beim Schalenmodell das Betriebssystem in einen anderen Modus geschaltet werden muss. Beim Schalenmodell ist das Betriebssystem in aufeinanderaufbauende Schichten oder Schalen strukturiert. Unterste Schicht ist die Hardware oberste Schicht ist die Anwendungsebene. Mit dem Schichtenmodell sehr leicht zu assoziieren sich Sicherungsstrukturen, da jeder Prozess des Betriebssystems in einer anderen Schicht läuft, d.h. ein Prozess kann nicht auf die Speicherbereiche eines anderen Prozess zugreifen und jede Schicht stellt eine Modus des Betriebssystem dar e) Erläutern Sie den Ablauf (Systemdienstes) unter UNIX: des Aufrufes einer Systemfunktion Aufruf einer Systemfunktion Schreiben der Parameter an definierter Stelle z. B. Register Ausführung eines Trap-Befehls und Umschalten des Prozessor in den Systemmodus Ausführung der Interruptroutine oder der Systemfunktion Rückschreiben Statuscode RTI-Befehl ausführen Umschalten des Prozessors in den Usermode. f) Worin liegt der Unterschied zwischen aktivem und passivem Warten? Beim aktiven Warten wartet der Prozess aktiv und läuft auf dem Prozessor und verschwendet somit Prozessorzeit. Beim passivem Warten wartet der Prozess in einer Warteschlange und verschwendet dadurch keine Prozessorzeit. Aufgabe 02: (Dispatcher) Punkte Name :....................................... 4 a) Erweitern Sie das Prozesszustandsdiagramm, so dass Swapping mit eingeschlossen wird (Bitte bildlich darstellen). b) Welche Aufgabe hat der Nullprozess oder Leerlaufprozess? Die Prozessmenge im Bereitzustand darf nicht leer werden, es muss immer ein ablauffähiger Prozess (Nullprozess) vorhanden sein. c) Welche Zustände im Prozesszustandsdreieck kann der Nullprozess einnehmen? Bereit und Rechnend d) Welche Komponenten und Teile besitzt der Prozesskontrollblock (PCB). Hardware PCB Befehlszähler Zeiger auf Laufzeitbereich des Prozesses Zeiger auf Datenbereich des Prozesses. Zeiger auf Rettbereich. Software PCB Prozessidentifikation Prozesspriorität Kontrollinformation für den Prozess e) Was passiert mit einem Prozess, auf dessen Prozesskontrollblock das Betriebssystem keinen Zugriff hat? Name: ............................................... 5 Der Prozess findet durch das Betriebssystem kein Berücksichtigung und kommt dadurch nie mehr zum Ablauf auf den Prozessor. Aufgabe 03: (Synchronisation) Punkte Name :....................................... 6 a) Fügen Sie bei den folgenden beiden Endlosprozessen Ha und Tschi Semaphoroperationen P und V ein, so dass die Prozesse endlos Hatschi, Hatschi, Hatschi.... ausgeben. Geben Sie bitte auch die Initialisierung der Semaphoren an. task Ha is begin loop P(Sema_Ha); print( „Ha“); V(Sema_Tschi); end loop; end Ha; task Tschi is begin loop P(Sema_Tschi); print(„tschi, “); V(Sema_Ha); end loop; end Tschi; -- Initialisierung der Semas S_init (Sema_Ha,1); S_init.(Sema_Tschi,0); b) Lösen Sie das Problem unter a) mit Hilfe von bedingten kritischen Regionen. task Ha is begin loop task Tschi is begin loop region Gesundheit when Ha region Gesundheit when Tschi printf( „Ha“); printf(„tschi, “); Ha := False; Tschi := False; Tschi :=True; Ha := True; end region; end region; end loop; end loop; end Ha; end Tschi; Ha := True; Tschi := False; c) Lösen Sie das Problem unter a) mit Hilfe von Monitorprozeduren. Geben Sie dazu den Monitor an. monitor Gesundheit is Name: ............................................... 7 Condition Ha_Start, Tschi_Start; Boolean Ha_B, Tschi_B; procedure Ha is begin if Tschi_B Signal (Tschi_Start); Wait( Ha_Start); end if; printf („Ha“); Ha_B := False; Tschi_B := True; end Ha; procedure Tschi is begin if Ha_B Signal (Ha_Start); Wait(Tschi_Start); end if; printf(„Tschi“); Tschi_B := False; Ha_B := True; end Tschi; begin Tschi_B := False; Ha_B := True; end Gesundheit; d) Lösen Sie das Problem unter a) mit Hilfe des Ada Rendezvous’. task Ha; task Tschi is entry Tschi_Schreiben; Name :....................................... 8 end Tschi; task body Ha is begin loop printf(„ HA“); Tschi.Tschi_Schreiben; end loop; end Ha; task body Tschi is begin loop accept Tschi_Schreiben do printf(„Tschi“); end Tschi_Schreiben; end loop; end Tschi; Aufgabe 04: (Scheduling) Punkte a) Fünf Stapelaufträge treffen in einem Computer fast zur gleichen Zeit ein. Sie besitzen die geschätzte Ausführungszeiten von 10, 6, 4, 2 und 8 Minuten und die Prioritäten 3, 5, 2, 1 und 4, wobei 5 die höchste Priorität ist. Geben Sie für jeden der folgenden Schedulingalgorithmen graphisch die Abarbeitungsreihenfolge an und berechnen sie die Turnaroundzeiten. Name: ............................................... Vernachlässigen Sie dabei die Zeiten für einen Prozesswechsel. a) b) c) d) Round Robin (RR) mit Zeitquantum q = 30 sec. Priority Scheduling (P) First Come First Served (FCFS) (Reihenfolge 10, 6, 4, 2, 8) Shortest Job First (SJF) a) RR mittlere Turnaroundzeit (30 +22 + 16 + 8+ 28)/5 = 21,2 b) P Mittlere Turnaroundzeit (6 + 14 + 24 + 28 +30)/5 = 20,4 b) FCFS 9 Name :....................................... 10 Mittlere Turnaroundzeit (10 + 16 + 20+ 22 + 30)/5 = 19,6 c) SJF Mittler TurnaroundZeit (2 + 6 + 12+ 20 + 30) / 5 = 14 b) Welche der obigen Abarbeitungsstrategien liefert die minimalste Turnaroundzeit? Gibt es eine Abarbeitungsstrategie, die noch kürzere Turnaroundzeiten liefert und falls ja, wie sieht sie aus? SJF liefert die minimalsten Turnaroundzeiten. Es gibt keine Strategie die noch kürzere Turnaroundzeiten liefert. c) Die Prozessumschaltzeit sei t. Wie groß in Abhängigkeit von t muss das Name: ............................................... 11 Zeitquantum q bei der Round Robin Strategie gewählt werden, so dass der Overhead des Betriebssystems für die Prozessumschaltung weniger als 50 Prozent ausmacht? q muss gleich t sein. Aufgabe 05: (Verwaltung des Swapbereiches einer Platte) Punkte a) Diskutieren sie den Vor- und Nachteile und vergleichen Sie die Unterteilung des Swap-Bereiches (Swap-Partition) einer Platte a1) in gleich lange Stücke, a2) in variabel lange Stücke. Name :....................................... 12 Diskutieren Sie unter a2) hauptsächlich die verschiedenen möglichen Allokationstrategien für freie Bereiche in der Swappartition und deren Vor- und Nachteile. a1) Effiziente Belegungsdarstellung für Swap-Bereich, da ein Bitbelegungsvektor ausreicht. Interne Fragmentierung tritt auf. Auslagern benutzt einfache Algorithmen. a2) Für jeden Swap-Bereich muss Startadresse und Länge des Speicherstückes in einer Liste verwaltet werden Keine interne Fragementierung dafür jedoch externe Fragmentierung. Einsatz der folgenden Allokationsstrategien: First Fit Suchvorgang zieht sich im laufenden Betrieb in die Länge, viele kleine Reststücke am Beginn der Swappartition -> Next Fit Best Fit: Alle Stücke müssen betrachtet werden um das beste zu finden (hoher Suchaufwand). Kleine nicht nutzbare Reststücke bleiben übrig. Worst Fit Alle Stücke müssen betrachtet werden, um das schlechteste passende zu finden (hoher Suchaufwand). Grosse besser nutzbare Reststücke bleiben übrig. b) Diskutieren Sie die Vor- und Nachteile der beiden Strategien: Beim ersten Einlagern eines Prozesses in den Hauptspeicher bekommt der Prozess in dem Swapbereich Speicher zugewiesen für eine spätere Auslagerung. Beim ersten Einlagern eines Prozesses in den Hauptspeicher bekommt der Prozess im Swapspeicher keinen Speicher zugewiesen, sondern der Speicher im Swapbereich wird erst beim Auslagern (swap out) beschafft. Beim Einlagern wird Swapbereich auf der Platte allokiert: Name: ............................................... 13 Beim Auslagern steht sofort der entsprechende Swapbereich zur Verfügung und muss nicht allokiert werden (Schnelles Swap out). Swapbereich aus der Swappartition wird allokiert, obwohl der Prozess vielleicht nicht ausgelagert wird und den Swapbereich benutzt. Beim Auslagern wird Swapbereich allokiert Beim Auslagern muss nach irgend einem Allokationsverfahren (siehe oben) Speicherbereich aus der Swappartition beschafft werden (langsames Swap out). Es wird allerdings nur Speicher beschafft der auch wirklich genutzt wird beim Swap out.