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

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

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

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

5. Foliensatz Betriebssysteme und Rechnernetze

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

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

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Betriebssysteme BS-F WS 2015/16. Hans-Georg Eßer. Foliensatz F: Scheduling Prioritäten. v1.3, 2015/08/20

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

Betriebssysteme Theorie

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

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

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

Lösung von Übungsblatt 8

5) Realzeitscheduling

Systeme 1. Kapitel 5. Scheduling

TI Übung 5. Prozess-Scheduling. Andreas I. Schmied SS2005. Abteilung Verteilte Systeme Universität Ulm

3.3 Strategien zur Ablaufsteuerung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

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

Übungen zur Vorlesung Realzeitsysteme

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

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

1 Prozesse und Scheduling (12 Punkte)

Windows 2000 Scheduler

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssysteme. Teil 13: Scheduling

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

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

Betriebssysteme (BS) Scheduling. Olaf Spinczyk.

Betriebssysteme (BS) Scheduling. Olaf Spinczyk.

CPU-Scheduling - Grundkonzepte

8. Foliensatz Betriebssysteme

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

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

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

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

SS 2005 KV Betriebssysteme Multi-Processing & Scheduling A. Putzinger, FIM 05

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

5 Kernaufgaben eines Betriebssystems (BS)

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

Betriebssysteme (BS)

Modul B-PRG Grundlagen der Programmierung 1

J Prozesse und Nebenläufigkeit

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme I WS 2016/17. Prof. Dr. Dirk Müller. 11 Scheduling

Übung zu Grundlagen der Betriebssysteme. 7. Übung

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

Threads and Scheduling

Round-Robin Scheduling (RR)

Single- und Multitasking

Proseminar KVBK : Scheduler unter Linux

Teil 3: Konzepte von Betriebssystemen

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

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

Analysis of System Performance IN2072 Chapter 2 Random Process Part 1

Dämon-Prozesse ( deamon )

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

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

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

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

5) Realzeitscheduling

mathematik und informatik

Betriebssysteme Sommersemester Betriebssysteme. 4. Kapitel. Scheduling. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware

4.1 Einführung. Ziele. Begriff. Wiederholung: Prozess ist ein Konzept zur Virtualisierung eines Hardware-Betriebsmittels.

Betriebssysteme (BTS)

Kontrollflüsse. Motivation. Planen (Scheduling) Systemsoftware. Seite 4.1

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

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

Technische Informatik II. SoSe Jörg Kaiser IVS EOS

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Der Scheduler von Windows 2000 Konzepte und Strategien

Immediate Priority Ceiling

3. Scheduler und Schedulingstrategien

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

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

Technische Informa/k II. Prof. Dr. Bernd Freisleben Sommersemester 2013 Kapitel 5: BetriebsmiCelverwaltung

Informatik I WS 07/08 Tutorium 24

Vorlesung Betriebssysteme I

Grundlagen der Betriebssysteme

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur am

Motivation kooperativer Fadenwechsel präemptiver Fadenwechsel Arbeitsteilung Ablaufplanung

Betriebssysteme Wintersemester 2005/06

Echtzeitsysteme: Grundlagen

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

Ausgewählte Kapitel eingebetteter Systeme

Legende: Running Ready Blocked P1 P2 P3. t[ms] 1 Prozesse und Scheduling (16 Punkte)

Transkript:

Betriebssysteme I WS 2015/2016 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 17. Dezember 2015 Betriebssysteme / verteilte Systeme Betriebssysteme I (1/15) i

Betriebssysteme I WS 2015/2016 5 Scheduling Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 250

5 Scheduling... Inhalt: Einführung Kriterien für das Scheduling Scheduling-Verfahren: allgemeine Aspekte Scheduling-Algorithmen Tanenbaum 2.5 Stallings 9 Nehmer/Sturm 5.3 Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 251

5.1 Einführung Teilaufgabe des BS: Mehrprogammbetrieb Gleichzeitige Abarbeitung mehrerer Threads (und damit auch mehrerer Programme) im schnellen Wechsel Bisher behandelt: Mechanismus des Threadswechsels Jetzt: Thread-Scheduling Auswahlstrategie: welcher Thread darf als nächstes wie lange (und ggf. auf welcher CPU) rechnen? Verwaltung des Betriebsmittels Prozessor (Daneben: weitere Scheduling-Aufgaben, 6.3.3, 7.3) Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 252

