Prozessverwaltung Prozess -Scheduling Round-Robin Scheduling (RR) RR - Scheduling • Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus • Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange (ready queue) werden Zeitintervalle (Quantum, Zeitscheibe) für ihre Ausführung zugeteilt. Nach Ablauf des Quantums wird dem Prozess der Prozessor entzogen und dem nächsten Prozess zugeteilt (FIFO-Scheduling + preemption) Wenn Quantum eines Prozesses abgelaufen ist, wird Prozess an das Ende der Bereitschaftsschlange angefügt (ready queue ist als FIFO-Schlange realisiert) nicht fertig RR- oder Reigen-Modell fertig ⇑ FIFO ∆ t Quantum (i.d.R. 10 ...100 ms) Realisierung über Liste der ausführbaren Prozesse, die der Scheduler zu verwalten hat P2 - P3 - P4 - P5 - P1 P1 - P2 - P3 - P4 - P5 ~> einfache Implementierung aktueller nächster Prozess Prozess a) Liste der ausführbaren Prozesse aktueller Prozess b) Liste nach Ablauf des Quantums von P1 Prof. Dr. K. Irmscher PRZ-SC-120 Prozessverwaltung Prozess -Scheduling Round-Robin Scheduling (RR) RR - Scheduling (2) Wenn Prozess blockiert (suspendiert) oder seine Ausführung beendet wird, bevor Quantum abgelaufen ist, wird ein Prozess- oder Kontextwechsel durchgeführt. Problem: Festlegung des Quantums Denn: Prozess- oder Kontextwechsel erfordert Prozessorzeit zur Verwaltung der Listen, Register, Speichertabellen. Falls Quantum • zu klein, sinkt bei häufigen Prozesswechsels die Prozessorauslas tung • zu groß, erhält man bei kurzen interaktiven Anfragen schlechte Antwortzeiten • Kompromiss: Quantum = 10 ... 100 ms Ablauf des RR-Scheduling: - Der erste Prozess der Bereitschaftsschlange erhält CPU - a) Der rechnende Prozess hat eine CPU-Burst-Zeit < Zeitscheibe: --> CPU wird frei und Prozess wird aus Bereitschaftsschlange entfernt b) Der rechnende Prozess hat eine CPU-Burst-Zeit > Zeitscheibe: --> nach Ablauf der Zeitscheibe wird ein Interrupt verursacht, der an das Betriebs system weitergegeben wird. Das Betriebssystem führt einen Kontextwechsel aus und hängt den gerade ausgeführten Prozess an das Ende der Bereitschaftsschlange - Der nächste Prozess in der Bereitschaftsschlange erhält CPU Prof. Dr. K. Irmscher PRZ-SC-130 1 Prozessverwaltung Prozess -Scheduling Round-Robin Scheduling (RR) RR - Scheduling (3) Beispiel: mit Zeitscheiben der Länge 4 Prozess P1 P2 P3 CPU -Zeit Wartezeiten 24 10 3 4 3 7 Ankunftsreihenfolge: P1, P2, P3 Gantt- P1 Diagramm 0 P2 P3 4 7 P1 10 P1 14 P1 18 P1 22 P1 26 30 10 + 4 + 7 Mittlere Wartezeit : Tw = =7 3 Eigenschaften: • Bei n Prozessen in der Bereitschaftsschlange und Zeitscheiben der Länge q erhält 1 jeder Prozess ein n -tel der CPU-Zeit in Stücken von q Zeitscheiben Kein Prozess muss länger als (n-1) . q Zeiteinheiten warten • Für unendlich große Zeitscheiben degeneriert RR-Scheduling zu FCFS-Scheduling • Für sehr kleine Zeitscheiben (1 µs) heißt RR-Scheduling auch Prozessor-Sharing Prof. Dr. K. Irmscher PRZ-SC-140 Prozessverwaltung Prozess -Scheduling Round-Robin Scheduling (RR) RR - Scheduling (4) Eigenschaften (Fortsetzung): • Zur Bestimmung der Zeitscheiben sollte die Zeit für einen Kontextwechsel berücksichtigt werden Regel: Zeitscheibe sollte etwa 10 mal so lang wie ein Kontextwechsel sein • Die Wahl von größeren Zeitscheiben führt i.allg. zu besseren Turnaround-Zeiten Beispiel: Drei Prozesse (P1, P2, P3) sind zum Zeitpunkt 0 verfügbar, mit jeweils 10 ms CPU-Burst-Zeit 1) Zeitscheibe 10 ms P2 P1 0 10 P3 20 30 10 + 20 + 30 Mittlere Turnaround-Zeit: TV = = 20 ms 3 2) Zeitscheibe 1 ms P1 P2 P3 P1 P2 P3 0 1 2 3 4 5 ... Mittlere Turnaround-Zeit: TV = P1 P2 P3 27 28 29 30 6 28 + 29 + 30 3 = 29 ms Bemerkung: Wird die Zeit für den Kontextwechsel einbezogen, so wächst die mittlere Turnaround-Zeit für kleinere Zeitscheiben Prof. Dr. K. Irmscher PRZ-SC-150 2 Prozessverwaltung Prozess -Scheduling Prioritäts-Scheduling Prioritäten-gesteuertes Scheduling Entworfen auch für interaktive Systeme. Aber: während bei RR alle Prozesse gleichwichtig sind, wird beim Prioritäts-Scheduling jedem Prozess eine Priorität zugewiesen. Es wird der ausführbereite Prozess mit der höchsten Priorität ausgeführt Idee: • jeder Prozess bekommt eine Priorität (Wichtigkeit, Burst-Zeit, Speicheranforderung) • Prozess mit höchster Priorität erhält CPU zugeordnet 1 (Spezialfall SJF: Priorität = Burst − Zeit ) • Prozesse mit gleicher Priorität werden FCFS-scheduled Beispiel: Reihenfolge des Erzeugens der Prozesse zum Zeitpunkt 0: P1, P 2, P3, P4, P5 Gantt-Diagramm a) Ausführung P3 vor P1 Prozess P1 P2 P3 P4 P5 CPU -Burst-Zeit Priorität 10 -3 1 -1 2 -3 1 -4 5 -2 P2 0 b) Ausführung P1 vor P3 P5 1 P2 0 P3 6 P5 1 P1 19 TW = 19 TW = 18 P1 6 Mittlere Wartezeit: P4 8 P3 16 P4 18 -1: höhere Priorität als - 2 usw. 1 + 6 + 8 + 18 33 = = 6,6 5 5 Mittlere Wartezeit: 1 + 6 + 16 + 18 41 = = 8,2 5 5 Prof. Dr. K. Irmscher PRZ-SC-160 Prozessverwaltung Prozess -Scheduling Prioritäts-Scheduling Prioritäten-gesteuertes Scheduling (2) Um zu verhindern, dass Prozesse mit hoher Priorität zu lange aus geführt werden, erniedrigt der Scheduler die Priorität des gerade ausgeführten Prozesses bei jeder Uhrunterbrechung. Falls dabei die Priorität unter die eines anderen Prozesses gelangt, wird ein Prozesswechsel durchgeführt Zuweisung der Prioritäten - statisch, z.B. durch Operationen von außen oder abhängig vom Dienstgrad (“Militär”) Unix-Kommando nice: damit kann jeder Benutzer die Priorität seiner Prozesse freiwillig erniedrigen - dynamisch: damit bestimmte Ziele erreichbar z.B. Prozesse mit vielen I/O-Operationen hohe Priorität (geben CPU schnell frei, sonst müssen sie zu lange auf CPU warten) Prioritätsklassen Prozesse häufig in Prioritäts -Klassen eingeteilt, wobei • Prioritäts -Scheduling zwischen den Klassen und • Round-Robin-Scheduling innerhalb jeder Klasse Prof. Dr. K. Irmscher PRZ-SC-170 3 Prozessverwaltung Prozess -Scheduling Prioritäts-Scheduling Prioritäten-gesteuertes Scheduling (3) Beispiel: 4 Prioritätsklassen (PK) Priorität 4 ausführbare Prozesse (höchste Priorität) Priorität 3 Priorität 2 Priorität 1 (niedrigste Priorität) Algorithmus: Solange ausführbare Prozesse in Prioritätsklasse PK4, wird jeder dieser Prozesse gemäß Round-Robin für ein Quantum ausgeführt Wenn PK4 abgeschlossen, dann PK3 ausgeführt, usw. Problem: Falls keine Prioritätsanpassung durchgeführt wird, können Prozesse in niedrigen PK nicht ausgeführt werden Prof. Dr. K. Irmscher PRZ-SC-180 Prozessverwaltung Prozess -Scheduling Weitere Scheduling-Algorithmen Mehrere Schlangen Prioritäts -Scheduler (z.B. im CTSS, Corbato 1962): Problem sehr langsamer Prozesswechsel, insbes. wenn nur 1 Prozess im Hauptspeicher gehalten werden kann (zeitaufwendiges Ein/Auslagern). Besser: rechenintensiven Prozessen ist ein großes Quantum zu geben führt aber zu schlechten Antwortzeiten Deshalb: Prioritätsklassen eingeführt höchste Klasse: 1 Quantum zweithöchste Klasse: 2 Quanten usw. Falls ein Prozess die zugeteilten Quanten aufgebraucht hat, wird er eine Klasse heruntergestuft Durch das Herunterstufen wird Prozessorzeit für kurze interaktive Prozesse gespart. Viele solcher Algorithmen für Einstufung von Prozessen in Prioritätsklassen entwickelt, u.a. XDS 940 System: Lampon, 1968, Berkley * 4 Prioritätsklassen: Terminal, I/O, kurzes Quantum, langes Quantum * Falls ein wartender Prozess (z.B. Warten auf Eingabe vom Terminal) aufgeweckt wird, wird er in höchste Prioritätsklasse (Terminal) eingeordnet. Ein Prozess, der auf Festplattenzugriff gewartet hat, wird in 2. Klasse eingestuft. Falls Prozess immer noch ausgeführt wird, wenn sein Quantum abgelaufen ist, erhält er die Klasse 3. Wenn er zu oft sein Quantum aufgebraucht hat unterste Klasse Prof. Dr. K. Irmscher PRZ-SC-190 4 Prozessverwaltung Prozess -Scheduling Weitere Scheduling-Algorithmen Garantiertes Scheduling Den Benutzern werden Versprechen über die Prozessorzeit gemacht. Einfaches Beispiel: n Benutzer jeder Benutzer 1 n der Prozessorzeit • System muss nun überwachen, wieviel Prozessorzeit ein Benutzer seit Beginn seiner Sitzung erhalten hat und wie lange seine Sitzung bereits dauert. • Somit kann Verhältnis zwischen verbrauchter und zugesprochener Prozessorzeit einfach berechnet werden; z.B. Verhältnis 0.5 bedeutet, dass Prozess nur die Hälfte der Zeit in Anspruch genommen hat, die ihm zugeteilt ist. Algorithmus besteht nun darin, den Prozess mit dem kleinsten Verhältnis so lange aus zuführen, bis das Verhältnis über das des nächsten Konkurrenten gestiegen ist. Ähnliche Idee in Realzeit-Systemen angewandt, bei denen absolute Zeitschranken eingehalten werden müssen. Es wird der Prozess als erster gestartet, bei dem die Gefahr der Zeitschrankenüberschreitung am größten ist. Ein Prozess, der in kurzer Zeit beendet sein muss, erhält eine höhere Priorität als ein Prozess, der länger laufen darf Prof. Dr. K. Irmscher PRZ-SC-200 Prozessverwaltung Prozess -Scheduling Weitere Scheduling-Algorithmen Mehrstufiges Scheduling Bisher vorausgesetzt, dass alle ausführbaren Prozesse im Hauptspeicher sind. Falls nicht genügend Hauptspeicher ~> Auslagerung auf Hintergrundspeicher erforderlich ~> Prozesswechsel ~> Kontextwechsel ~> große Auswirkung auf Scheduling Idee: - Prozesse und Bereitschaftsschlange werden in Gruppen partitioniert; jede Gruppe wird getrennt behandelt - Zusätzliches Scheduling zwischen den Gruppen - Gruppen werden nicht statisch (nicht fest) angelegt; Prozesse können die Gruppe auch wechseln Alterung: Prozesse, die zu lang in einer Schlange mit niedriger Priorität warten, ohne die CPU zu bekommen, werden im Laufe der Zeit in eine Schlange höherer Priorität verschoben Prof. Dr. K. Irmscher PRZ-SC-210 5 Prozessverwaltung Prozess -Scheduling Weitere Scheduling-Algorithmen Mehrstufiges Scheduling (2) 2-stufiges Scheduling: Praktisch orientierter Ansatz, um ausgelagerte Prozesse zu behandeln - Es sei eine Teilmenge der ausführbaren Prozesse bereits in Haups peicher geladen (Abb. a). Scheduler wählt aus dieser Teilmenge nur eine gewisse Zeit lang Prozesse aus. In bestimmten Zeitabständen entfernt der Scheduler der oberen Stufe Prozesse, die lang genug im Hauptspeicher waren und lädt Prozesse vom Hintergrundspeicher. - Falls Austausch ausgeführt (Abb. b), wählt Scheduler der unteren Stufe wiederum nur Prozesse aus, die sich im Hauptspeicher befinden. - Der Scheduler der unteren Stufe wählt zwischen den im Hauptspeicher befindlichen Prozessen aus, während Scheduler der oberen Stufe Prozesse zwischen Haupt- und Hintergrundspeicher transportiert a, b e, f b, c Prozesse im c, d Hauptspeicher g, h f, g e, f g, h (a) Prozesse auf der Festplatte a, b c, d a, d e, h (c) (b) Abb.: Das 2-stufige Scheduling transportiert Prozesse zwischen Haupt - und Hintergrundspeicher und wählt einen Prozess zur Ausführung aus den Prozessen aus, die sich im Hauptspeicher befinden. (a), (b) und (c) kennzeichnen die 3 verschiedenen Zeitpunkte Prof. Dr. K. Irmscher PRZ-SC-220 Prozessverwaltung Prozess -Scheduling Weitere Scheduling-Algorithmen Mehrstufiges Scheduling (3) zu: 2-stufiges Scheduling: Mögliche Kriterien, nach denen der Scheduler der oberen Stufe seine Entscheidungen treffen kann: * Wie lange befindet sich ein Prozess im Hauptspeicher- bzw. Hintergrundspeicher ? * Wieviel Prozessorzeit hat ein Prozess verbraucht ? * Wie hoch ist die Priorität des Prozesses ? Dabei angewandte Verfahren: • Round-Robin • Prioritäts -Scheduling • andere Verfahren Beispiel: - 3 Schlangen (Bereitschaftsschlange) - Scheduling zwischen den Schlangen mit (absoluten) Prioritäten Schlange 1 < CPU -Burst-Zeit = 8 ms RR-Scheduling 8 < CPU -Burst-Zeit <= 16 ms RR-Scheduling Schlange 2 CPU -Burst-Zeit = 16 ms Schlange 0 < Prof. Dr. K. Irmscher FCFS-Scheduling PRZ-SC-230 6