mui3ss00

Werbung
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.
Herunterladen