1 vorlesung 6 peter b. ladkin single- und multitasking peter b. ladkin [email protected]
TRANSCRIPT
![Page 2: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/2.jpg)
2
Single Tasking● Command Interpreter (ComInt) läuft● wartet auf Tastatur-Eingabe● "liest" (parst) die Eingabe (für Prog-Name) ● Macht "Lookup" von <Prog-Start-Adresse>● Führt "JMP <Prog-Start-Adresse>" aus● Jedes Programm muss
"JMP <ComInt-Adresse>" am Ende ausführen
![Page 3: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/3.jpg)
3
Single Tasking● Einfach zu programmieren● braucht keine Clock-Interrupts● kann Busy-Wait für I/O machen (warten muss er
sowieso)● Wenn ein Program fehl schlägt, hängt der Rechner● Bekanntes Beispiel: MS-DOS
![Page 4: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/4.jpg)
4
Single Tasking
![Page 5: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/5.jpg)
5
Single-Tasking: MS-DOS● Basis für Windows-3.x, Windows-95, 98 usw.● Die "persönlichen" Versionen● Aber nicht Windows-NT● MS-DOS ist 16-Bit (im IBM-XT mit 8-Bit
Datenübertragung auf Grund des Busses der CPU)
![Page 6: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/6.jpg)
6
Multitasking● Programme laufen "gleichzeitig"● Ein Scheduler-Programm (BS) verteilt die Prozessor-
Zeit auf die laufenden Programme● Ein Programm kann also zweimal während der gleichen
Zeit ausgeführt werden● Wir sprechen nicht mehr von Programmen, sondern
besser von "Prozessen"
![Page 7: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/7.jpg)
7
Zeit-Ablauf● Clock Interrupts● Time-Slicing über den Clock Interrupt Handler● Handler
● loop if i > 0 then i <- (i-1) else Store(State);
i <- 1000 Scheduler; endloop
![Page 8: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/8.jpg)
8
Prozesse● Ein Prozess ist ein "Programm im Lauf"● Besteht aus "aktuellem Zustand" (Current State)● Current State beinhaltet:
● Werte vom PC und allen Registern● Die Werte der Programm-Variablen ● Ist das Programm Ready, Waiting, Running, Terminated?
![Page 9: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/9.jpg)
9
Process Table● Die Prozess-Zustände werden in einer Tabelle
gespeichert: Die “Process Table”● Die Process Table beinhaltet den Current State (PC
und Register-Werte) plus Status (Ready, Waiting, Running, Terminated)
● Wenn Running, Current State nicht aktuell● Wenn Terminated, Current State nicht aktuell
![Page 10: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/10.jpg)
10
Queues● Ready Prozesse müssen zugeordnet werden● Wenn ein I/O Interrupt signalisiert, dass I/O fertig ist,
wird der Handler den entsprechenden Prozess von Waiting zu Ready umstellen
● Wenn ein Prozess nur wegen Zeitablaufs unterbrochen wird, wird er als Ready gehalten
● Sonst wegen I/O als Waiting
![Page 11: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/11.jpg)
11
Ausswappen● Scheduler
● Case: timeout: Store(CurrentState,ProcTab.ReadyQ); Load(Head(ProcTab.ReadyQ) I/O wait: Store(CurrentState, ProcTab.WaitingQ) Load(Head(Processtable.ReadyQueue)
![Page 12: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/12.jpg)
12
Queues● Verwaltung von Ready-Queue ist nicht unbedingt
einfach● Ready-Prozesse könnten klassifiziert werden
● Auf der nächsten Folie:Eine 5-fache Klassifizierung
![Page 13: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/13.jpg)
13
Prozess-Klassifizierung
![Page 14: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/14.jpg)
14
Prozess-Klassifizierung● Auf der nächsten Folie:
Wie die Prozess-Tabelle mit Prioritäten, sowie auch Begründungen für Waiting-Status (auch eine Art Klassifizierung) aussieht
![Page 15: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/15.jpg)
15
Prozess-Tabelle
![Page 16: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/16.jpg)
16
Prozess-Klassifizierung● Auf der nächsten Folie:
Eine feinere Klassifizierungder Betriebssystem-Software
![Page 17: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/17.jpg)
17
Prozess-Klassifizierung
![Page 18: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/18.jpg)
18
Prozess-Klassifizierung● User benutzen Shells, Compiler, usw.● Shells, Compiler usw. benutzen Signale, Character I/O
System, File-System, usw.● Signale, Character I/O, File-System benutzen Terminal-
Kontroller, Device-Kontroller, Speicher-Management● Hierarchie von virtuellen Maschinen
(wie in Vorlesung 3 eingeführt)
![Page 19: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/19.jpg)
19
Layers
![Page 20: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/20.jpg)
20
Ready-Prozess-Auswahl● 3 Ready-Prozesse: A, B, C● Prioritäten: A:1, B:2, C:3● 3 ist höchste● Prozess mit höchster Priorität wird nach Zeitablauf als
Running ausgewählt● Konsequenz: A läuft nie - Starvation oder
Indefinite Blocking
![Page 21: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/21.jpg)
21
Probleme des Scheduling● Wir haben Starvation gesehen● Ausserdem gibt es den Deadlock -
● Zwei oder mehr Prozesse warten gegenseitig aufeinander (d.h. der eine wartet, bis der anderewas tut, und der andere wartet, bis der erste was tut)
● Die zwei größten Probleme des Scheduling● Scheduling ist nicht trivial
![Page 22: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/22.jpg)
22
Beispiel: Scheduling Policy I● Jeder Ready Prozess wird gestartet und
läuft bis zum Ende● Single-Tasking
![Page 23: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/23.jpg)
23
Beispiel: Scheduling Policy II● Jeder Prozess läuft für eine bestimmte Zeit, wird dann
ausgeswappt und wartet als Ready Prozess● Multitasking
![Page 24: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/24.jpg)
24
Scheduling Policy Auswahl● Wann ist welche Policy sinnvoll?● Policy I
● Einfache Systeme mit beschränkten Ressourcen● Ein-Benutzer Systeme● Echtzeit Systeme, in denen jeder Prozess und dessen
genauer Zeitlauf bekannt, vertraut, wichtig und Hard-Deadlined ist
● Naturwissenschaftliche Supercomputer
![Page 25: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/25.jpg)
25
Scheduling Policy Auswahl● Wann ist Policy II sinnvoll?
● General-Purpose Computer● Business Info-Systeme● WWW- und Internet-Server● Transaction-Processing
● Bank ATM● Flugkarte/Bahnfahrkarte Reservierungssystem● Allgemeine Informationssysteme - Amedeo
![Page 26: 1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de](https://reader035.vdocuments.net/reader035/viewer/2022070507/570491c61a28ab14218daefd/html5/thumbnails/26.jpg)
26
Policy II: Subpolicies● First Come First Served
● Datenstruktur: Queue/Linked-List● Shortest Job First
● Braucht Zeitschätzung / Prioritäten● Priorities
● Datenstruktur: Zuordnung / Sorting ● Multilevel Queue
● Datenstruktur: Prioritäten + Queue pro Prioritätswert