Betriebssysteme (BS) Scheduling. Olaf Spinczyk.

Ähnliche Dokumente
Betriebssysteme (BS)

Prozesseinplanung. Kurzfristige Einplanung. Mittelfristige Einplanung. Abfertigungszustände

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Systeme 1. Kapitel 5. Scheduling

Übung zu Grundlagen der Betriebssysteme. 7. Übung

CPU-Scheduling - Grundkonzepte

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

C IX-2 Einplanungsverfahren. Gliederung. 1 Einordnung. 2 Verfahrensweisen Kooperativ Verdrängend Mehrstufig Priorisierend Vergleich.

Betriebssysteme (BTS)

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

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

8. Vorlesung Betriebssysteme

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

5) Realzeitscheduling

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

Round-Robin Scheduling (RR)

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

Klassisches Scheduling-Problem 6 Prozesse 3 Prozessoren. Strategie und Mechanismus

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Dämon-Prozesse ( deamon )

Hausübung 2(Musterlösung)

Übungen zum Fach Betriebssysteme Kapitel 3

Übung zu Grundlagen der Betriebssysteme. 8. Übung

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

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Betriebssysteme Wintersemester 2005/06

Technische Informatik II

7.Vorlesung Betriebssysteme Hochschule Mannheim

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Betriebssystembau (BSB)

BP 2 Prozessorvergabe - Multiprozessoren: Kern-Fäden. besten, wenn der Zusatzaufwand für Kontextumschaltungen gering ist.

Kap. 2. Prozesse. Version vom Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2

Domänenanalyse Threadverwaltung/Scheduling

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Prozesse und Scheduling

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Verteilte Echtzeit-Systeme

6.Vorlesung Betriebssysteme Hochschule Mannheim

, SS2012 Übungsgruppen: Do., Mi.,

TIMI: Technische Informatik für Medieninformatiker

Systemsoftware (SYS)

Betriebssystembau (BSB)

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Kapitel 2: Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

5.3 Prozessumlagerung (process) swapping

Scheduling-Verfahren für Mehrbenutzer-Systeme. Klaus Kusche, Juni 2012

Betriebssysteme (BTS)

(Prüfungs-)Aufgaben zum Thema Scheduling

Betriebssysteme (BTS)

13. Übung mit Musterlösung

B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

Quantitative Methoden. Betriebssysteme

2 Echtzeitbetriebssysteme

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

In diesem Kapitel will ich die Grundlagen legen, die für das Verständnis von Mac OS X hilfreich sind.

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Zusammenfassung Modul 223

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Kapitel 2: Betriebssysteme

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Embedded-Linux-Seminare. Linux als Betriebssystem

Musterlösung Prüfung SS 2002

Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen.

Operating System Kernels

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Musterlösung der Abschlussklausur Betriebssysteme

Vorlesung: Betriebssysteme

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG

