CS计算机代考程序代写 cache Betriebssysteme (BS)

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