BS Übung 08 (Stefan Bosse) [17.01.2025] |
Punkte: | Total | /2 | 1. | /2 | 2. | /2 | 3. | /2 | 4. | /2 | 5. | /2 | 6. | /2 | 7. | /2 | 8. | /2 |
In dieser Übing soll der Prozesswechsel in einem Betriebssystem studiert werden.
Das Scheduling und die Prozessausführung wird in Zeitliniendiagrammen beschrieben. Es gelten folgende Farben:
In einem Zeitschritt (Spalte) kann der Zustand von jedem Prozess durch Auswahl der Farbe aus der Farbpalette ausgewählt und durch Klicken im Feld gesetzt werden.
Im OS Simulator werden Prozessorschritte (atomare Ausführung) als Bursts bezeichnet.
Aufgabe 1. Zeichne das Zeitdiagramm für vier Prozesse mit folgenden Prozessorschritten ("Burst") Sequenzen die parallel ohne Scheduling ausgeführt werden.
P1: 5 Prozessorzyklen, Start bei T=3
P2: 4 Prozessorzyklen, Start bei T=4
P3: 7 Prozessorzyklen, Start bei T=2
P4: 3 Prozessorzyklen, Start bei T=1
$ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
P1 | W | W | W | G | G | G | G | G | W | W |
P2 | W | W | W | W | G | G | G | G | W | W |
P3 | W | W | G | G | G | G | G | G | G | W |
P4 | W | G | G | G | W | W | W | W | W | W |
Es sollen vier Prozessauswahlstrategien untersucht werden:
Ab jetzt bestimmt der Scheduler wann Prozesse gestartet werden (d.h. grundsätzlich beginnend mit Zeitschritt 0)
Aufgabe. Erkläre in jeweils einem Satz die grundlegende Funktiosnweise dieser Strategien.
Wähle im OS Simulator das erste FCFS/FIDO Beispiel aus. Es gibt 4 Prozesse mit den Burstsequenzen wie oben beschrieben. Alle Prozesse werden bereits bei T = 0 berücksichtigt (d.h. die “Submission” ist auf 0 gesetzt); auch in Aufgabe 3 (und Aufgabe 5) sollen alle Prozesse bei T = 0 beginnen (Ready).
Tipp: Es gibt an verschiedenen Stellen "Fragezeichen" die ein Fenster mit Erklärungen und Hilfen öffnen!
Aufgabe 3. Öffne das "Simple FIFO Scheduling" Beispiel im OS Simulator (CPU/Processes). Es gibt wie oben beschrieben 4 Prozesse. Führe das Multiprozesssystem schrittweise aus und notiere im nachfolgenden Timeline Diagramm die Ausführung der Prozesse (grün). Führe dann das 4-Prozesssystem mit der SJF und RR Strategie aus (weiterhin keine E/A) und notiere die Prozessausführung. Ein rechenbereiter Prozess wird mit blau gekennzeichnet.
Ein 4-Prozesssystem mif FCFS/FIFO ohne E/A UnterbrechungFrage 4. Welche Unterschiede lassen sich feststellen?
Bisher hatten die Prozesse (von sich aus) keine Unterbrechnung. Jetzt soll der Einfluss von E/A (also Warten auf Ereignisse) untersucht werden.
Im Simulator Setup kann Multiprogramming ein- und ausgestellt werden. Ist es ausgeschaltet wird ein Prozess bis zur Terminierung ausgeführt, auch wenn es Wartezeiten gibt.
Aufgabe 5. Ändere das 4-Prozessystem wie folgt ab (mit rechter Maustaste das Kontextmenü eines Prozesses öffnen und "update" ausführen. Führe dann das 4-Prozesssystem mit der FCFS, SJF, Prio und RR Strategie aus (jetzt mit E/A) und notiere die Prozessausführung. Das Warten wird mit rot gekennzeichnet, ein rechenbereiter Prozess mit blau.
P1: 5 Prozessorzyklen, CICIC
P2: 4 Prozessorzyklen, CICC
P3: 7 Prozessorzyklen, CCIICCC
P4: 3 Prozessorzyklen, CCC
(C: CPU, I: I/O)
Ein 4-Prozesssystem mif FCFS/FIFO mit E/A UnterbrechungFrage 6. Welche Unterschiede lassen sich feststellen?
basekernel/include/kernel/config.h
muss KSHELL_SERIAL
definiert werden damit die Kernel Shell an die serielle Schnittstelle angebunden wird:#define KSHELL_SERIAL
basekernel.iso
muss sich im gleichen Verzeichnis befinden):nw vm86.nw
kernel/event_queue.c
kernel/serial.c
kernel/process.c
Frage 7.
event_queue_read_raw
wird zuerst interrupt_block
und dann tiefer process_wait
aufegrufen wenn keine Daten verfügbar sind. Das führt zur Prozessblockierung (studiere den Kode von process_wait
in process.c. Wie kann es sein dass Interrupts wieder event_queue_post
aufrufen können wenn doch Interrupt abgeschlaltet sind?process_wait
wieder eingeschaltet.Frage 8.