Betriebssysteme Theorie

Ähnliche Dokumente
Betriebssysteme 1. Einführung. Scheduling worum geht es? Scheduler: Gliederung

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4.

5. Foliensatz Betriebssysteme und Rechnernetze

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Lösung von Übungsblatt 8

Systeme 1. Kapitel 5. Scheduling

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

Threads and Scheduling

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Übung zu Grundlagen der Betriebssysteme. 7. Übung

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

a) Welches der folgenden Zeichen weist im Shell-Prompt darauf hin, dass Sie mit normalen Benutzerrechten (also nicht als root) arbeiten?

Übersicht. Monoprozessor-Scheduling. Einführung Anforderungen und Thread-Typen Zustandsmodelle

Proseminar KVBK : Scheduler unter Linux

CPU-Scheduling - Grundkonzepte

8. Foliensatz Betriebssysteme

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Betriebssysteme. Teil 13: Scheduling

Single- und Multitasking

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Dämon-Prozesse ( deamon )

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

5) Realzeitscheduling

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Betriebssysteme (BTS)

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

Immediate Priority Ceiling

Übungen zur Vorlesung Realzeitsysteme

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Hausübung 2. Konzepte und Methoden der Systemsoftware. Aufgabe 1: Einfache Schedulingstrategien. SoSe bis

Arbeitsgruppe ESS Jun.-Prof. Dr. Sebastian Zug. Technische Informatik II (TI II) (5) Scheduling. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen CPU Burst / I/O Burst

Technische Informatik II. SoSe Jörg Kaiser IVS EOS

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

B.5 Prozessverwaltung B.5. Prozessverwaltung Prof. Dr. Rainer Manthey Informatik II 1

Ausgewählte Kapitel eingebetteter Systeme

Echtzeitsysteme: Grundlagen. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Grundlagen Rechnerarchitektur und Betriebssysteme

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Grundlagen der Informatik für Ingenieure I. 5. Prozessverwaltung - Einführung

Der Scheduler von Windows 2000 Konzepte und Strategien

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

mathematik und informatik

RTOS Einführung. Version: Datum: Autor: Werner Dichler

8. Vorlesung Betriebssysteme

Prozesszustände (1a)

3. Scheduler und Schedulingstrategien

5 Kernaufgaben eines Betriebssystems (BS)

Operating System Design - Now and Then. Christian Behnert Proseminar Technische Informatik FU Berlin

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Round-Robin Scheduling (RR)

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Betriebssysteme (BS)

> Übung Betriebssysteme Globalübung 3 Michel Steuwer Wintersemester 2012/13

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Teil 3: Konzepte von Betriebssystemen

Übung Betriebssysteme 11

Transkript:

Betriebssysteme Theorie SS 2012 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz C (08.04.2012) Scheduler 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-1

Gliederung Was ist Scheduling? Motivation Kooperatives / präemptives Scheduling CPU- und I/O-lastige Prozesse Ziele des Scheduling (abhängig vom BS-Typ) Standard-Scheduling-Verfahren 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-2

Einführung 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-3

Scheduling worum geht es? Multitasking: Mehrere Prozesse konkurrieren um Betriebsmittel Betriebssystem verwaltet die Betriebsmittel Rechenzeit auf dem Prozessor Scheduler entscheidet: Welchen Prozess wann ausführen? Ausführreihenfolge entscheidend für Gesamt-Performance des Betriebssystems 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-4

Scheduling: Prozess auswählen Zustandsübergänge 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-5

Wann wird Scheduler aktiv? Neuer Prozess entsteht (fork) Aktiver Prozess blockiert wegen I/O-Zugriff Blockierter Prozess wird bereit Aktiver Prozess endet (exit) Prozess rechnet schon zu lange Interrupt tritt auf 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-6

Unterbrechendes Scheduling Prozess-Unterbrechung möglich? Kooperatives Scheduling: Prozess rechnet so lange, wie er will; bis zum nächsten I/O-Aufruf oder bis exit() Scheduler wird nur bei Prozess-Blockieren oder freiwilliger CPU-Aufgabe aktiv Präemptives (unterbrechendes) Scheduling: Timer aktiviert regelmäßig Scheduler, der neu entscheiden kann, wo es weiter geht 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-7

