4. Übung zur Vorlesung Betriebssysteme

Werbung
Institut für
Verteilte Systeme
Prof. Dr. Peter Schulthess
Steffen Gerhold
Patrick Schmidt
4. Übung zur Vorlesung Betriebssysteme
08.07.2010
Aufgabe 1: Java-Threads
Gegeben folgendes Programm in Java:
public class Threading extends Thread {
public static void main(String args[]) {
new Threading('a').start();
new Threading('b').start();
System.out.println("finished");
}
private int count=10;
private char myChar;
public Threading(char c) {
myChar=c;
}
public void run() {
while (count-->0) {
System.out.print(myChar);
Thread.yield();
}
}
}
a) Gibt es in diesem Programm kritische Abschnitte? Begründen Sie Ihre Antwort!
b) Bei mehrfacher Ausführung des Programms bekommen Sie folgende Ausgaben:
baaaaaabbbbbbaaaabbbfinished
aaaaaaaaaabbbbbbbbbbfinished
afinished
baaaaaaaaabbbbbbbbb
Erklären Sie dieses Verhalten!
Aufgabe 2: Dispatcher, Scheduler
a) Erklären Sie den Unterschied zwischen Dispatcher und Scheduler.
b) Erklären Sie Schritt für Schritt wie typischerweise ein Prozesswechsel zustande kommt
und was dabei von dem Betriebssystem gemacht wird.
c) Nennen und beschreiben Sie zwei Probleme, die bei prioritätsbasiertem Scheduling
auftreten können. Wie können diese Probleme jeweils behoben werden?
d) Tragen Sie die Prozesszustände dreier Prozesse A, B und C in ein Zeitdiagramm ein.
Zeichnen Sie einen Balken auf die entsprechende Achse für die Zeit, in der sich der
Prozess im jeweiligen Zustand befindet. Die Prozesse haben folgendes Ablaufverhalten:
Prozess A startet zum Zeitpunkt tA = 0s. Er benötigt zunächst 1s CPU-Zeit, blockiert sich
dann für 1,5s und terminiert nach weiteren 1,5s CPU-Zeit.
Prozess B startet zum Zeitpunkt tB = 0,5s. Nach 1,5s CPU-Zeit tätigt der Prozess eine
Ausgabeoperation, bei der er für 0,5s blockiert wird. Danach benötigt der Prozess noch
0,5s Rechenzeit bis zur Terminierung.
Prozess C startet zum Zeitpunkt tC = 1s und benötigt 2s CPU-Zeit bis er sich ohne
Ein-/Ausgabe-operationen beendet.
Für das erste Diagramm
Zeitscheibenlänge von 1s an:
A
nehmen
Sie
eine
Round-Robin-Strategie
mit
einer
laufend
bereit
blockiert
B
laufend
bereit
blockiert
C
laufend
bereit
blockiert
0
0,5
1
2
3
4
5
6
Für das zweite Diagramm gehen Sie von einer verdrängenden Shortest-Job-First-Strategie
(PSJF) aus:
A
laufend
bereit
blockiert
B
laufend
bereit
blockiert
C
laufend
bereit
blockiert
0
0,5
1
2
3
4
5
6
Aufgabe 3: Synchronisierung
a) Beschreiben Sie ein möglichst einfaches Szenario, bei dem fehlende Synchronisierung zu
Inkonsistenzen führen kann.
b) Nennen und beschreiben Sie drei Synchronisierungsmechanismen.
c) Beschreiben Sie,
wie die Anwendung eines
von Ihnen beschriebenen
Synchronisierungsmechanismus die Inkonsistenzen in Ihrem Szenario verhindert.
d) Angenommen, Ihr System hat nur sehr kurze kritische Abschnitte, so dass sich InterruptSperren für einen Wechselseitigen Ausschluss eignen. Worauf müssen Sie bei der
Anwendung der Interrupt-Sperre achten, damit der wechselseitige Ausschluss auch bei
verschachtelten Sperren weiterhin gegeben ist?
Herunterladen