Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection...

24
Scheduling Peter Puschner Institut für Technische Informatik [email protected]

Transcript of Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection...

Page 1: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Scheduling

Peter PuschnerInstitut für Technische [email protected]

Page 2: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 2

Aufgaben des Scheduling• Bestimmt die Abarbeitungsreihenfolge der

Prozesse auf dem Prozessor• verschiedene Optimierungsziele

– Durchsatz– Prozessorauslastung– Fairness– Response Time– Einhalten von Deadlines– ...

Page 3: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 3

Schedulingebenen

CPURequests

Timeout

Ready

Ready, Suspend

Blocked, Suspend

BlockedEvent WaitEvent

Occurs

long-term

short-term

mid-term

Page 4: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 4

Schedulingebenen• Long-term Scheduling

– Kreierung von Prozessen– bestimmt Grad der Parallelität– Mix von CPU- und I/O-intensiven Prozessen

• Medium-term Scheduling– Ein- und Auslagern von Prozessen (Memory

Management)• Short-term Scheduling

– bestimmt nächsten Prozess zur Ausführung

Page 5: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 5

Short Term Scheduling• Welcher Prozess soll als nächster ausgeführt

werden?• CPU Scheduler oder Dispatcher• Aktivierung des Dispatchers, wenn

Prozessumschaltung angebracht sein kann:– System Calls und Traps– I/O-Interrupt, Signale– Uhr-Interrupt

Page 6: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 6

Scheduling-Kriterien

User-Oriented System-Oriented

Performance

Other

Response Time,Turnaround Time,Deadlines

Predictability

Throughput,Processor Utilization

Fairness,Resource Balance,Priorities

Page 7: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 7

CPU

Verwendung von PrioritätenRQ 0

RQ 1

RQ n

Preemption

Event Wait

Dispatch

• Achtung: Starvation!

Page 8: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 8

Schedulingstrategien• Selection function

Auswahl des nächsten auszuführenden Prozesses– bisherige Verweildauer– bisherige/gesamte Ausführungszeit– Fertigstellungszeitpunkt (Deadline)

• Decision mode– Non-preemptive: keine externe Unterbrechung von

Prozessen durch BS– Preemptive: Unterbrechung von Prozessen durch BS

möglich

Page 9: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 9

Task-Set für Beispiele

Arrival Time Service Time

P1

Prozess

0 3P2 2 6P3 4 4P4 6 5P5 8 2

Page 10: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 10

First Come First Served (FCFS)• Selection function: Auswahl des Prozesses, der

bereits am längsten in der Ready Queue verweilt• Decision mode: non-preemptive

0 5 10 15 20

P1P2P3P4P5

… task arrival

Page 11: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 11

First Come First Served• begünstigt:

– lange Prozesse (normalized turnaround time)– CPU-intensive Prozesse

(CPU-Monopolisierung durch Prozesse ohne I/O)• schlechte Auslastung von CPU und I/O• selten „pures“ FCFS

Page 12: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 12

Round Robin (RR, Time Slicing)• Selection function: siehe FCFS• Decision mode: preemptive• Zeitscheiben gleicher Länge werden zyklisch an

Prozesse vergeben (Clock Interrupt)

0 5 10 15 20

P1P2P3P4P5

q=1

1 2 3 2 43

32

254

543

432

325

254

543

432

32

24

4

Page 13: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 13

Round Robin• sinnvolle Zeitscheibenlänge:

– viel länger als Clock Interrupt + Scheduling– etwas länger als eine typische Interaktion

• benachteiligt I/O-intensive Prozesse– I/O intensive Prozesse schöpfen Zeitscheiben nicht

voll aus; werden während des Blockierens von CPU-intensiven Prozessen „überholt“

ðVirtual Round RobinðAuxiliary Queue mit höherer Priorität

Page 14: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 14

CPU

Virtual Round RobinTimeout

Ready

Auxiliary Queue

I/O n QueueI/O n Wait