Prozesse: I/O- oder CPU-lastig I/O-lastig: Prozess hat zwischen I/O-Phasen nur kurze Berechnungsphasen (CPU) CPU-lastig: warten auf I/O (I/O Burst) Prozess hat zwischen I/O-Phasen lange Berechnungsphasen rechnen (CPU Burst) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-8

Häufige Prozesswechsel? Faktoren Zeit für Kontext-Switch: Scheduler benötigt Zeit, um Prozesszustand zu sichern verlorene Rechenzeit Wartezeit der Prozesse: Häufigere Wechsel erzeugen stärkeren Eindruck von Gleichzeitigkeit 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-9

Ziele des Scheduling (1) Aus Anwendersicht [A1] Ausführdauer: Wie lange läuft der Prozess insgesamt? [A2] Reaktionszeit: Wie schnell reagiert der Prozess auf Benutzerinteraktion? [A3] Deadlines einhalten [A4] Vorhersehbarkeit: Gleichartige Prozesse sollten sich auch gleichartig verhalten, was obige Punkte angeht [A5] Proportionalität: Einfaches geht schnell 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-10

Ziele des Scheduling (2) Aus Systemsicht [S1] Durchsatz: Anzahl der Prozesse, die pro Zeit fertig werden [S2] Prozessorauslastung: Zeit (in %), die der Prozessor aktiv war [S3] Fairness: Prozesse gleich behandeln, keiner darf verhungern [S4] Prioritäten beachten [S5] Ressourcen gleichmäßig einsetzen 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-11

[A1] Ausführdauer Wie viel Zeit vergeht vom Programmstart bis zu seinem Ende? n Prozesse p1 bis p n starten zum Zeitpunkt t 0 und sind zu den Zeitpunkten t 1 bis t n fertig Durchschnittliche Ausführdauer: 1/n i (t i t 0 ) Abhängig von konkreten Prozessen; Berechnung nur für Vergleich verschiedener Scheduling-Verfahren sinnvoll 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-12

[A2] Reaktionszeit Wie schnell reagiert das System auf Benutzereingaben? Benutzer drückt Taste, klickt mit Maus etc. und wartet auf eine Reaktion Wie lang ist die Zeit zwischen Auslösen des Interrupts und Aktivierung des Prozesses, der die Eingabe auswertet? Toleranz bei langen Wartezeiten gering; schon 2 4 Sekunden kritisch, darüber inakzeptabel 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-13

[A3] Deadlines Hält das System Deadlines ein? Realtime-Systeme: besondere Ansprüche Prozesse müssen in vorgegebener Zeit ihre Aufgaben erledigen, also ausreichend und rechtzeitig Rechenzeit erhalten Wie oft werden Deadlines nicht eingehalten? Optimiere (prozentualen) Anteil der eingehaltenen Deadlines 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-14

[A4] Vorhersehbarkeit Ähnliches Verhalten ähnlicher Prozesse? Intuitiv: Gleichartige Prozesse sollten sich auch gleichartig verhalten, d. h. Ausführdauer und Reaktionszeit immer ähnlich Unabhängig vom sonstigen Zustand des Systems Schwierig, wenn das System beliebig viele Prozesse zulässt Beschränkungen? 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-15

[A5] Proportionalität Vorgänge, die einfach sind, werden schnell erledigt Es geht um das (evtl. falsche) Bild, das Anwender sich von technischen Abläufen machen Benutzer akzeptiert Wartezeit eher, wenn er den zugrunde liegenden Vorgang als komplex einschätzt 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-16

[S1] Durchsatz Terminierende Prozesse Anzahl der Prozesse, die pro Zeiteinheit (z. B. pro Stunde) fertig werden, sollte hoch sein Misst, wie viel Arbeit erledigt wird Abhängig von konkreten Prozessen; Berechnung nur für Vergleich verschiedener Scheduling-Verfahren sinnvoll 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-17

[S2] Prozessorauslastung CPU immer gut beschäftigt halten Anteil der Taktzyklen, in denen die CPU nicht idle war Interessanter Faktor, wenn Rechenzeit sehr wertvoll ist (kommerzielles Rechenzentrum) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-18

[S3] Fairness Alle Prozesse haben gleiche Chancen Jeder Prozess sollte mal drankommen (kein Verhungern, engl. process starvation) Keine großen Abweichungen bei den Wartezeiten und Ausführdauern Falls Prozess-Prioritäten: manche sind gleicher 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-19