6.1 Einführung. Kapitel 6 Scheduling. Klassisches Scheduling-Problem. Anwendungs-Beispiele von Scheduling. Scheduling (zu deutsch etwa

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

bereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Von Prozessen und Prozessoren (Prozess-Management)

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Es kann maximal ein Prozess die Umladestelle benutzen.

Kapitel I Betriebssysteme: Aufgaben und Überblick Betriebssysteme: VO Betriebssysteme 2

FOM Hochschule für Oekonomie & Management. Studienzentrum München. Bachelor-Thesis. Implementation eines Schedulers für das Lehrbetriebssystem Ulix

Grundlagen verteilter Systeme

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung

Echtzeitscheduling (1)

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Fragenkatalog Echtzeitsysteme/Realzeitsysteme. Jürgen Quade

Transkript:

Betriebssysteme (BS) Scheduling http://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12, TU Dortmund

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Silberschatz, Kap.... 5: Process Scheduling Tanenbaum, Kap.... 2.5: Scheduling Beispiele UNIX (4.3BSD) NT Es geht um Uniprozessor-Scheduling für den Allgemeinzweckbetrieb. Nicht betrachtet wird: Multiprozessor-Scheduling Echtzeit-Scheduling E/A-Scheduling 15.05.2017 Betriebssysteme: 04 - Scheduling 2

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Beispiele UNIX (4.3BSD) NT 15.05.2017 Betriebssysteme: 04 - Scheduling 3

Wiederholung Prozesse sind die zentrale Abstraktion für Aktivitäten in heutigen Betriebssystemen. Konzeptionell unabhängige sequentielle Kontrollflüsse (Folge von CPU- und E/A-Stößen) Tatsächlich findet ein Multiplexing der CPU statt UNIX-Systeme stellen diverse System Calls zur Verfügung, um Prozesse zu erzeugen, zu verwalten und miteinander zu verknüpfen. Moderne Betriebssysteme unterstützen darüber hinaus auch leicht- und federgewichtige Prozesse. Prozesse unterliegen der Kontrolle des Betriebssystems. Betriebsmittel-Zuteilung Betriebsmittel-Entzug 15.05.2017 Betriebssysteme: 04 - Scheduling 4

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Beispiele UNIX (4.3BSD) NT 15.05.2017 Betriebssysteme: 04 - Scheduling 5

Abfertigungszustand Jedem Prozess ist in Abhängigkeit von der Einplanungsebene ein logischer Zustand zugeordnet, der den Abfertigungszustand zu einem Zeitpunkt angibt: kurzfristig (short-term scheduling) bereit, laufend, blockiert mittelfristig (medium-term scheduling) ausgelagert bereit, ausgelagert blockiert langfristig (long-term scheduling) erzeugt, beendet 15.05.2017 Betriebssysteme: 04 - Scheduling 6

Kurzfristige Einplanung bereit (READY) zur Ausführung durch den Prozessor (die CPU) Der Prozess ist auf der Warteliste für die CPU-Zuteilung (ready list) Seine Listenposition bestimmt sich durch das Einplanungsverfahren laufend (RUNNING) Zuteilung des Betriebsmittels CPU ist erfolgt Der Prozess führt Berechnungen durch, er vollzieht seinen CPU-Stoß Für jeden Prozessor gibt es zu einem Zeitpunkt nur einen laufenden Prozess blockiert (BLOCKED) auf ein bestimmtes Ereignis Der Prozess führt Ein-/Ausgabe durch, er vollzieht seinen E/A-Stoß Er erwartet die Erfüllung mindestens einer Bedingung 15.05.2017 Betriebssysteme: 04 - Scheduling 7

Mittelfristige Einplanung Ein Prozess ist komplett ausgelagert, d. h. der Inhalt seines gesamten Adressraums wurde in den Hintergrundspeicher verschoben (swap-out) und der von dem Prozess belegte Vordergrundspeicher wurde freigegeben. Die Einlagerung (swapin) des Adressraums ist abzuwarten: ausgelagert bereit (READY SUSPEND) Die CPU-Zuteilung ( bereit ) ist außer Kraft gesetzt Der Prozess ist auf der Warteliste für die Speicherzuteilung ausgelagert blockiert (BLOCKED SUSPEND) Der Prozess erwartet weiterhin ein Ereignis ( blockiert ) Tritt das Ereignis ein, wird der Prozess ausgelagert bereit 15.05.2017 Betriebssysteme: 04 - Scheduling 8

Langfristige Einplanung erzeugt (NEW) und fertig zur Programmverarbeitung fork(2) Der Prozess ist instanziiert, ihm wurde ein Programm zugeordnet Ggf. steht die Zuteilung des Betriebsmittels Speicher jedoch noch aus beendet (EXIT) und erwartet die Entsorgung exit(2)/wait(2) Der Prozess ist terminiert, seine Betriebsmittel werden freigegeben Ggf. muss ein anderer Prozess den Kehraus vollenden (z. B. UNIX) 15.05.2017 Betriebssysteme: 04 - Scheduling 9

Zustandsübergänge EXIT RUNNING READY SUSPEND 1 2 NEW READY BLOCKED SUSPEND 4 3 BLOCKED Long Term Medium Term Short Term 15.05.2017 Betriebssysteme: 04 - Scheduling 10

Einplanungs- und Auswahlzeitpunkt Jeder Übergang in den Zustand bereit (READY) aktualisiert die CPU-Warteschlange Eine Entscheidung über die Einreihung des Prozesskontrollblocks wird getroffen Das Ergebnis hängt von CPU-Zuteilungsstrategie des Systems ab Einplanung/Umplanung (scheduling/rescheduling) erfolgt,... 1 2 3 4 nachdem ein Prozess erzeugt worden ist wenn ein Prozess freiwillig die Kontrolle über die CPU abgibt sofern das von einem Prozess erwartete Ereignis eingetreten ist sobald ein ausgelagerter Prozess wieder aufgenommen wird Ein Prozess kann dazu gedrängt werden, die CPU abzugeben. präemptives Scheduling, auch 2 z.b. durch Zeitgeberunterbrechung 15.05.2017 Betriebssysteme: 04 - Scheduling 11

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Beispiele UNIX (4.3BSD) NT 15.05.2017 Betriebssysteme: 04 - Scheduling 12

First-Come First-Served FCFS Ein einfaches und gerechtes (?) Verfahren: wer zuerst kommt, mahlt zuerst Einreihungskriterium ist die Ankunftszeit eines Prozesses Arbeitet nicht-verdrängend und setzt kooperative Prozesse voraus Beispiel Prozess Ankunft Zeiten Bedienzeit T s Start Ende Durchlauf T r T r /T s A 0 1 0 1 1 1,00 B 1 100 1 101 100 1,00 C 2 1 101 102 100 100,00 D 3 100 102 202 199 1,99 Mittelwert 100 26,00 Die normalisierte Durchlaufzeit (T r /T s ) von C steht in einem sehr schlechten Verhältnis zur Bedienzeit T s 15.05.2017 Betriebssysteme: 04 - Scheduling 13

Diskussion: FCFS Konvoi-Effekt Mit dem Problem sind immer kurz laufende E/A-lastige Prozesse konfrontiert, die langen CPU-lastigen Prozessen folgen. Prozesse mit langen CPU-Stößen werden begünstigt Prozesse mit kurzen CPU-Stößen werden benachteiligt Das Verfahren minimiert die Zahl der Kontextwechsel. Der Konvoi-Effekt verursacht allerdings folgende Probleme: hohe Antwortzeit niedriger E/A-Durchsatz Bei einem Mix von CPU- und E/A-lastigen Prozessen ist FCFS daher ungeeignet. Typischerweise nur in reinen Stapelverarbeitungssystemen 15.05.2017 Betriebssysteme: 04 - Scheduling 14

Round Robin RR Verringert die bei FCFS auftretende Benachteiligung kurzer CPU-Stöße: Jeder gegen jeden Die Prozessorzeit wird in Zeitscheiben aufgeteilt (time slicing) Mit Ablauf der Zeitscheibe erfolgt ggf. ein Prozesswechsel Der unterbrochene Prozess wird ans Ende der Bereitliste verdrängt Der nächste Prozess wird gemäß FCFS der Bereitliste entnommen Basis für CPU-Schutz: Zeitgeber bewirkt Unterbrechung am Ende der Zeitscheibe Die Zeitscheibenlänge bestimmt maßgeblich die Effektivität des Verfahrens zu lang, Degenerierung zu FCFS; zu kurz, sehr hoher Overhead Faustregel: etwas länger als die Dauer einer typischen Interaktion 15.05.2017 Betriebssysteme: 04 - Scheduling 15

Diskussion: RR Leistungsprobleme E/A-lastige Prozesse beenden ihren CPU-Stoß innerhalb ihrer Zeitscheibe sie blockieren und kommen mit Ende ihres E/A-Stoßes in die Bereitliste CPU-lastige Prozesse schöpfen dagegen ihre Zeitscheibe voll aus sie werden verdrängt und kommen sofort wieder in die Bereitliste die CPU-Zeit ist zu Gunsten CPU-lastiger Prozesse ungleich verteilt E/A-lastige Prozesse werden schlecht bedient und dadurch Geräte schlecht ausgelastet die Varianz der Antwortzeit E/A-lastiger Prozesse erhöht sich 15.05.2017 Betriebssysteme: 04 - Scheduling 16

Virtual Round Robin VRR Vermeidet die bei RR mögliche ungleiche Verteilung der CPU- Zeiten Prozesse kommen mit Ende ihrer E/A-Stöße in eine Vorzugsliste Diese Liste wird vor der Bereitliste abgearbeitet Das Verfahren arbeitet mit Zeitscheiben unterschiedlicher Längen Prozesse der Vorzugsliste bekommen keine volle Zeitscheibe zugeteilt Ihnen wird die Restlaufzeit ihrer vorher nicht voll genutzten Zeit gewährt Sollte ihr CPU-Stoß länger dauern, werden sie in die Bereitliste verdrängt Die Prozessabfertigung ist dadurch im Vergleich zu RR etwas aufwändiger 15.05.2017 Betriebssysteme: 04 - Scheduling 17

Shortest Process Next SPN Verringert die bei FCFS auftretende Benachteiligung kurzer CPU-Stöße: Die Kleinen nach vorne Grundlage dafür ist die Kenntnis über die Prozesslaufzeiten Verdrängung findet nicht statt das Hauptproblem besteht in der Vorhersage der Laufzeiten Stapelbetrieb: Programmierer geben das erforderliche time limit* vor Dialogbetrieb: Schätzung der früheren Stoßlängen des Prozesses Antwortzeiten werden wesentlich verkürzt und die Gesamtleistung steigt Dafür: Gefahr der Aushungerung (starvation) CPU-lastiger Prozesse *Die Zeitdauer, innerhalb der der Job (wahrscheinlich/hoffentlich) beendet wird, bevor er abgebrochen wird. 15.05.2017 Betriebssysteme: 04 - Scheduling 18

Diskussion: SPN - CPU-Stoßdauer Basis für die Schätzung ist die Mittelwertbildung über alle bisherigen CPU-Stoßlängen eines Prozesses: S n 1 = 1 n n i =1 T i = 1 n T n n 1 n S n Problem dieser Berechnung ist die gleiche Gewichtung aller CPU-Stöße Jüngere CPU-Stöße sind jedoch von größerer Bedeutung als ältere und sollten daher auch mit größerer Gewichtung berücksichtigt werden Ursache ist das Lokalitätsprinzip 15.05.2017 Betriebssysteme: 04 - Scheduling 19

Diskussion: SPN Stoßgewichtung Die weiter zurückliegenden CPU-Stöße sollen weniger Gewicht erhalten: S n 1 =α T n 1 α S n Für den konstanten Gewichtungsfaktor α gilt dabei: 0 < α < 1 Er drückt die relative Gewichtung einzelner CPU-Stöße der Zeitreihe aus Rekursive Einsetzung führt zu... S n 1 =α T n 1 α α T n 1 1 α i α T n i 1 α n S 1 n 1 S n 1 =α 1 α i T n i 1 α n S 1 Dieses statistische i=0 für α = 0.8: S n 1 =0.8T n 0.16T n 1 0.032T n 2 0.0064T n 3 Verfahren nennt man auch exponentielle Glättung. 15.05.2017 Betriebssysteme: 04 - Scheduling 20

Shortest Remaining Time First SRTF Erweitert den SPN-Ansatz um Verdrängung Dadurch geeignet für den Dialogbetrieb Führt zu besseren Durchlaufzeiten Der laufende Prozess wird verdrängt, wenn gilt: T erw < T rest T erw ist die erwartete CPU-Stoßlänge eines eintreffenden Prozesses T rest ist die verbleibende CPU-Stoßlänge des laufenden Prozesses Anders als RR basiert SRTF nicht auf Zeitgeberunterbrechungen, ist aber präemptiv Dafür müssen allerdings Stoßlängen abgeschätzt werden Wie SPN kann auch SRTF Prozesse zum Verhungern bringen 15.05.2017 Betriebssysteme: 04 - Scheduling 21

Highest Response Ratio Next HRRN Vermeidet das bei SRTF mögliche Verhungern von CPU-lastigen Prozessen Das Altern (aging), d. h. die Wartezeit von Prozessen wird berücksichtigt R= w s s w ist die bisherige Wartezeit des Prozesses s ist die erwartete Bedienzeit Ausgewählt wird immer der Prozess mit dem größten Verhältniswert R 15.05.2017 Betriebssysteme: 04 - Scheduling 22

Feedback FB Begünstigt kurze Prozesse, ohne die relativen Längen der Prozesse abschätzen zu müssen. Grundlage ist die Bestrafung (penalization) von Langläufern Prozesse unterliegen dem Verdrängungsprinzip Mehrere Bereitlisten kommen zum Einsatz, je nach Anzahl von Prioritätsebenen Wenn ein Prozess erstmalig eintrifft, läuft er auf höchster Ebene Mit Ablauf der Zeitscheibe, kommt er in die nächst niedrigere Ebene Die unterste Ebene arbeitet nach RR Kurze Prozesse laufen relativ schnell durch, lange Prozesse können verhungern Die Wartezeit kann berücksichtigt werden, um wieder höhere Ebenen zu erreichen (anti-aging) 15.05.2017 Betriebssysteme: 04 - Scheduling 23

FB Scheduling-Modell 15.05.2017 Betriebssysteme: 04 - Scheduling 24

Diskussion: Prioritäten Ein Prozess- Vorrang, der Zuteilungsentscheidungen maßgeblich beeinflusst Statische Prioritäten werden zum Zeitpunkt der Prozesserzeugung festgelegt Der Wert kann im weiteren Verlauf nicht mehr verändert werden Das Verfahren erzwingt eine deterministische Ordnung zwischen Prozessen Dynamische Prioritäten werden während der Prozesslaufzeit aktualisiert Die Aktualisierung erfolgt im Betriebssystem, aber auch vom Benutzer aus SPN, SRTF, HRRN und FB sind Spezialfälle dieses Verfahrens 15.05.2017 Betriebssysteme: 04 - Scheduling 25

Kombinationen Multilevel Scheduling Mehrere Betriebsformen lassen sich nebeneinander ( gleichzeitig ) betreiben. Z. B. gleichzeitige Unterstützung von {Dialog- und Hintergrundbetrieb, Echtzeit- und sonstigem Betrieb} Dialogorientierte bzw. zeitkritische Prozesse werden bevorzugt bedient Die technische Umsetzung erfolgt typischerweise über mehrere Bereitlisten. Jeder Bereitliste ist eine bestimmte Zuteilungsstrategie zugeordnet Die Listen werden typischerweise nach Priorität, FCFS oder RR verarbeitet Ein höchst komplexes Gebilde multi-level feedback (MLFB) FB kann als Spezialfall dieses Verfahrens aufgefasst werden. 15.05.2017 Betriebssysteme: 04 - Scheduling 26

Kombinationen Multilevel Scheduling höchste Priorität Systemprozesse Interaktive Prozesse Stapelverarbeitungsprozesse Studentenprozesse niedrigste Priorität Quelle: Silberschatz 15.05.2017 Betriebssysteme: 04 - Scheduling 27

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Beispiele UNIX (4.3BSD) NT 15.05.2017 Betriebssysteme: 04 - Scheduling 28

Ziele = Bewertungskriterien Benutzerorientiert Durchlaufzeit Zeit zwischen Eingang und Abschluss eines Prozesses einschließlich der Wartezeit(en) Stapelverarbeitung Antwortzeit Zeit zwischen Benutzereingabe und Antwort interaktive Systeme Termineinhaltung Für die Interaktion mit äußeren physikalischen Prozessen sollten Termine eingehalten werden Echtzeitsysteme Vorhersagbarkeit Prozesse werden unabhängig von der Last immer gleich bearbeitet harte Echtzeitsysteme Systemorientiert Durchsatz Möglichst viele Prozesse pro Zeiteinheit abarbeiten CPU-Auslastung CPU sollte möglichst immer beschäftigt sein. Overhead (Scheduling-Entscheidung, Kontextwechsel) vermeiden. Fairness Kein Prozess soll benachteiligt werden (z.b. Aushungern ) Lastausgleich Auch E/A-Geräte sollen gleichmäßig ausgelastet werden 15.05.2017 Betriebssysteme: 04 - Scheduling 29

Gegenüberstellung quantitativ Prozess A B C D E Mittelwert Start 0 2 4 6 8 Bedienzeit T s 3 6 4 5 2 FCFS Ende 3 9 13 18 20 Durchlauf T r 3 7 9 12 12 8,60 T r /T s 1,00 1,17 2,25 2,40 6,00 2,56 RR Ende 4 18 17 20 15 q=1 Durchlauf T r 4 16 13 14 7 10,80 T r /T s 1,33 2,67 3,25 2,80 3,50 2,71 SPN Ende 3 9 15 20 11 Durchlauf T r 3 7 11 14 3 7,60 T r /T s 1,00 1,17 2,75 2,80 1,50 1,84 SRTF Ende 3 15 8 20 10 Durchlauf T r 3 13 4 14 2 7,20 T r /T s 1,00 2,17 1,00 2,80 1,00 1,59 HRRN Ende 3 9 13 20 15 Durchlauf T r 3 7 9 14 7 8,00 T r /T s 1,00 1,17 2,25 2,80 3,50 2,14 FB Ende 4 20 16 19 11 q=1 Durchlauf T r 4 18 12 13 3 10,00 T r /T s 1,33 3,00 3,00 2,60 1,50 2,29 15.05.2017 Betriebssysteme: 04 - Scheduling 30 Aus William Stallings, Betriebssysteme Prinzipien und Umsetzung

Gegenüberstellung qualitativ präemptiv/ Vorhersage Implement.- Verhungern Auswirkung Strategie kooperativ nötig aufwand möglich auf Prozesse FCFS kooperativ nein minimal nein Konvoi-Effekt RR präemptiv (Zeitgeber) nein klein nein Fair, aber benachteiligt E/Alastige Prozesse SPN kooperativ ja groß ja Benachteiligt CPU-lastige Prozesse präemptiv Benachteiligt CPU-lastige SRTF (bei Eingang) ja größer ja Prozesse Gute Lastverteilung HRRN kooperativ ja groß nein FB präemptiv (Zeitgeber) nein größer ja Bevorzugt u.u. E/A-lastige Prozesse 15.05.2017 Betriebssysteme: 04 - Scheduling 31 In Anlehnung an William Stallings, Betriebssysteme Prinzipien und Umsetzung

Inhalt Wiederholung Abfertigungszustände und Zustandsübergänge Klassische CPU-Zuteilungsstrategien FCFS...einfach RR, VRR... zeitscheibenbasiert SPN (SJF), SRTF, HRRN... vorhersagebasiert FB (MLQ, MLFQ)... prioritätenbasiert Bewertungskriterien und Vergleich Beispiele UNIX (4.3BSD) NT 15.05.2017 Betriebssysteme: 04 - Scheduling 32

UNIX Zweistufiges präemptives Verfahren mit dem Ziel, Antwortzeiten zu minimieren Kein Long-Term Scheduling high-level: mittelfristig mit Ein-/Auslagerung (swapping) arbeitend low-level: kurzfristig präemptiv, MLFB, dynamische Prozessprioritäten Einmal pro Sekunde: prio = cpu_usage + p_nice + base Jeder Tick (1/10 s) verringert das Nutzungsrecht über die CPU durch Erhöhung von cpu_usage beim laufenden Prozess hohe prio Zahl = niedrige Priorität Das Maß der CPU-Nutzung (cpu_usage) wird über die Zeit gedämpft Die Dämpfungs-/Glättungsfunktion variiert von UNIX zu UNIX 15.05.2017 Betriebssysteme: 04 - Scheduling 33

UNIX 4.3 BSD (1) Jeden vierten Tick (40ms) erfolgt die Berechnung der Benutzerpriorität: P usrpri =min PUSER P cpu 4 2 P nice,127 P cpu nimmt mit jedem Tick um 1 zu und wird einmal pro Sekunde geglättet: P cpu Glättung für erwachte Prozesse, die länger als eine Sekunde blockiert waren: P cpu 2 load 2 load 1 P cpu P nice 2 load 2 load 1 P slptime Pcpu 15.05.2017 Betriebssysteme: 04 - Scheduling 34

UNIX 4.3 BSD (2) Glättung (decay filter) bei einer angenommenen mittleren Auslastung (load) von 1 gilt P cpu := 0.66 P cpu +P nice. Ferner sei angenommen, ein Prozess sammelt T i Ticks im Zeitinterval i an und P nice = 0 P cpu1 = 0.66 T 0 P cpu2 = 0.66 (T 1 + 0.66 T 0 ) = 0.66 T 1 +0.44 T 0 P cpu3 = 0.66 T 2 + 0.44 T 1 + 0.30 T 0 P cpu4 = 0.66 T 3 +...+ 0.20 T 0 P cpu5 = 0.66 T 4 +...+ 0.13 T 0 Nach 5 Sekunden gehen nur noch 13% alte Auslastung ein 15.05.2017 Betriebssysteme: 04 - Scheduling 35

Windows NT Prioritätsklassen Präemptive, prioritäts- und zeitscheibenbasierte Einplanung von Fäden (Threads) Verdrängung erfolgt auch dann, wenn der Faden sich im Kern befindet nicht so bei UNIX & Co RR bei gleicher Priorität: 0 reserviert, 1 15 variabel, 16-31 Echtzeit Die Art des Fadens (Vorder-/Hintergrund) bestimmt das Zeitquantum eines Fadens Quantum Stretching Quantum (zwischen 6 und 36) vermindert sich mit jedem Tick (10 bzw. 15ms) um 3 oder um 1, falls der Faden in den Wartezustand geht Die Zeitscheibenlänge variiert mit den Prozessen: 20 180ms Vordergrund/Hintergrund, Server/Desktop-Konfiguration Zudem variable Priorität: process_priority_class + relative_thread_priority + boost 15.05.2017 Betriebssysteme: 04 - Scheduling 36

NT Prioritätsanpassung Fadenprioritäten werden in bestimmten Situationen dynamisch angehoben: Dynamic Boost Abschluss von Ein-/Ausgabe (Festplatten) +1 Mausbewegung, Tastatureingabe +6 Deblockierung, Betriebsmittelfreigabe (Semaphor, Event, Mutex) +1 Andere Ereignisse (Netzwerk, Pipe,... ) +2 Ereignis im Vordergrundprozess +2 Die dynamic boosts werden mit jedem Tick wieder verbraucht Fortschrittsgarantie Verhindert das Aushungern von Threads Alle 3 4 s erhalten bis zu 10 benachteiligte Fäden für zwei Zeitscheiben die Priorität 15 15.05.2017 Betriebssysteme: 04 - Scheduling 37

Zusammenfassung Betriebssysteme treffen CPU-Zuteilungsentscheidungen auf drei Ebenen: Long-Term Scheduling: Zulassung von Prozessen zum System Medium-Term Scheduling: Aus- und Einlagerung von Prozessen Short-Term Scheduling: kurzfristige CPU-Zuteilung Alle hier betrachteten Verfahren werden dem Short-Term Scheduling zugerechnet. Es gibt diverse benutzer- und systemorientierte Kriterien für die Beurteilung der Eigenschaften eines CPU-Zuteilungsverfahrens. Die Auswahl kommt einer Gratwanderung gleich. Das beste Verfahren lässt sich nur nach einer Analyse des typischen Anwendungsprofils und aller Randbedingungen finden. 15.05.2017 Betriebssysteme: 04 - Scheduling 38