(RR) Round-Robin Scheduling

Transcription

(RR) Round-Robin Scheduling
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

Documents pareils