[S4] Prioritäten Verschieden wichtige Prozesse auch verschieden behandeln Prioritätsklassen: Prozesse mit hoher Priorität bevorzugt behandeln Dabei verhindern, dass nur noch Prozesse mit hoher Priorität laufen (und alles andere steht) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-20

[S5] Ressourcen-Balance BS verwaltet die Betriebsmittel... Grundidee des BS: alle Ressourcen gleichmäßig verteilen und gut auslasten CPU-Scheduler hat auch Einfluss auf (un)gleichmäßige Auslastung der I/O-Geräte Prozesse bevorzugen, die wenig ausgelastete Ressourcen nutzen wollen 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-21

Anforderungen an das Betriebssystem (1) Drei Kategorien Stapelverarbeitung Interaktives System Echtzeitsystem Immer wichtig: S3 Fairness S4 Prioritäteneinsatz S5 Ressourcen-Balance 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-22

Anforderungen an das Betriebssystem (2) Stapelverarbeitung S3 Fairness S4 Prioritäteneinsatz S5 Ressourcen-Balance S1 Durchsatz A1 Ausführdauer S2 Prozessor-Auslastung 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-23

Anforderungen an das Betriebssystem (3) Interaktives System S3 Fairness S4 Prioritäteneinsatz S5 Ressourcen-Balance A2 Reaktionszeit A5 Proportionalität 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-24

Anforderungen an das Betriebssystem (4) Echtzeitsystem S3 Fairness S4 Prioritäteneinsatz S5 Ressourcen-Balance A3 Deadlines A4 Vorhersehbarkeit 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-25

Scheduler für Stapelverarbeitung (Batch-Systeme) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-26

Stapelverarbeitung (Batch) Eigenschaften der Stapelverarbeitung Nicht interaktives System (keine normalen Benutzerprozesse) Jobs werden über Job-Verwaltung abgesetzt; System informiert über Fertigstellung Typische Aufgaben: Lange Berechnungen, Kompiliervorgänge 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-27

Stapelverarbeitung (Batch) Historisch: Batch-Betrieb mit Lochkarten Programm-Code und Daten auf Lochkarten Keine I/O (keine Geräte außer Kartenleser, Drucker) Kartenstapel (engl.: batch) legt Reihenfolge fest Programm-Code von Karten lesen Daten von Karten lesen Berechnung durchführen Ergebnis auf Karten stanzen oder drucken Nächster Job Bild: http://www.fao.org/docrep/x5738e/x5738e0h.htm 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-28

Stapelverarbeitung (Batch) Moderne Batch-Systeme Normale Rechner (mit Platten, Netzwerk etc.) Kein interaktiver Betrieb (kein Login etc.) Job-Management-Tool nimmt Jobs an Long term scheduler entscheidet, wann ein Job gestartet wird evtl. basierend auf Informationen über Ressourcenverbrauch und erwartete Laufzeit des Programms 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-29

Stapelverarbeitung (Batch) Scheduling-Verfahren für Batch-Betrieb First Come, First Served (FCFS) Shortest Job First (SJF) Shortest Remaining Time Next Priority Scheduling 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-30

First Come, First Served (FCFS) Einfache Warteschlange Neue Prozesse reihen sich in Warteschlange ein Scheduler wählt jeweils nächsten Prozess in der Warteschlange Prozess arbeitet, bis er fertig ist (kooperatives Scheduling) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-31

FCFS-Beispiel Drei Prozesse mit Rechendauern T1: 15 Takte T2: 4 Takte T3: 3 Takte Durchschnittliche Ausführdauer: a) (15+19+22) / 3 = 18,67 b) ( 3+ 7+22) / 3 = 10,67 c) ( 3+18+22) / 3 = 14,33 a) 15 Takte 4 Takte 3 T. b) 3 T. 4 Takte 15 Takte c) 3 T. 15 Takte 4 Takte 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-32

FCFS: Gut für lange Prozesse FCFS bevorzugt lang laufende Prozesse Beispiel: 4 Prozesse W, X, Y, Z W Prozess Ankunftzeit Service Time T s Startzeit Endzeit Turnaround T r (Endzeit- T r /T s (Rechenzeit) Ankunftzeit) W 0 1 0 1 1 1,00 X 1 100 1 101 100 1,00 Y 2 1 101 102 100 100,00 Z 3 100 102 202 199 1,99 X Y Z 0,1,2,3 101,102 200,202 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-33