5.1 Einführung... Scheduling beeinflußt Nutzbarkeit des Systems Beispiel: interaktiver Thread (I) und Hintergrundthread (H) Darstellung als Gantt-Diagramm Schlecht: I H Besser: I H Thread bereit Mausklick Mausklick Reaktion Thread rechnend Reaktion Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 253

5.2 Kriterien für das Scheduling Vorbemerkung: Betriebsarten eines Systems Stapelverarbeitungs-Betrieb System arbeitet nicht-interaktive Aufträge ab häufig bei Großrechnern Interaktiver Betrieb typisch für Arbeitsplatzrechner, Server Echtzeitbetrieb Steueraufgaben, Multimedia-Anwendungen Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 254

5.2 Kriterien für das Scheduling... Vorbemerkung: Threadcharakteristiken CPU lastiger Thread: Lange Berechnung P E/A lastiger Thread: Warten auf E/A P Kurze Berechnung Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 255

5.2 Kriterien für das Scheduling... Kriterien für das Scheduling (Benutzersicht) Minimierung der Durchlaufzeit (Stapelbetrieb) Zeit zwischen Eingang und Abschluß eines Jobs (inkl. aller Wartezeiten) Minimierung der Antwortzeit (Interaktiver Betrieb) Zeit zwischen Eingabe einer Anfrage und Beginn der Ausgabe Einhaltung von Terminen (Realzeitbetrieb) Ausgabe muß nach bestimmter Zeit erfolgt sein Vorhersehbarkeit Durchlaufzeit / Antwortzeit i.w. unabhängig von Auslastung des Systems Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 256

5.2 Kriterien für das Scheduling... Kriterien für das Scheduling (Systemsicht) Maximierung des Durchsatzes (Stapelbetrieb) Anzahl der fertiggestellten Jobs pro Zeiteinheit Optimierung der Prozessorauslastung (Stapelbetrieb) prozentualer Anteil der Zeit, in der Prozessor beschäftigt ist Balance gleichmäßige Auslastung aller Ressourcen Fairness vergleichbare Threads sollten gleich behandelt werden Durchsetzung von Prioritäten Threads mit höherer Priorität bevorzugt behandeln Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 257

5.2 Kriterien für das Scheduling... Scheduling-Kriterien nicht gleichzeitig erfüllbar z.b. Prozessorauslastung kurze Antwortzeit Scheduling-Ziele und -Verfahren von Betriebsart abhängig Stapelverarbeitung: hoher Durchsatz, gute Auslastung bevorzuge Aufträge, die freie Ressourcen nutzen Interaktiver Betrieb: kurze Antwortzeiten bevorzuge Threads, die auf E/A (Benutzereingabe) gewartet haben und nun rechenbereit sind Echtzeitbetrieb: Einhaltung von Zeitvorgaben bevorzuge Threads, deren Ausführungsfristen ablaufen Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 258

5.3 Scheduling-Verfahren: allgemeine Aspekte Ebenen des Schedulings Langfristiges Scheduling (Eingangs-Scheduler) bei Systemen mit Stapelverarbeitung von Jobs: welcher Job wird als nächstes zugelassen? D.h. wann werden Prozesse für den Job erzeugt? Ziel z.b. Mischung aus CPU- und E/A-lastigen Prozessen Mittelfristiges Scheduling (Speicher-Scheduler) Auslagern und Suspendieren von Prozessen (z.b. bei Speicherengpässen) legt Multiprogramming-Grad fest Kurzfristiges Scheduling (CPU-Scheduler) Zuteilung der CPU(s) an bereite Threads Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 259

5.3 Scheduling-Verfahren: allgemeine Aspekte... Nicht-präemptives und präemptives Scheduling Nicht-präemptives Scheduling Thread darf so lange rechnen, bis er freiwillig die CPU aufgibt oder blockiert sinnvoll bei Stapelverarbeitung und teilw. Echtzeitsystemen Präemptives Scheduling Scheduler kann einem Thread die CPU zwangsweise entziehen wenn ein anderer Thread (mit höherer Priorität) rechenbereit geworden ist nach Ablauf einer bestimmten Zeit unterstützt interaktive Systeme und Echtzeitsysteme Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 260

