Betriebssysteme (BS)
Probeklausur
https://ess.cs.tu-dortmund.de/DE/Teaching/SS2020/BS/
Horst Schirmeier
horst.schirmeier@tu-dortmund.de
https://ess.cs.tu-dortmund.de/~hsc
AG Eingebettete Systemsoftware mit Material von Olaf Spinczyk, Informatik 12, TU Dortmund Universität Osnabrück
Ablauf
Probeklausur
Besprechung der Aufgaben
Am Besten habt ihr die Probeklausur bereits bearbeitet Zusatz: Hinweise zur Auswertung
●
– – –
●
Weitere Hinweise zur Klausurvorbereitung
Probeklausur Betriebssysteme 2020
2
Probeklausur
… in (fast) allen Belangen realistisch:
Art der Aufgaben
Auswahl aus dem gesamten Inhalt der Veranstaltung Betriebssystemgrundlagen und UNIX-Systemprogrammierung in C Vorlesungen und Übungen sind relevant
●
– – –
●
–
●
– –
●
Die Klausur kann nicht abgegeben werden. Probeklausur Betriebssysteme 2020
Umfang
kürzer als das „Original“: 45 statt 60 Punkte, 30-40 statt 60 Minuten
Bearbeitung idealerweise wie bei der richtigen Klausur
keine Hilfsmittel (keine Spickzettel, Bücher, …) Still- und Einzelarbeit
3
1 – Prozesse und Scheduling
a) Prozesserzeugung – Was wird ausgegeben?
int counter;
void *erledigeArbeit(void *param) {
counter++;
printf(“%d\n”, counter);
return NULL;
}
int main(void) {
counter = 42;
}
pthread_t id;
pthread_create(&id, NULL,
erledigeArbeit, NULL);
pthread_join(id, NULL);
erledigeArbeit(NULL);
return 0;
43 43
43 43
Probeklausur Betriebssysteme 2020
4
43 44
43 44
int counter;
void *erledigeArbeit(void *param) {
counter++;
printf(“%d\n”, counter);
return NULL;
}
int main(void) {
}
counter = 42;
if (fork() == 0) {
erledigeArbeit(NULL);
} else {
erledigeArbeit(NULL);
}
return 0;
1 – Prozesse und Scheduling
a) Prozesserzeugung
Wieso ist die Ausgabe unterschiedlich?
● pthread_create()
–
● fork()
– Erzeugt neuen Prozess
– Kopiert Adressraum
→ eigene Version von Data, BSS, Heap und Stack
– Erzeugt neuen Thread
– Legt eigenen Stack an
– Teilt sich Data, BSS und Heap
Jeder hat eigene
Jeder hat eigene
Variable „counter“
Variable „counter“
Beide teilen sich
Beide teilen sich
Variable „counter“
Variable „counter“
Probeklausur Betriebssysteme 2020
5
1 – Prozesse und Scheduling
a) Prozesserzeugung
An welcher Stelle muss in dem linken Programm ein Aufruf von wait() eingefügt werden, damit die Ausgabe bei jeder Ausführung in der gleichen Reihenfolge erfolgt?
–
int counter;
void *erledigeArbeit(void *param) {
counter++;
printf(“%d\n”, counter);
return NULL;
}
int main(void) {
counter = 42;
if (fork() == 0) {
erledigeArbeit(NULL);
} else {
} }
erledigeArbeit(NULL);
return 0;
Probeklausur Betriebssysteme 2020
6
1 – Prozesse und Scheduling
a) Prozesserzeugung
An welcher Stelle muss in dem linken Programm ein Aufruf von wait() eingefügt werden, damit die Ausgabe bei jeder Ausführung in der gleichen Reihenfolge erfolgt?
●
Im Elternprozess,
vor dem Funktionsaufruf. Hierdurch wartet dieser auf die Terminierung seines Kindprozesses.
–
Probeklausur Betriebssysteme 2020
7
int counter;
void *erledigeArbeit(void *param) {
counter++;
printf(“%d\n”, counter);
return NULL;
}
int main(void) {
counter = 42;
if (fork() == 0) {
} }
} else {
erledigeArbeit(NULL);
wait();
erledigeArbeit(NULL);
return 0;
1 – Prozesse und Scheduling
b) „fork“-Aufruf
Durch welchen Mechanismus können moderne UNIX-Systeme, die mit einer Memory Management Unit (MMU) ausgestattet sind, die Ausführung des „fork“-Systemaufrufes beschleunigen?
Erläutern Sie diesen Mechanismus kurz.
●
Probeklausur Betriebssysteme 2020
8
1 – Prozesse und Scheduling
b) „fork“-Aufruf
Durch welchen Mechanismus können moderne UNIX-Systeme, die mit einer Memory Management Unit (MMU) ausgestattet sind, die Ausführung des „fork“-Systemaufrufes beschleunigen?
Erläutern Sie diesen Mechanismus kurz.
Durch die MMU ist es möglich, erst beim ersten Modifizieren des Kind- oder Elternprozesses die Daten als Kopie im Speicher anzulegen. Die MMU kann bis dahin unterschiedliche virtuelle Adressen auf die gleiche physikalische Adresse abbilden.
Dieser Mechanismus wird Copy on Write (COW) genannt.
●
●
Probeklausur Betriebssysteme 2020
9
2 – Synchronisation und Verklemmungen
a) Synchronisation
Die drei Funktionen des folgenden Programms werden als Fäden
ausgeführt. Alle drei Fäden sind zur selben Zeit laufbereit.
Sorgen Sie durch geeignete Synchronisation der Abläufe dafür, dass das Programm die ersten sechs Primzahlen in einer aufsteigenden Reihenfolge (2, 3, 5, 7, 11, 13) ausgibt.
Zu diesem Zweck stehen ihnen drei Semaphore zur Verfügung. Diese gilt es geeignet zu initialisieren und anschließend, an den freien Stellen im Programm, die nötigen Semaphor-Operationen einzufügen.
●
●
●
Probeklausur Betriebssysteme 2020
10
2 – Synchronisation und Verklemmung
a) Synchronisation
Die Semaphore müssen initialisiert und anschließend, an den freien Stellen im Programm, die nötigen Semaphor-Operationen eingefügt werden.
Gewünschte Ausgabe: aufsteigende Reihenfolge (2, 3, 5, 7, 11, 13)
Initialwerte der Semaphore: S1 =
S2 =
S3 =
f1(){
printf(“3”);
printf(“5”);
}
f2(){
printf(“2”);
printf(“13”);
}
f3(){
printf(“7”);
printf(“11”);
}
Probeklausur Betriebssysteme 2020
11
2 – Synchronisation und Verklemmung
a) Synchronisation
Ausgabe:
(Newline am Ende des Programms sowie Leerzeichen nach den Zahlen eingefügt)
studi@bsvm:~$ ./prim_ordered 2 3 5 7 11 13
Initialwerte der Semaphore: S1 =
0
S2 =
0
S3 =
0
f1(){
P(S1);
printf(“3”);
printf(“5”);
V(S3);
}
f2(){
printf(“2”);
V(S1); P(S2); printf(“13”);
}
f3(){
P(S3);
printf(“7”);
printf(“11”);
V(S2);
}
Probeklausur Betriebssysteme 2020
12
2 – Synchronisation und Verklemmung
a) Synchronisation
Ausgabe:
(Newline am Ende des Programms sowie Leerzeichen nach den Zahlen eingefügt)
studi@bsvm:~$ ./prim_ordered 2 3 5 7 11 13
Initialwerte der Semaphore: S1 =
0
S2 =
0
S3 =
0
f1(){
P(S1);
printf(“3”);
printf(“5”);
V(S3);
}
f2(){
printf(“2”);
V(S1); P(S2); printf(“13”);
}
f3(){
P(S3);
printf(“7”);
printf(“11”);
V(S2);
}
Probeklausur Betriebssysteme 2020
13
1
2 – Synchronisation und Verklemmung
a) Synchronisation
Ausgabe:
(Newline am Ende des Programms sowie Leerzeichen nach den Zahlen eingefügt)
studi@bsvm:~$ ./prim_ordered 2 3 5 7 11 13
Initialwerte der Semaphore: S1 =
0
S2 =
0
S3 =
0
f1(){
P(S1);
printf(“3”);
printf(“5”);
V(S3);
}
f2(){
printf(“2”);
V(S1); P(S2); printf(“13”);
}
f3(){
P(S3);
printf(“7”);
printf(“11”);
V(S2);
}
Probeklausur Betriebssysteme 2020
14
1
2
2 – Synchronisation und Verklemmung
a) Synchronisation
Ausgabe:
(Newline am Ende des Programms sowie Leerzeichen nach den Zahlen eingefügt)
studi@bsvm:~$ ./prim_ordered 2 3 5 7 11 13
Initialwerte der Semaphore: S1 =
0
S2 =
0
S3 =
0
f1(){
P(S1);
printf(“3”);
printf(“5”);
V(S3);
}
f2(){
printf(“2”);
V(S1); P(S2); printf(“13”);
}
f3(){
P(S3);
printf(“7”);
printf(“11”);
V(S2);
}
Probeklausur Betriebssysteme 2020
15
1
2
3
2 – Synchronisation und Verklemmung
b) Verklemmungsvarianten
Beschreiben Sie den Begriff des Livelocks. Welche der beiden Verklemmungsvarianten (deadlock, livelock) ist prinzipiell problematischer? Begründen Sie ihre Antwort.
Probeklausur Betriebssysteme 2020
16
2 – Synchronisation und Verklemmung
b) Verklemmungsvarianten
Beschreiben Sie den Begriff des Livelocks. Welche der beiden Verklemmungsvarianten (deadlock, livelock) ist prinzipiell problematischer? Begründen Sie ihre Antwort.
Livelock: Bei einer Verklemmung warten die Prozesse nicht passiv wie bei einem Deadlock, sondern haben einen beliebigen Prozesszustand (z.B. weiterlaufen in einer de-facto-Dauerschleife) und belegen weiterhin die CPU.
–
Probeklausur Betriebssysteme 2020
17
2 – Synchronisation und Verklemmung
b) Verklemmungsvarianten
Beschreiben Sie den Begriff des Livelocks. Welche der beiden Verklemmungsvarianten (deadlock, livelock) ist prinzipiell problematischer? Begründen Sie ihre Antwort.
Livelock: Bei einer Verklemmung warten die Prozesse nicht passiv wie bei einem Deadlock, sondern haben einen beliebigen Prozesszustand (z.B. weiterlaufen in einer de-facto-Dauerschleife) und belegen weiterhin die CPU.
Problematischer ist ein Livelock, da:
Prozesse belegen weiterhin die CPU, aber kein Fortschritt (Verschwendung)
Erkennung der Verklemmung von „außen“:
Deadlock: prüfen, ob „alle“ blockieren
Livelock: deutlich schwieriger, da Zustand undefiniert
–
–
● ●
– –
Probeklausur Betriebssysteme 2020
18
2 – Synchronisation und Verklemmung
c) Prozessverläufe
●
– –
Kann in diesem Prozessverlaufsdiagramm eine Verklemmung auftreten?
Betriebsmittel werden gleichzeitig belegt
Hold and Wait ist somit entkräftet, also kann keine Verklemmung auftreten
Probeklausur Betriebssysteme 2020
19
2 – Synchronisation und Verklemmung
c) Prozessverläufe
●
– –
● ● ●
t1
Kann in diesem Prozessverlaufsdiagramm eine Verklemmung auftreten?
Betriebsmittel werden schrittweise belegt
Ab Zeitpunkt t1:
P1 belegt L und fordert R
P2 belegt R und fordert L
Circular Wait tritt ein => Verklemmung
Probeklausur Betriebssysteme 2020
20
2 – Synchronisation und Verklemmung
c) Prozessverläufe
●
– – – – –
Kann in diesem Prozessverlaufsdiagramm eine Verklemmung auftreten?
Betriebsmittel werden schrittweise belegt
P1 belegt L und R
P2 blockiert an L und R
Sobald P1 die Betriebsmittel freigibt, läuft P2 weiter Circular Wait wird nicht erfüllt => Keine Verklemmung
Probeklausur Betriebssysteme 2020
21
Fortschritt Betriebsmittel Prozess P1
Fortschritt
Prozess P2
L R
L R
Betriebsmittel
3 – Speicherverwaltung + virt. Speicher
a) Speichersegmentierung
Anfrage: 0x0000BEEF
Segmenttabelle
●
00 00BEEF
logische Adresse
Startadresse
Länge
0010
0000 00E016
21 20FF16
0110
B542 000016
01 000016
0210
0515 000016
20 000016
0310
0006 000016
00 FFFF16
…
2810
0001 000016
FF FFFF16
Probeklausur Betriebssysteme 2020
22
physikalische Adresse
3 – Speicherverwaltung + virt. Speicher
a) Speichersegmentierung
Anfrage: 0x0000BEEF
●
Segmenttabellen- basisregister
Segmenttabelle
+
00 00BEEF
logische Adresse
Startadresse
Länge
0010
0000 00E016
21 20FF16
0110
B542 000016
01 000016
0210
0515 000016
20 000016
0310
0006 000016
00 FFFF16
…
2810
0001 000016
FF FFFF16
<
ja
Trap: Schutzverletzung
+
Probeklausur Betriebssysteme 2020
23
physikalische Adresse
3 – Speicherverwaltung + virt. Speicher
a) Speichersegmentierung
Anfrage: 0x0000BEEF
●
Segmenttabellen- basisregister
Segmenttabelle
+
00 00BEEF
logische Adresse
Startadresse
Länge
0010
0000 00E016
21 20FF16
0110
B542 000016
01 000016
0210
0515 000016
20 000016
0310
0006 000016
00 FFFF16
...
2810
0001 000016
FF FFFF16
<
ja
Trap: Schutzverletzung
+
0000BFCF
physikalische Adresse
Probeklausur Betriebssysteme 2020
24
3 – Speicherverwaltung + virt. Speicher
a) Speichersegmentierung – forts.
Anfrage: 0x1CEB00DA Segmenttabellen-
●
basisregister
Segmenttabelle
+
1C EB00DA
logische Adresse
Startadresse
Länge
0010
0000 00E016
21 20FF16
0110
B542 000016
01 000016
0210
0515 000016
20 000016
0310
0006 000016
00 FFFF16
...
2810
0001 000016
FF FFFF16
<
ja
Trap: Schutzverletzung
+
00EC00DA
physikalische Adresse
Probeklausur Betriebssysteme 2020
25
3 – Speicherverwaltung + virt. Speicher
a) Speichersegmentierung – forts.
Anfrage: 0x1CEB00DA Segmenttabellen-
●
basisregister
Segmenttabelle
+
1C EB00DA
logische Adresse
Startadresse
Länge
0010
0000 00E016
21 20FF16
0110
B542 000016
01 000016
0210
0515 000016
20 000016
0310
0006 000016
00 FFFF16
...
2810
0001 000016
FF FFFF16
<
ja
Trap: Schutzverletzung
+
00EC00DA
physikalische Adresse
Probeklausur Betriebssysteme 2020
26
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess B: Prozess B belegt 9 MiB
●
Probeklausur Betriebssysteme 2020
27
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
B
B
B
B
B
B
B
B
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess B: Prozess B belegt 9 MiB
●
Lösung:
Probeklausur Betriebssysteme 2020
28
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
B
B
B
B
B
B
B
B
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess C: Prozess C belegt 1 MiB
●
Probeklausur Betriebssysteme 2020
29
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
B
B
B
B
B
B
B
B
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
C
B
B
B
B
B
B
B
B
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess C: Prozess C belegt 1 MiB
●
Lösung:
Probeklausur Betriebssysteme 2020
30
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
C
B
B
B
B
B
B
B
B
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess D: Prozess D belegt 6 MiB
●
Probeklausur Betriebssysteme 2020
31
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
C
B
B
B
B
B
B
B
B
Belegung ist nicht möglich
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
A
A
A
A
C
B
B
B
B
B
B
B
B
3 – Speicherverwaltung + virt. Speicher
b) Buddy-Verfahren
Prozess D: Prozess D belegt 6 MiB
●
Lösung:
Probeklausur Betriebssysteme 2020
32
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
Kachel 2
Kachel 3
Kontrollzustände
Kachel 1
0
Kachel 2
Kachel 3
Probeklausur Betriebssysteme 2020
33
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
Kachel 2
3
Kachel 3
Kontrollzustände
Kachel 1
0
1
Kachel 2
0
Kachel 3
Probeklausur Betriebssysteme 2020
34
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
Kachel 2
3
3
Kachel 3
Kontrollzustände
Kachel 1
0
1
0
Kachel 2
0
1
Kachel 3
Probeklausur Betriebssysteme 2020
35
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
Kachel 2
3
3
3
Kachel 3
1
Kontrollzustände
Kachel 1
0
1
0
1
Kachel 2
0
1
2
Kachel 3
0
Probeklausur Betriebssysteme 2020
36
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
5
Kachel 2
3
3
3
2
Kachel 3
1
1
Kontrollzustände
Kachel 1
0
1
0
1
2
Kachel 2
0
1
2
0
Kachel 3
0
1
Probeklausur Betriebssysteme 2020
37
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
5
5
Kachel 2
3
3
3
2
2
Kachel 3
1
1
1
Kontrollzustände
Kachel 1
0
1
0
1
2
0
Kachel 2
0
1
2
0
1
Kachel 3
0
1
2
Probeklausur Betriebssysteme 2020
38
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
5
5
5
Kachel 2
3
3
3
2
2
2
Kachel 3
1
1
1
4
Kontrollzustände
Kachel 1
0
1
0
1
2
0
1
Kachel 2
0
1
2
0
1
2
Kachel 3
0
1
2
0
Probeklausur Betriebssysteme 2020
39
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
5
5
5
5
Kachel 2
3
3
3
2
2
2
6
Kachel 3
1
1
1
4
4
Kontrollzustände
Kachel 1
0
1
0
1
2
0
1
2
Kachel 2
0
1
2
0
1
2
0
Kachel 3
0
1
2
0
1
Probeklausur Betriebssysteme 2020
40
3 – Speicherverwaltung + virt. Speicher
c) LRU (Least Recently Used)
Referenzfolge
5
3
5
1
2
5
4
6
1
Hauptspeicher
Kachel 1
5
5
5
5
5
5
5
5
1
Kachel 2
3
3
3
2
2
2
6
6
Kachel 3
1
1
1
4
4
4
Kontrollzustände
Kachel 1
0
1
0
1
2
0
1
2
0
Kachel 2
0
1
2
0
1
2
0
1
Kachel 3
0
1
2
0
1
2
Probeklausur Betriebssysteme 2020
41
4 - Ein-/Ausgabe und Dateisysteme
a) Block-Buffer-Cache
Nennen und erläutern Sie drei Ereignisse, die das Rückschreiben des Block-Buffer-Caches auslösen.
●
Probeklausur Betriebssysteme 2020
42
4 - Ein-/Ausgabe und Dateisysteme
a) Block-Buffer-Cache
Nennen und erläutern Sie drei Ereignisse, die das Rückschreiben des Block-Buffer-Caches auslösen.
Wenn kein freier Puffer mehr vorhanden ist Bei Aufruf des Systemaufrufes sync() Regelmäßig vom System
Nach jedem Schreibaufruf im Modus O_SYNC
●
– – – –
Probeklausur Betriebssysteme 2020
43
4 - Ein-/Ausgabe und Dateisysteme
b) Kontinuierliche Speicherung
Nennen Sie je einen Vor- und einen Nachteil der kontinuierlichen Speicherung von Dateien:
Probeklausur Betriebssysteme 2020
44
4 - Ein-/Ausgabe und Dateisysteme
b) Kontinuierliche Speicherung
Nennen Sie je einen Vor- und einen Nachteil der kontinuierlichen Speicherung von Dateien:
Datei wird in Blöcken mit aufsteigenden Blocknummern gespeichert
Vorteile:
Zugriff auf alle Blöcke mit minimaler Positionierungszeit
Schneller direkter Zugriff auf bestimmte Dateipositionen
Gut geeignet für nicht-modifizierbare Datenträger (z.B. optische Medien)
●
●
– – –
●
– – – – –
Nachteile:
Aufwändiges Finden von freiem, aufeinander folgendem Speicherplatz Fragmentierungsproblem
Dateigröße von neuen Dateien oft nicht im Voraus bekannt
Erweitern bestehender Daten komplex
Umkopieren notwendig, wenn hinter Daten kein freier Platz ist Probeklausur Betriebssysteme 2020
45
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
L1={1,4,7,2} L2={3,6,0} L3={5,2}
●
Bitte tragen Sie hier die Reihenfolge der gelesenen Spuren für einen I/O-Scheduler, der nach der Fahrstuhl (Elevator) Strategie arbeitet, ein:
Sofort bekannt Nach 3 Operationen bekannt
Nach 6 Operationen bekannt
Probeklausur Betriebssysteme 2020
46
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 1, 4, 7, 2
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=0
Probeklausur Betriebssysteme 2020
47
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 4, 7, 2
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=1
1
Probeklausur Betriebssysteme 2020
48
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 4, 7
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=2
1
2
Probeklausur Betriebssysteme 2020
49
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 7
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=3
1
2
4
Probeklausur Betriebssysteme 2020
50
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen:
7, 3, 6, 0 Neue Anfragen bekannt
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=3
1
2
4
Probeklausur Betriebssysteme 2020
51
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 7, 3, 0
T=4
0 1 2 3 4 5 6 7 8
Position des Kopfes
1
2
4
6
Probeklausur Betriebssysteme 2020
52
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 3, 0
T=5
0 1 2 3 4 5 6 7 8
Position des Kopfes
1
2
4
6
7
Probeklausur Betriebssysteme 2020
53
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 0
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=6
1
2
4
6
7
3
Probeklausur Betriebssysteme 2020
54
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 0, 5, 2
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=6
Neue Anfragen bekannt
1
2
4
6
7
3
Probeklausur Betriebssysteme 2020
55
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 0, 5
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=7
1
2
4
6
7
3
2
Probeklausur Betriebssysteme 2020
56
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen: 5,
Position des Kopfes
0 1 2 3 4 5 6 7 8
T=8
1
2
4
6
7
3
2
0
Probeklausur Betriebssysteme 2020
57
4 - Ein-/Ausgabe und Dateisysteme
c) I/O-Scheduling
I/O-Anfragen:
T=9
Position des Kopfes
0 1 2 3 4 5 6 7 8
1
2
4
6
7
3
2
0
5
Probeklausur Betriebssysteme 2020
58
Auswertung
Punkte zusammenzählen (soweit nach eigener Bewertung von Teilpunkten möglich)
Notenspiegel:
Punkte Note
38,5–45 1 33,5–38 2 28–33 3 22,5–27,5 4 0–22 5
●
●
Probeklausur Betriebssysteme 2020
59
Weitere Hinweise zur Vorbereitung
Inhalt der Folien lernen
Klassifizieren: Was muss ich lernen? Was muss ich begreifen? Übungsaufgaben verstehen, C und UNIX „können“
●
–
●
●
●
ergänzend Literatur zur Lehrveranstaltung heranziehen HelpDesk nutzen (Uhrzeiten und Links siehe BS-Webseite)
–
●
– –
Am besten die Aufgaben noch einmal lösen Optionale Zusatzaufgaben bearbeiten
ASSESS-System bleibt mindestens bis zur zweiten Klausur offen bei Fragen zur Korrektur melden
Probeklausur Betriebssysteme 2020
60
Empfohlene Literatur
[1] A. Silberschatz et al. Operating System Concepts. Wiley, 2004. ISBN 978-0471694663
[2] A. Tanenbaum: Modern Operating Systems (2nd ed.). Prentice Hall, 2001. ISBN 0-13-031358-0
[3] B. W. Kernighan, D. M. Ritchie. The C Programming Language. Prentice-Hall, 1988.
ISBN 0-13-110362-8 (paperback) 0-13-110370-9 (hardback)
[4] R. Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley, 2005. ISBN 978-0201433074
Viel Erfolg bei der Klausur!
Probeklausur Betriebssysteme 2020
61