FCFS: CPU- vs. I/O-lastige Prozesse FCFS bevorzugt CPU-lastige Prozesse Während CPU-lastiger Prozess läuft, müssen alle anderen Prozesse warten I/O-lastiger Prozess kommt irgendwann dran, läuft nur sehr kurz und muss sich dann wieder hinten anstellen Ineffiziente Nutzung sowohl der CPU als auch der I/O-Geräte 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-34

Shortest Job First (SJF) Keine Unterbrechungen (wie FCFS) Nächste Rechendauer (Burst) aller Prozesse bekannt oder wird geschätzt Strategie: Führe zunächst den Prozess aus, der am kürzesten laufen wird Minimiert die durchschnittliche Laufzeit aller Prozesse Prinzip war schon in FCFS-Beispiel erkennbar 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-35

SJF-Beispiel Im Beispiel von der FCFS-Folie: Ausführreihenfolge b) entspricht SJF a) 15 Takte 4 Takte 3 T. b) 3 T. 4 Takte 15 Takte c) 3 T. 15 Takte 4 Takte 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-36

SJF-Eigenschaften + [A2] Reaktionszeit: insgesamt deutlich besser, aber Varianz größer (stärkere Ausrutscher), deswegen: [A4] Vorhersehbarkeit schlecht 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-37

SJF-Eigenschaften Generelles Problem: Woher wissen, wie lange die Prozesse laufen? Batch-System; Programmierer muss Laufzeit schätzen Bei grober Fehleinschätzung: Job abbrechen System, auf dem immer die gleichen / ähnliche Jobs laufen Statistiken führen Interaktive Prozesse: Durchschnitt der bisherigen Burst-Längen berechnen Ohne diese Information ist dieses Scheduling- Verfahren nur ein theoretisches 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-38

Burst-Dauer-Prognose (1) Einfachste Variante: Mittelwert n S n 1 = 1 n i=1 T i = 1 n T n n 1 n S n mit: T i : Dauer des i-ten CPU-Burst des Prozess S i : Vorausgesagte Dauer des i-ten CPU-Burst S 1 : Vorausgesagte Dauer des 1. CPU-Burst (nicht berechnet) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-39

Burst-Dauer-Prognose (2) Exponentieller Durchschnitt S n 1 = T n 1 S n α: Gewicht zwischen 0 und 1 Beispiel: α=0,8: S 2 =0,8T 1 0,2 S 1 S 3 =0,8 T 2 0,2 S 2 =0,8T 2 0,2 0,8T 1 0,2 S 1...=0,8 T 2 0,16T 1 0,04 S 1 n S = n 1 i=0 1 n i T i mit T 0 :=S 1 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-40

Burst-Dauer-Prognose (3) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-41

Burst-Dauer-Prognose (4) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-42

Shortest Remaining Time (SRT) Ähnelt SJF, aber: präemptiv (mit Unterbrechungen) Regelmäßig Neuberechnung, wie viel Restzeit die Prozesse noch benötigen werden Scheduler prüft Reihenfolge immer, wenn ein neuer Job erzeugt wird Für kürzeren (auch neuen) Job wird der aktive unterbrochen Wie bei SJF gute Laufzeitprognose nötig 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-43

SRT-Beispiel Altes FCFS-Beispiel: SRT unterbricht jetzt X: Denn Y kommt zwar später, ist aber kürzer W Prozess Ankunftzeit Service Time T s Startzeit Endzeit Turnaround T r (Endzeit- T r /T s (Rechenzeit) Ankunftzeit) W 0 1 0 1 1 1,00 X (1) 1 100 1 2 (*) Y 2 1 2 3 1 1,00 X (2) 3 102 102-1=101 1,01 Z 3 100 102 202 199 1,99 YX Y 0,1,2,3 101,102 200,202 Z 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-44

SJF vs. SRT Vorsicht (auch für Prüfung): SJF und SRT werden oft verwechselt. SJF < SRT (SJF ist i.d.r. schlechter als SRT, weil es keine Unterbrechungen kennt) dieser Vergleich gilt auch lexikalisch (Eselsbrücke) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-45

Scheduler für interaktive Systeme 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-46