5.3 Scheduling-Verfahren: allgemeine Aspekte... Scheduling-Zeitpunkte (CPU-Scheduler) Bei Beendigung eines Threads Bei freiwilliger CPU-Aufgabe eines Threads Bei Blockierung eines Threads Grund der Blockierung kann/sollte berücksichtigt werden z.b. bei P()-Operation: weise CPU dem Thread zu, der Semaphor belegt kürzere Blockierung Bei Erzeugung eines Threads Bei E/A-Interrupt evtl. werden blockierte Threads rechenbereit Regelmäßig bei Timer-Interrupt nur bei prä emptivem Scheduling Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 261

5.4 Scheduling-Algorithmen Legen fest, welcher Thread auf einer CPU als nächstes ausgeführt wird und wie lange er rechnen darf Bei Multiprozessor-Systemen prinzipiell: jede CPU führt Algorithmus unabhängig von den anderen aus Zugriffe auf Bereit-Warteschlange unter wechselseitigem Ausschluß Detailaspekt: Cache-Affinity / Affinity Scheduling ein einmal auf einer CPU ausgeführter Thread sollte nach Möglichkeit auf dieser CPU bleiben Daten des Threads sind im Cache dieser CPU! jeder Thread erhält eine (oder mehrere) bevorzugte CPU(s) einfache Realisierung: getrennte Warteschlangen für jede CPU falls leer: Warteschlangen anderer CPUs inspizieren Betriebssysteme / verteilte Systeme Betriebssysteme I (9/15) 262

Betriebssysteme I WS 2015/2016 07.01.2016 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 17. Dezember 2015 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) x

5.4 Scheduling-Algorithmen... 5.4.1 First Come First Served (FCFS) Nicht-präemptives Verfahren Start FIFO Warteschlange für bereite Threads* Prozessor Ende blockierte Threads * Blockierung Der am längsten wartende bereite Thread darf als nächstes rechnen nach Aufhebung einer Blockierung reiht sich ein Thread wieder hinten in die Warteschlange ein bzw. Job(s) bei Stapelbetrieb Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 263

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt T1 T2 T3 T4 rechnend bereit Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt T1 T1 macht E/A, T2 wird rechnend blockiert (E/A) T2 Zeit T3 T4 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt T2 macht E/A, T3 wird rechnend T1 T2 T1 wird bereit T3 T4 Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt T3 macht E/A, T4 wird rechnend T1 T2 T3 T2 wird bereit T4 Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt T1 T4 macht E/A, T1 wird rechnend T2 Zeit T3 T4 T3 wird bereit T4 wird bereit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4.1 First Come First Served (FCFS)... Diskussion Sehr einfacher Algorithmus Stellt gute CPU-Auslastung sicher Vorwiegend für Stapelverarbeitung Durchlaufzeit wird nicht optimiert (siehe gleich: SJF) Balance evtl. schlecht durch Convoy-Effekt E/A aktiv T1 T2 T3 T4 E/A aktiv Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 264

5.4 Scheduling-Algorithmen... 5.4.2 Shortest Job First (SJF) Ziel: Optimierung der Durchlaufzeit Strategie: kürzester Job wird zuerst gerechnet Dauer muß vorab bekannt sein (bei Stapelbetrieb i.a. erfüllt) SJF ist beweisbar optimal, falls alle Jobs gleichzeitig vorliegen in der Regel: Jobs treffen nacheinander ein, Scheduler kann nur die Jobs berücksichtigen, die bereits bekannt sind Einfachster Fall: nicht-präemptiv, keine Blockierungen durch E/A In präemptiver Variante und bei Blockierungen durch E/A: betrachte Restlaufzeiten Variante für interaktive Systeme: betrachte CPU-Burst als Job, mit Schätzung der Dauer Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 265

