Studiengang Angewandte Informatik Systemsoftware

Werbung
Studiengang Angewandte Informatik
Systemsoftware
Prof. Dr.-Ing. Silvia Keller
Übungsaufgaben
Aufgabe 1
In der Vorlesung wurde ein Schichtenmodell als Architektur für ein Betriebssysteme eingeführt. Dabei wurde
das Betriebssystem in zwei Softwareschichten aufgeteilt, die Systemfunktionen und die Systemaufrufe, auch
Supervisor Calls ( SVC) genannt.
1.1
Kennzeichnen Sie in der folgenden Grafik die Schicht der "Systemfunktionen" und die Schicht der
"Systemaufrufe (SVC) "
Anwenderprogramme
Rechnerhardware
1.2 Erläutern sie kurz die Aufgaben, die eine Systemfunktion übernimmt und mit welcher
Programmiertechnik eine Systemfunktion realisiert wird, d.h. in welcher Form Systemfunktionen dem
Anwenderprogramm zu Verfügung stehen.
1.3 Erläutern Sie kurz mit welcher Technik ein Systemaufruf (SVC ) realisiert wird und was bei einem
Systemaufruf im Rechner abläuft?
1.4
A
Das System unterscheidet zwei Abwicklungsmodi User und Privilegiert.
In welchem Modus laufen die Systemfunktionen ?
In welchem Modus laufen die Systemaufrufe ?
UFGABE
2
MULTIPROGRAMMING
In einem Multiuser/Multitasking-Betriebssystem können mehrere Prozesse nebenläufig abgearbeitet werden.
Jeder Prozeß läuft dabei auf einer virtuellen CPU ab, die im Multiplexverfahren einer realen CPU zugeteilt
werden. Die Speicherverwaltung kann bei Speicherbedarf Prozesse auslagern.
a)
Wie wird ein Prozeß vom Betriebssystem verwaltet ? Welche Datenstrukturen werden beim
Erzeugen eines Prozesses angelegt und welche Informationen sind dort abgelegt.
b)
Prozesse nehmen normalerweise verschiedene Zustände an. Geben Sie den Zustandsgraph eines
Prozesses an. Erläutern Sie die Bedeutung der Zustände und die Bedingungen für die
Zustandsübergänge
Systemsoftware
A
UFGABE
Übungsaufgaben
3
Oktober 02
Seite 2
MULTIPROGRAMMING
In einem multiuser/multitasking Betriebssystem können mehrere Prozesse nebenläufig abgearbeitet werden.
Jeder Prozeß läuft dabei auf einer virtuellen CPU ab, die im Multiplexverfahren einer realen CPU zugeteilt
werden. Die Zuteilung einer virtuellen CPU an die reale CPU erfolgt durch das Betriebssystem nach einem
bestimmten Algorithmus.
a) Erklären Sie die Funktion von Dispatcher und Scheduler
Gegeben ist folgendes Petrinetz, das die kausale Abfolge von Aktionen bei der Prozeßverwaltung
beschreibt. Kennzeichnen Sie im Petrinetz diejenige Transitionen , die zur Programmabwicklung
eines Prozesses gehören mit P, diejenigen, die zum Dispatcher gehören mit D und diejenigen
Transitionen, die zum Scheduler gehören, mit S.
( Jede Transition im Petrinetz muß gekennzeichnet werden.)
Programmbefehl abwickeln
aktuellen Prozeß deaktivieren
neuen Prozeß auswählen
neuen Prozeß aktivieren
b) Bei der Zuteilung der realen CPU an einen Prozeß unterscheidet man non-preemptive und
preemptive Zuteilungsstrategien. Durch welche Ereignisse findet ein Prozeßwechsel statt
•
•
A
im Falle von non-preemptive Scheduling
im Falle von preemptive Scheduling.
UFGABE
4
MULTIPROGRAMMING
Die Verweildauer eines Prozesses ist die Zeit vom Start eines Prozesses ( Einlagerung in die ReadyWarteschlange) bis zum Ende eines Prozesses. Die Verweildauer umfaßt damit sowohl reine Rechenzeit als
auch die Zeit, die der Prozeß auf die Zuteilung warten muß. Die mittlere Verweildauer von Prozessen ist die
Summe der Verweildauer aller Prozesse, die in einem Zeitintervall ablaufen, geteilt durch die Anzahl der
ausgeführten Prozesse. Sie kann als Gütemaß für einen Zuteilungsalgortihmus herangezogen werden.
Berechnen Sie die mittlere Verweildauer für die im folgenden angegebene Situation
•
Fünf Prozesse werden auf zwei Rechnersystemen mit unterschiedlicher Zuteilungsstrategie
in der gleichen zeitlichen Reihenfolge gestartet.
•
Betriebssystem A arbeitet nach der non-preemptive Strategie FIRST COME FIRST SERVE
( Prioritäten werden nicht berücksichtigt ).
•
Betriebssystem B arbeitet mit preemptive PRIORITÄTENGESTEUERTER Zuteilung.
Berechnen Sie die mittlere Verweildauer für beide Fälle Betriebssystem A und Betriebssystem B.
Systemsoftware
Übungsaufgaben
Prozeßnummer
Oktober 02
Seite 3
Startzeitpunkt ( in ms )
Rechenzeit
( in ms )
(bezogen auf to=0 ms)
A
1
0
10
1
2
5
5
2
3
8
3
5
4
10
10
3
5
15
7
3
5
UFGABE
Priorität
MULTIPROGRAMMING
In einem Multitasking-Betriebssystem werden mehrere Prozesse nebenläufig abgearbeitet.
Bei der Zuteilung der CPU an einen rechenbereiten Prozeß verfolgt das Betriebssystem eine preemptive
Prioritätensteuerung mit dynamischen Prioritäten d.h. beim Starten eines Prozesses erhält der Prozeß eine
Basispriorität, die während der Laufzeit dynamisch vom Betriebssystem verändert wird. Gibt es zwei Prozesse
mit gleicher Priorität, so hat immer der gerade rechnende Prozeß Vorrang vor einem wartenden Prozeß. Gibt
es mehrere wartende Prozesse, so hat der Prozeß Vorrang, der als letzter gerechnet hat, also der Prozeß mit
der kleinsten Wartezeit.
Die dynamische Korrektur der Priorität erfolgt nach folgenden Regeln:
a) Nach jeder Zeiteinheit Rechenzeit wird die Priorität um 1 erniedrigt. Negative Prioritäten werden zu 0
gesetzt.
b) Nach einem Systemaufruf (SVC) wird nach Ablauf der Zeiteinheit die Priorität um 2 erhöht.
c) Bei der Berechnung der Priorität am Ende einer Zeiteinheit wird sowohl Regel a) als auch Regel b)
angewendet, d.h ein Prozeß ohne SVC wird um 1 erniedrigt ein Prozeß mit SVC wird um 1 erhöht.
d) Tritt ein SVC zum Zeitpunkt einer Zeiteinheit auf, so wird Regel a) und Regel b) angewendet d.h. die
Priorität erhöht sich in diesem Fall um 1.
Im folgenden Beispiel werden drei Prozesse P1, P2 und P3 betrachtet. Die Prozesse starten alle zum gleichen
Zeitpunkt t=0, haben jedoch unterschiedliche Basisprioritäten. Alle SVC's treten zum Zeitpunkt einer Zeiteinheit
auf. ( d.h. in diesem Fall soll Regel d anwendet werden ).
In der folgenden Tabelle sind die drei Prozesse im Detail beschrieben . Startzeit und Rechenzeit der einzelnen
Prozesse sind in Zeiteinheiten (ZE) angegeben.
Prozeßnummer
Rechenzeit
( in ZE)
Basispriorität
SVC bei
Rechenzeit
Startzeit
1
6
5
kein SVC
0
2
5
3
1,2
0
3
4
4
2
0
Tragen Sie in die folgende Zeitleiste ein, welcher Prozeß in der jeweiligen Zeiteinheit abläuft. Zeiten, in denen
das Betriebssystem arbeitet, sind wegzulassen.
1
2
----> Zeit in ZE
3
4
5
6
7
8
9
10
11
12
13
14
15
Systemsoftware
A
Übungsaufgaben
6
UFGABE
Oktober 02
Seite 4
MULTIPROGRAMMING
Auf ihrem Rechner ist ein Multiprogramming-Betriebssystem MUBS installiert.
Der Scheduler von MUBS realisiert eine preemptive Zuteilungsstrategie, eine Kombination aus Round Robin
(RR) und dynamischen Prioritäten.
Die Priorität eines Prozesses wird beim Start angegeben. Ein Prozess kann die Priorität während der Laufzeit
durch Aufruf der Systemfunktion PRIO() um den Wert 1 erniedrigt werden. Die Erniedrigung der Priorität wird
erst in der folgenden Zeitscheibe wirksam.
Eine Erhöhung der Priorität um den Wert 2 erfolgt durch das Betriebssystem, wenn ein Prozess ein
I/O_Operation über die API-Funktionen IO_read() und IO_write() durchführt. Die Erhöhung der Priorität wird
erst in der folgenden Zeitscheibe wirksam.
Eine beim Start vergebene Priorität bleibt solange erhalten, bis der Prozess endet oder bis durch Aufruf der
Systemfunktion PRIO() die Priorität erniedrigt wird oder das BS aufgrund einer I/O-Operation eine Erhöhung
anordnet. Die neu berechnete Priorität bleibt erhalten, bis zum Ende des Prozesses oder einem erneuten
Aufruf von PRIO() bzw. I/O-Operation.
Wird PRIO() oder eine IO_Operation innerhalb einer Zeitscheibe mehrmals aufgerufen wird die Priorität bei
jedem Systemaufruf erniedrigt bzw. erhöht d.h. nach dem zweiten Systemaufruf von PRIO() ist die Priorität um
2 niedriger, nach zwei I/O_Operationen innerhalb einer Zeitscheibe um 4 erhöht.
Existieren zu Beginn einer Zeitscheibe mehrere Prozesse mit gleicher Priorität, so wird das Round Robin
Verfahren angewendet und es darf der Prozess beginnen, der am längsten nicht gerechnet hat.
In der folgenden Tabelle ist eine Situation beschrieben, in der 4 Prozesse zu unterschiedlichen Zeiten starten.
Alle Zeiten in der Tabelle sind als Zeiteinheiten angegeben ( 1 Zeiteinheit= 1 Zeitscheibe ). Die Prozesse
starten mit unterschiedlicher Priorität. Prozess 1,2 und 3 erniedrigen zur Laufzeit ihre Prioritäten. In der Spalte
5 ist angegeben in welcher Zeiteinheit ein Aufruf von PRIO() erfolgt. In Spalte 6 ist eingetragen, ob und wann
die Prozesse eine I/O-Operation durchführen. Die Rechenzeit wird in Anzahl von Zeiteinheiten angegeben, die
der Prozess rechnet. Nach dem Start befindet sich ein Prozess daher in der Rechenzeit 1.
Prozess-ID
Startzeit Priorität beim
Start
Rechenzeit Aufruf von PRIO() I/O-Operationen
im Zeitintervall
innerhalb des
Zeitintervalls
1
0
3
3
2
3
2
2
4
5
2
1
3
5
6
7
1 und 5
-
4
10
5
5
-
2 und 4
Tragen Sie in die vorgegebene Zeitleiste ein, welcher Prozess in welcher Zeiteinheit mit welcher Priorität
abläuft
ProzessID
Priorität
Zeiteinheit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Herunterladen