Interaktive Systeme Typisch: Interaktive und Hintergrund- Prozesse Desktop- und Server-PCs Eventuell mehrere / zahlreiche Benutzer, die sich die Rechenkapazität teilen Scheduler für interaktive Systeme prinzipiell auch für Batch-Systeme brauchbar (aber nicht umgekehrt) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-47

Interaktive Systeme Scheduling-Verfahren für interaktive Systeme Round Robin Prioritäten-Scheduler Lotterie-Scheduler 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-48

Round Robin / Time Slicing (1) Wie FCFS aber mit Unterbrechungen Alle bereiten Prozesse in einer Warteschlange Jedem Thread eine Zeitscheibe (quantum, time slice) zuordnen Ist Prozess bei Ablauf der Zeitscheibe noch aktiv, dann: Prozess verdrängen (preemption), also in den Zustand bereit versetzen Prozess ans Ende der Warteschlange hängen Nächsten Prozess aus Warteschlange aktivieren P3 P4 c P2 P5 P1 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-49

Round Robin (2) Blockierten Prozess, der wieder bereit wird, hinten in Warteschlange einreihen Kriterien für Wahl des Quantums: Größe muss in Verhältnis zur Dauer eines Context Switch stehen Großes Quantum: evtl. lange Verzögerungen Kleines Quantum: kurze Antwortzeiten, aber Overhead durch häufigen Context Switch 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-50

Round Robin (3) Oft: Quantum q etwas größer als typische Zeit, die das Bearbeiten einer Interaktion benötigt a) Interaktion beendet anderer Prozess b) anderer Prozess anderer Prozess Interaktion beendet 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-51

Round-Robin-Beispiel Szenario: Drei Prozesse FCFS (einfache Warteschlange, keine Unterbrechung) Round Robin mit Quantum 2 Round Robin mit Quantum 5 FCFS RR, q=2 RR, q=5 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-52

Round Robin: I/O- vs. CPU-lastig Idealer Verlauf (wenn jeder Prozess exklusiv läuft) P1 (I/O-lastig) I I I I I I I I I I 6x CPU 10x I/O P2 (CPU-lastig) 30x CPU 0x I/O P3 (CPU-lastig) I I I I I 25x CPU 5x I/O P4 (CPU-lastig) 30x CPU 0x I/O Ausführreihe nfolge mit Round Robin, Zeitquantum 15: 0 10 20 30 39 I I I I I 40 50 60 70 79 80 90 I I I I I I I I I I Prozess CPU-Zeit I/O-Zeit Summe Laufzeit Wartezeit *) P1 6 10 16 84 68 P2 30 0 30 64 34 P3 25 5 30 91 61 P4 30 0 30 82 52 *) im Zustand bereit, nicht blockiert! 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-53

Virtual Round Robin (1) Beobachtung: Round Robin unfair gegenüber I/O-lastigen Prozessen: CPU-lastige nutzen ganzes Quantum, I/O-lastige nur einen Bruchteil Lösungsvorschlag: Idee: Nicht verbrauchten Quantum-Teil als Guthaben des Prozesses merken Sobald blockierter Prozess wieder bereit ist (I/O- Ergebnis da): Restguthaben sofort aufbrauchen 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-54

Virtual Round Robin (2) Prozesse, die Zeitquantum verbrauchen, wie bei normalem Round Robin behandeln: zurück in Warteschlange Prozesse, die wegen I/O blockieren und nur Zeit u < q ihres Quantums verbraucht haben, bei Blockieren in Zusatzwarteschlange stecken neu Standard-Warteschlange bevorzugte Warteschlange CPU Scheduler unterbricht I/O Blockiert-Schlange (warten auf I/O) ja Quantum verbraucht? nein (I/O) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-55

Virtual Round Robin (3) Scheduler bevorzugt Prozesse in Zusatzschlange Quantum für diesen Prozess: q u (kriegt nur das, was ihm zusteht, was er beim letzten Mal nicht verbraucht hat) neu Standard-Warteschlange bevorzugte Warteschlange CPU Scheduler unterbricht I/O Blockiert-Schlange (warten auf I/O) ja Quantum verbraucht? nein (I/O) 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-56

Prioritäten-Scheduler (1) Idee: a) Prozesse in Prioritätsklassen einteilen oder b) jedem Prozess einen Prioritätswert zuordnen Scheduler bevorzugt Prozesse mit hoher Prior. Priorität bei Prozesserzeugung fest vergeben oder vom Scheduler regelmäßig neu berechnen lassen Scheduling kooperativ oder präemptiv 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-57