5.4.2 Shortest Job First (SJF)... Beispiel (alle Jobs liegen gleichzeitig vor) Vier Jobs in FCFS Reihenfolge 8 4 A B 4 4 C D Mittlere Durchlaufzeit: (8+12+16+20)/4 = 14 Dieselben Jobs in SJF Reihenfolge 4 B 4 4 C D 8 A Mittlere Durchlaufzeit: (4+8+12+20)/4 = 11 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 266

5.4.2 Shortest Job First (SJF)... Beispiel (die Jobs treffen nacheinander ein) Job A B C D Ankunft Ankunfszeit 0 2 6 11 Bedienzeit 8 5 2 3 A B C D Mittlere Durchlaufzeit: SJF Schedule (nicht präemptiv) A C B D (8+13+4+7)/4 = 8 Zeit 0 2 4 6 8 10 12 14 16 18 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 267

5.4.2 Shortest Job First (SJF)... Beispiel (die Jobs treffen nacheinander ein) Job A B C D Ankunft Ankunfszeit 0 2 6 11 Bedienzeit 8 5 2 3 A B C D Mittlere Durchlaufzeit: SJF Schedule (nicht präemptiv) SJF Schedule (präemptiv) Zeit A C B D A B C A D A 0 2 4 6 8 10 12 14 16 18 (8+13+4+7)/4 = 8 (18+5+3+3)/4 = 7,25 Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 267

5.4 Scheduling-Algorithmen... 5.4.3 Round Robin (RR), Zeitscheibenverfahren Präemtive Variante von FCFS Jeder Thread darf höchstens eine bestimmte Zeit (Quantum, Zeitscheibe, Time Slice) rechnen Ablauf des Quantums Start FIFO Warteschlange Prozessor Ende blockierte Threads Blockierung Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 268

5.4.3 Round Robin (RR), Zeitscheibenverfahren... Diskussion Einfach zu realisieren FIFO-Warteschlange aller rechenbereiten Threads und Timer-Interrupt Frage: Länge des Quantums kurzes Quantum: kurze Antwortzeiten schlechte CPU-Nutzung durch häufige Threadwechsel langes Quantum: umgekehrt Praxis: 10-100 ms RR ist nicht fair: E/A-lastige Threads werden benachteiligt Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 269

5.4.3 Round Robin (RR), Zeitscheibenverfahren... Zeitscheibenlänge Lange Zeitscheibe: Scheduler und Threadwechsel T1 BS T2 BS T3 BS T1 gute Prozessornutzung, hohe Antwortzeit Zeit Kurze Zeitscheibe: T1 BS T2 BS T3 BS T1 BS T2 BS T3 kurze Antwortzeit, schlechte Prozessornutzung Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 270

5.4.3 Round Robin (RR), Zeitscheibenverfahren... Fairness T1 T2 E/A lastiger Thread CPU lastiger Thread Thread 2 wird nach Ablauf des Quantums unterbrochen T2 T1 T2 T1 T2 T1 Thread 1 gibt den Prozessor bei E/A freiwillig auf Thread 1 ist gegenüber Thread 2 benachteiligt Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 271

5.4 Scheduling-Algorithmen... 5.4.4 Prioritätenbasiertes Scheduling Jeder Thread erhält eine (unterschiedliche) Priorität CPU wird an den Thread mit der höchsten Priorität zugeteilt I.d.R. präemptiv Statische Prioritäten Priorität eines Threads bei Erzeugung festgelegt häufig bei Realzeit-Systemen Dynamische Prioritäten Priorität kann laufend geändert werden, abhängig vom Verhalten des Threads (Feedback Scheduling) z.b.: Priorität bestimmt durch Länge des letzten CPU-Bursts des Threads ( SJF) Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 272

5.4 Scheduling-Algorithmen... 5.4.5 Multilevel Scheduling Mehrere Warteschlangen für bereite Threads Jede Warteschlange kann eigene Auswahlstrategie besitzen Zusätzlich: Strategie zur Auswahl der aktuellen Warteschlange z.b. Prioritäten oder Round-Robin Statische Verfahren: Thread wird fest einer Warteschlange zugeordnet Dynamische Verfahren: Thread kann in Abhängigkeit seines Verhaltens zwischen Warteschlangen wechseln Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 273