I/OOccurs

I/O 1 QueueI/O 1 Wait

Page 15: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 15

Shortest Process Next (SPN)• Selection function: Prozess mit kürzestem

erwarteten CPU-Burst zuerst• Decision mode: non-preemptive

0 5 10 15 20

P1P2P3P4P5

Page 16: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 16

Shortest Process Next• bessere Response Times als FCFS• größere Variabilität der Response Times

– Verzögerung langer CPU-intensiver Prozesse• Probleme:

– Schätzung der Abarbeitungszeiten– Starvation langer Prozesse– nicht für interaktiven Betrieb geeignet

(CPU-intensiver Prozess, der früh ankommt, kann CPU monopolisieren)

Page 17: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 17

Shortest Remaining Time (SRT)• Selection function: wie SPN• Decision mode: preemptive• kürzere Prozesse werden fair behandelt• nicht so viele Interrupts wie bei RR• Protokollieren der Service Times notwendig• Starvation möglich

Page 18: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 18

Highest Response Ratio Next• Selection function

– RR = (w+s) / sw ... gesamte bisherige Wartezeits … geschätzte Service Time

– Auswahl des Prozesses mit größtem RR• Decision mode: non-preemptive• Eigenschaften:

– kürzere Prozesse werden fair behandelt– keine Starvation– Schätzung der Service Times notwendig

Page 19: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 19

Feedback Scheduling• Selection function: basiert auf bisheriger

Ausführungszeit– je mehr CPU Time ein Prozess bisher konsumiert hat,

desto niedriger wird seine Priorität (dafür längere Zeitscheiben)

– eigene Queue für jede Prioritätsstufe• Decision mode: preemptive• Starvation möglich

– Abhilfe: Anheben der Priorität nach best. Zeit

Page 20: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 20

CPU

CPU

CPU

Feedback Scheduling (2)RQ 0, FCFS

RQ 1, FCFS

RQ n, RR

Page 21: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 21

Real-Time Scheduling• Deadlines• „fast is not real-time“• Deadlines: hard versus soft real-time• Prozesse oft periodisch

• Scheduling: typischer Weise preemptive, statische versus dynamische Prioritäten

• Schedulability Tests: Überprüfung, ob alle Tasks rechtzeitig beendet werden können.

Page 22: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 22

Earliest Deadline First (EDF)• Selection function: Task mit frühester

Completion Deadline zuerst• Decision mode: preemptive

• Minimiert Anzahl der Deadline Misses• Schedulability Test

Task Deadline = Periode Ti, Ausführungszeit Ci

Notwendige und hinreichende Bedingung:

S Ci / Ti £ 1

Page 23: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 23

Beispiel: fixe Prioritäten vs. EDF

A1B1

AB

A2 A3 A4 A5B2

Deadlines A1 A2 A3 A4 A5B1 B2

Arrival- andExec. Times

0 5 10 15 20

A1 B1 A2 B1 A3B2

0 5 10 15 20

A4 B2 A5EDF

B1

0 5 10 15 20

Fixed PriorityB has priority

Deadline miss (A1)

A1 B1 A2 B1 A3

0 5 10 15 20

Fixed PriorityA has priority

Deadline miss (B1)

Page 24: Scheduling - Institute of Computer Engineering (E191) · Shortest Process Next (SPN) •Selection function: Prozess mit kürzestem erwarteten CPU-Burst zuerst •Decision mode: non-preemptive

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Scheduling; WS 19/20 24

Zusammenfassung• Scheduling erfolgt auf verschiedenen Ebenen• Eine Vielzahl von Kriterien bestimmen die Wahl

der Schedulingstrategie– benutzerorientiert vs. systemorientiert– quantitativ vs. qualitativ

• Schedulingstrategien– FCFS, RR, SPN, SRT, HRRN, Feedback

(Laufzeit, Verweildauer, I/O-Verhalten)– Real-Time Scheduling: EDF