Prioritäten-Scheduler (2) a) Mehrere Warteschlangen für Prioritätsklassen sehr wichtig Scheduler wichtiger normal wichtig b) Scheduler sucht Prozess mit höchster Priorität *) 30 120 130 120 140 5 130 120 120 110 130 *) kleine Zahl = hohe Priorität Suche Minimum 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-58

Prioritäten-Scheduler (3) Mehrere Warteschlangen Prozesse verschiedenen Prioritätsklassen zuordnen und in jeweilige Warteschlangen einreihen Scheduler aktiviert nur Prozesse aus der höchsten nicht-leeren Warteschlange Präemptiv: Prozesse nach Zeitquantum unterbrechen Innerhalb der Warteschlangen: Round Robin 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-59

Prioritäten-Scheduler (4) Keine Hierarchien, sondern individuelle Prozess-Prioritäten Alle Prozesse stehen in einer Prozessliste Scheduler wählt stets Prozess mit der höchsten Priorität Falls mehrere Prozesse gleiche (höchste) Priorität haben, diese nach Round Robin verarbeiten 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-60

Prioritäten-Scheduler (5) Prozesse können verhungern Aging Prioritätsinversion: Prozess hoher Priorität ist blockiert (benötigt ein Betriebsmittel) Prozess niedriger Priorität bestitzt dieses Betriebsmittel, wird aber vom Scheduler nicht aufgerufen (weil es höher-prioritäre Prozesse gibt) Beide Prozesse kommen nie dran, weil immer Prozesse mittlerer Priorität laufen Ausweg: Aging 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-61

Prioritäten-Scheduler (6) Aging: Priorität eines Prozesses, der bereit ist und auf die CPU wartet, wird regelmäßig erhöht Priorität des aktiven Prozesses und aller nicht-bereiten (blockierten) Prozesse bleibt gleich Ergebnis: Lange wartender Prozess erreicht irgendwann ausreichend hohe Priorität, um aktiv zu werden 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-62

Prioritäten-Scheduler (7) Verschiedene Quantenlängen Mehrere Prioritätsklassen: 1. Priorität = 1 Quantum, 2. Priorität = 2 Quanten, 3. Priorität = 4 Quanten, 4. Priorität = 8 Quanten Prozesse mit hoher Priorität erhalten kleines Quantum. Geben sie die CPU vor Ablauf des Quantums zurück, behalten sie hohe Priorität Verbrauchen sie Quantum, verdoppelt Scheduler die Quantenlänge und stuft die Priorität runter solange, bis Prozess sein Quantum nicht mehr aufbraucht 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-63

Lotterie-Scheduler (1) Idee: Prozesse erhalten Lotterie-Lose für die Verlosung von Ressourcen Scheduler zieht ein Los und lässt den Prozess rechnen, der das Los besitzt Priorisierung: Einige Prozesse erhalten mehr Lose als andere 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-64

Lotterie-Scheduler (2) Prozess 1 Lose 1,2,3,4 Prozess 2 Lose 5,6 Prozess 3 Lose 7,8,9 Scheduler zieht Los Nr. 5 Prozess 4 Los 10 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-65

Lotterie-Scheduler (3) Gruppenbildung und Los-Austausch: Zusammenarbeit Client / Server Client stellt Anfrage an Server, gibt ihm seine Lose und blockiert Nach Bearbeitung gibt Server die Lose an den Client zurück und weckt ihn auf Keine Clients vorhanden? Server erhält keine Lose, rechnet nie 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-66

Lotterie-Scheduler (4) Aufteilung der Rechenzeit nur statistisch korrekt In konkreten Situationen verschieden lange Wartezeiten möglich Je länger mehrere Prozesse laufen, desto besser ist erwartete CPU-Aufteilung 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-67

Scheduling auf Multi-CPU- Systemen Multitasking auf einzelnen CPUs (oder nicht?) CPUs gleich-behandeln oder Master/Slaves? Zuordnung Prozess CPU: fest/variabel? BS-Instanz auf jeder CPU (was passiert, wenn zwei Scheduler denselben Prozess auswählen?) Gang Scheduling Dynamisches Scheduling Literatur: William Stallings, Operating Systems Internals and Design Principles, Kapitel 10 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-68