5.4.5 Multilevel Scheduling... Beispiel: Statisches Multilevel Scheduling Unterstützung verschiedener Betriebsarten in einem System Threads werden in Prioritätsklassen eingeteilt pro Prioritätsklasse eine Warteschlange unterschiedliche Scheduling-Strategien innerhalb der Warteschlangen Priorität Threadklasse Strategie 1 Echtzeitthreads (Multimedia) Prioritäten 2 Interaktive Threads RR 3 E/A-intensive Threads RR 4 Rechenintensive Stapel-Jobs FCFS Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 274

5.4.5 Multilevel Scheduling... Beispiel: Statisches Multilevel Scheduling... Start Priorität 1 HPF 5 4 3 2 1 Priorität 2 Priorität 3 RR RR Prozessor Ablauf des Quantums Interrupt Ende Priorität 4 FCFS Blockierung blockierte Prozesse Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 275

5.4.5 Multilevel Scheduling... Beispiel: Multilevel Feedback Scheduling Dynamische Prioritäten und variable Zeitscheibenlänge Mehrere Warteschlangen mit unterschiedlicher Priorität innerhalb einer Warteschlange: Round Robin bei niedrigerer Priorität: längeres Quantum Falls Thread Quantum aufbraucht: erniedrigen der Priorität CPU-lastiger Thread erhält längeres Quantum, wird seltener unterbrochen Sonst: Priorität nicht verändern bzw. wieder erhöhen E/A-lastiger (bzw. interaktiver) Thread erhält bevorzugt die CPU, aber nur für kurze Zeit Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 276

5.4.5 Multilevel Scheduling... Multilevel Feedback Scheduling in BSD-Unix Priorisierte Warteschlangen mit Round Robin Threads, die durch BS-Aufruf im BS-Kern blockiert sind, erhalten hohe (negative) Priorität nach Ende der Blockierung: Thread erhält bevorzugt die CPU, Priorität wird dann wieder auf alten Wert gesetzt Anpassung der normalen User- Priorität je nach CPU-Nutzung (Aging-Verfahren)... niedrige Priorität... 2: User Priorität 2 1: User Priorität 1 0: User Priorität 0 1: Kindprozeß terminiert 2: Terminalausgabe 3: Terminaleingabe 4: Seite auslagern 5: Warten auf Platte...... hohe Priorität Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 277

5.4.5 Multilevel Scheduling... Multilevel Feedback Scheduling in Windows NT / Vista 32 Prioritätsklassen Priorität 16-31 (höchste) Echtzeitklasse, statische Priorität Priorität 1-15 normale Threads, dynamische Priorität starke Prioritätserhöhung bei Benutzereingabe, moderatere Erhöhung bei Ende einer E/A, danach schrittweise Reduktion zum Ausgangswert Priorität 0 (niedrigste) Idle-Thread Innerhalb einer Klasse: Round-Robin Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 278

5.5 Zusammenfassung / Wiederholung Scheduling Entscheidung welcher Thread wann wie lange (und ggf. auch welcher CPU) rechnen darf Unterschiedliche Anforderungen, je nach Sichtweise und Betriebsmodus Nicht-präemptives und präemptives Scheduling präemptiv: BS kann einem Thread die CPU zwangsweise entziehen Scheduling-Algorithmen FCFS: FIFO-Warteschlange rechenbereiter Threads, nicht-präemptiv SJF: Shortest Job First optimiert Durchlaufzeit von Jobs Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 279

5.5 Zusammenfassung / Wiederholung... Scheduling-Algorithmen... Round Robin (RR): präemptive Version von FCFS Threads dürfen nur bestimmte Zeit rechnen Prioritätenbasiertes Scheduling: nur der Thread mit höchster Priorität bekommt CPU (bzw. die n höchstprioren Threads bei n CPUs) Multilevel Scheduling mehrere Warteschlangen mit unterschiedlicher Auswahlstrategie statisches Multilevel Scheduling feste Zuordnung Thread Warteschlange Multilevel Feedback Scheduling dynamische Zuordnung Thread Warteschlange Betriebssysteme / verteilte Systeme Betriebssysteme I (10/15) 280