8. Vorlesung Betriebssysteme



Ähnliche Dokumente
Betriebssysteme (BTS)

5. Foliensatz Betriebssysteme und Rechnernetze

8. Foliensatz Betriebssysteme

Systeme 1. Kapitel 5. Scheduling

Lösung von Übungsblatt 8

7.Vorlesung Betriebssysteme Hochschule Mannheim

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

Round-Robin Scheduling (RR)

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Übungen zum Fach Betriebssysteme Kapitel 3

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

CPU-Scheduling - Grundkonzepte

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Dokumentation Schedulingverfahren

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

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

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Dämon-Prozesse ( deamon )

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

EasyWk DAS Schwimmwettkampfprogramm

Echtzeitscheduling (1)

Domänenanalyse Threadverwaltung/Scheduling

Grundlagen der Theoretischen Informatik, SoSe 2008

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Betriebssysteme und Systemsoftware

3.14 Die Programmieroberfläche Programmierung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

1 topologisches Sortieren

Es kann maximal ein Prozess die Umladestelle benutzen.

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

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

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

Urlaubsregel in David

Monitoring-Service Anleitung

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Hausübung 2(Musterlösung)

Local Control Network

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Betriebssystembau (BSB)

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

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

Datensicherung. Beschreibung der Datensicherung

Erstellen von x-y-diagrammen in OpenOffice.calc

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Primzahlen und RSA-Verschlüsselung

1. Allgemeines zum tevitel.wq-monitor Seite WQ-Monitor konfigurieren Seite 4

Übung zu Grundlagen der Betriebssysteme. 7. Übung

Orderarten im Wertpapierhandel

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

Leichte-Sprache-Bilder

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Kreativ visualisieren

Lizenzen auschecken. Was ist zu tun?

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

3. Scheduler und Schedulingstrategien

Speicher in der Cloud

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

ecaros2 - Accountmanager


Anleitung zur Nutzung des SharePort Utility

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

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

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

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Formular»Fragenkatalog BIM-Server«

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

Grundlagen verteilter Systeme

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Step by Step Webserver unter Windows Server von Christian Bartl

Südbaden-Cup. Ausstieg Champions

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Anleitung über den Umgang mit Schildern

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Technische Analyse der Zukunft

Zuschauer beim Berlin-Marathon

Veranstaltungsbelegung in QIS/LSF -- Leitfaden für BW-Studierende --

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Zwischenablage (Bilder, Texte,...)

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Backup der Progress Datenbank

Internet Explorer Version 6

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Zeichen bei Zahlen entschlüsseln

TIMI: Technische Informatik für Medieninformatiker

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Installation und Inbetriebnahme von SolidWorks

Transkript:

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/69 8. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 2/69 Heute Unterbrechungen Interrupts Exceptions Der Dispatcher (Prozessumschalter) Präemptives und nicht-präemptives Scheduling Klassische und moderne Scheduling-Verfahren Scheduling-Beispiele

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 3/69 Unterbrechungen Unterbrechungen sind nötig, weil häufig unvorhersehbare Ereignisse eintreten, auf die ein Computer-System reagieren muss Unterbrechungen sind Ereignisse, deren Behandlung keinen Aufschub zulässt Häufige Unterbrechungen sind: Fehlersituation (Fehler bei einer Rechenoperation) Division durch Null, Gleitkommafehler, Adressfehler, usw. Software-Interrupt bzw. Exception (Wird durch einen Prozess ausgelöst) Beispiele sind der Exception 0x80, um vom Benutzermodus in den Kernelmodus zu wechseln und der Einzelschrittbetrieb beim Programmtest (Debugging, Trace) Hardware-Interrupt Ein-/Ausgabe-Geräte liefern Rückmeldungen an einen Prozess oder das Auftreten eines Stromausfalls

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 4/69 Ein Beispiel für eine Unterbrechung Die Prozesse X und Y kommunizieren über ein Netzwerk Beide Prozesse befinden sich auf unterschiedlichen Rechnern Antwortet ein Prozess nicht innerhalb eines festgelegten Zeitraums (Timeout) auf eine Nachricht, soll diese erneut geschickt werden Grund: Es wird von einem Verlust der Nachricht ausgegangen Es gibt zwei Möglichkeiten eine solche Bedingung zu realisieren: Auf blockierende Art Auf nicht-blockierende Art

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 5/69 Blockierende Realisierung Prozess X wird so lange blockiert, bis die Nachricht quittiert oder der Timeout verstrichen ist Kommt die Quittung an, darf Prozess X weiterlaufen Ansonsten muss Prozess X die Nachricht neu senden Nachteil: Es entstehen lange Leerlaufzeiten für Prozess X

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 6/69 Nicht-blockierende Realisierung Prozess X läuft nach dem Senden der Nachricht ganz normal weiter Kommt es zum Timeout wegen einer fehlenden Quittung, suspendiert das Betriebssystem den Prozess Die Registerwerte des Prozesses werden gesichert und eine spezielle Prozedur zur Behandlung des Signals gestartet In diesem Beispiel würde die Prozedur die Nachricht erneut senden Ist die Prozedur beendet, wird der Prozess wieder reaktiviert Nicht-blockierende Unterbrechungen können mit Interrupts und Exceptions realisiert werden

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 7/69 Unterbrechungsarten Interrupts (1/3) Interrupts sind externe Unterbrechungen Sie werden durch Ereignisse außerhalb des zu unterbrechenden Prozesses ausgelöst (z.b. ein Ein-/Ausgabe-Gerät meldet das Ende eines E/A-Prozesses) Das Konzept der Interrupts wird von der Hardware angeboten Es gibt auch Softwareinterrupts (Exceptions) Diese werden wie Hardwareinterrupts behandelt, aber von Software ausgelöst Ein Interrupt signalisiert ein Ereignis und das Betriebssystem bietet eine Behandlung des Ereignisses an

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 8/69 Unterbrechungsarten Interrupts (2/3) Der normale Ablauf der CPU wird unterbrochen und es wird eine Unterbrechungsbehandlung (Unterbrechungsroutine), die Interrupt Service Routine, im Kernel aktiviert Der Befehlszähler wird auf die Adresse der Unterbrechungsroutine gesetzt und es wird dort weitergearbeitet Das Betriebssystem sichert den Prozess-Kontext und stellt diesen nach Abschluss der Unterbrechungsroutine wieder her

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 9/69 Unterbrechungsarten Interrupts (2/3) Das Betriebssystem verwaltet eine Liste mit den Adressen aller Unterbrechungsroutinen Diese Liste heißt Unterbrechungsvektor (Interrupt Vector) Interrupts sind notwendig, um... schnell auf Signale von Ein-/Ausgabe-Geräten (z.b. Maus, Tastatur, Festplatte, Netzwerk, usw.) reagieren zu können auf zeitkritische Ereignisse reagieren zu können Ohne Interrupts ist präemptives Multitasking nicht möglich Präemptives Multitasking = verdrängendes Multitasking Bei diesem kann einem Prozess die CPU vor seiner Fertigstellung entzogen werden

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 10/69 Unterbrechungsarten Exceptions Exceptions sind interne Unterbrechungen oder Ausnahmen/Alarme Werden vom Prozess selbst ausgelöst Können an jeder Stelle im Programmcode ausgelöst werden Auch bei Exceptions kommt es zu einer Unterbrechung der CPU und es wird eine Unterbrechungsbehandlung (Unterbrechungsroutine) im Kernel aktiviert Exceptions werden in der Softwareentwicklung hauptsächlich eingesetzt, um die Programme robuster zu machen gegen: Fehlerhafte Eingaben Programmierfehler (Division durch 0, Addition verursacht Überlauf) Gerätefehler (Gerät nicht erreichbar, Festplatte voll) Weitere Vorteile von Exceptions Trennung zwischen Algorithmus und Fehlerbehandlung Die Fehlerbehandlung ist durch den Compiler überprüfbar

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 11/69 Konflikte bei Unterbrechungen (Interrupts) Zwei mögliche Konflikte bei der Unterbrechungsbehandlung: Während einer Unterbrechungsbehandlung treten weitere Interrupts auf Es kommt zu mehreren Unterbrechungen gleichzeitig Zwei mögliche Lösungen: Sequentielle Interrupt-Verarbeitung Verschachtelte Interrupt-Verarbeitung

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 12/69 Sequentielle Interrupt-Verarbeitung Sequentielle Interrupt-Verarbeitung Die Interrupts werden strikt nacheinander bearbeitet und nicht selbst unterbrochen Prioritäten und zeitkritische Reaktionen werden ignoriert

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 13/69 Verschachtelte Interrupt-Verarbeitung Verschachtelte Interrupt-Verarbeitung Für die Interrupts werden Prioritäten festgelegt Unterbrechungsbehandlungen können unterbrochen werden, wenn eine Unterbrechung mit höherer Priorität auftritt Unterbrechungen mit niederer Priorität werden zurückgestellt, bis alle Unterbrechungen mit höherer Priorität abgearbeitet sind

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 14/69 Prozesswechsel Der Dispatcher (1/2) Beim Mehrprogrammbetrieb (Multitasking) fallen dem Betriebssystem u.a. zwei Aufgaben zu: Dispatching: Umschalten des Prozessors bei einem Prozesswechsel Scheduling: Festlegen des Zeitpunkts des Prozesswechsels und der Ausführungsreihenfolge der Prozesse Der Dispatcher (Prozessumschalter) führt die Zustandsübergänge der Prozesse durch Beim Prozesswechsel entzieht der Dispatcher dem rechnenden Prozess die CPU und teilt sie dem Prozess zu, der in der Warteschlange an erster Stelle steht Bei Übergängen zwischen den Zuständen bereit und blockiert werden vom Dispatcher die entsprechenden Prozesskontrollblöcke aus den Zustandslisten entfernt und entsprechend neu eingefügt Es handelt sich hierbei um reine Listenoperationen Übergänge aus oder in den Zustand rechnend bedeuten immer einen Wechsel des aktuell rechnenden Prozesses auf der CPU

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 15/69 Prozesswechsel Der Dispatcher (2/2) Beim Prozesswechsel in oder aus dem Zustand rechnend, muss immer durch den Dispatcher... der Kontext, also die Registerinhalte des aktuell ausgeführten Proesses im Prozesskontrollblock gespeichert (gerettet) werden der Prozessor einem anderen Prozess zugeteilt werden der Kontext (Registerinhalte) des jetzt auszuführenden Prozesses aus seinem Prozesskontrollblock wieder hergestellt werden Der Leerlaufprozes (Idle Task) Bei modernen Betriebssystemen erhält die CPU zu jedem Zeitpunkt einen Prozess Ist kein Prozess im Zustand bereit, kommt der Leerlaufprozes zum Zug Der Leerlaufprozess ist immer aktiv und hat die niedrigste Priorität Durch den Leerlaufprozesses muss der Scheduler nie den Fall berücksichtigen, dass kein aktiver Prozess existiert Auf modernen Prozessor-Architekturen versetzt der Leerlaufprozess die CPU in einen stromsparenden Modus

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 16/69 Festlegen der Ausführungsreihenfolge Scheduling Beim Scheduling weist das Betriebssystem die Prozessen den Prozessoren (Cores), in einer bestimmten Reihenfolge zu, um eine möglichst optimale Leistung zu erzielen Beim Scheduling legt des Betriebssystem die Ausführungsreihenfolge der Prozesse im Zustand bereit fest Die Entscheidung, welcher Prozess wann an der Reihe ist, ist vom Scheduling-Algorithmus abhängig Man unterscheidet vier Typen (Arten) des Schedulings: Langfristiges Scheduling Mittelfristiges Scheduling Kurzfristiges Scheduling E/A-Scheduling Der kurzfristige Scheduler heißt Dispatcher

Langfristiges Scheduling Entscheidung ob ein Prozess in den Pool der auszuführenden Prozesse aufgenommen wird Regelt den Grad des Mehrprogrammbetriebs Es macht Sinn, die Anzahl der laufenden Prozesse zu begrenzen Je mehr Prozesse erzeugt werden, desto weniger Rechenzeit bleibt für die Ausführung der einzelnen Prozesse Mittelfristiges Scheduling Entscheidung ob ein Prozess ganz oder teilweise im Hauptspeicher gehalten oder ausgelagert wird Kurzfristiges Scheduling Entscheidung welchem Prozess als nächstes die CPU zugewiesen wird Dieser Scheduler wird aktiviert, wenn ein Ereignis eintritt, das zur Aussetzung oder Verdrängung des aktuellen Prozesses führen kann Denkbare Ereignisse sind Signale, Interrupts, Systemaufrufe, usw. E/A-Scheduling Entscheidung welche E/A-Anforderung eines Prozesses von einem E/A-Gerät bearbeitet werden soll Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 17/69 Vier Typen (Arten) des Scheduling

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 18/69 Scheduling-Grundsätze Beim Scheduling wird versucht folgende Grundsätze einzuhalten: Antwortzeit: Latenz. Wichtig besonders bei interaktiven Systemen Durchlaufzeit bzw. Turnaround: Zeit zwischen Eingang und Abschluss eines Prozesses soll möglichst nahe an der reinen Ausführungszeit sein Durchsatz: Abarbeitung möglichst vieler Prozesse pro Zeitintervall Effizienz: Möglichst vollständige Auslastung der CPU Termineinhaltung: Prozesse, die zu einem bestimmten Termin fertig werden müssen, werden so eingeplant, dass der Termin eingehalten wird Fairness: Kein Prozess soll dauerhaft vernachlässigt werden Overhead: Der zeitliche Aufwand für das Scheduling soll minimal sein Vorhersagbarkeit: Zeit und Kosten von gleichen Prozessen soll unabhängig sein von der Systemauslastung Durchsetzen von Prioritäten: Wenn Prozessen Prioritäten zugewiesen wurden, sollen diese beim Scheduling berücksichtigt werden Gleichmäßige Ressourcenauslastung: Alle Ressourcen sollen möglichst ständig beschäftigt werden. Prozesse, die freie Ressourcen anfordern, sollen bevorzugt behandelt werden

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 19/69 Scheduling-Kriterien und Scheduling-Strategien Keine Scheduling-Strategie... ist für jedes System optimal geeignet kann alle Scheduling-Kriterien wie z.b. CPU-Auslastung, Durchsatz, Wartezeit, Verweilzeit, Echtzeitverhalten, Fairness optimal berücksichtigen Bei der Auswahl einer Scheduling-Strategie muss immer ein geeigneter Kompromiss zwischen den Scheduling-Kriterien gefunden werden Die Schedulingverfahren können in zwei Klassen unterteilt werden: Nicht-präemptives Scheduling (nicht-verdrängendes Scheduling) Präemptives Scheduling (verdrängendes Scheduling)

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 20/69 Nicht-präemptives und präemptives Scheduling Nicht-präemptives Scheduling (nicht-verdrängendes Scheduling) Ein Prozess, der vom Scheduler die CPU zugewiesen bekommen hat, behält die Kontrolle über diese bis zu seiner vollständigen Fertigstellung Kein vorzeitiger Entzug der CPU durch den Scheduler vorgesehen Problematisch: Ein Prozess kann die CPU so lange belegen wie er will Belegt ein Prozess die CPU, ist es häufig so, dass andere, vielleicht dringendere Prozesse für lange Zeit nicht zum Zuge kommen Präemptives Scheduling (verdrängendes Scheduling) Einem Prozess kann die CPU vor seiner Fertigstellung entzogen werden Wird einem Prozess die CPU entzogen, pausiert er so lange in seinem aktuellen Zustand, bis der Scheduler ihm erneut die CPU zuteilt Schwieriger zu implementieren als nicht-präemptives Scheduling Verursacht mehr Overhead als nicht-präemptives Scheduling Die Vorteile von präemptivem Scheduling, besonders die Beachtung von Prozessprioritäten, überwiegen die Nachteile bei weitem

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 21/69 Scheduling-Verfahren Zahlreiche Scheduling-Verfahren (Algorithmen) existieren Jedes Scheduling-Verfahren versucht unterschiedlich stark, die bekannten Scheduling-Kriterien und Grundsätze einzuhalten Bekannte Scheduling-Verfahren sind: Prioritätengesteuertes Scheduling First Come First Served (FCFS) bzw. First In First Out (FIFO) Last Come First Served (LCFS) Round Robin (RR) mit Zeitquantum Shortest Job First (SJF) und Longest Job First (LJF) Shortest Remaining Time First (SRTF) Longest Remaining Time First (LRTF) Highest Response Ratio Next (HRRN) Earliest Deadline First (EDF) Fair-Share Statisches Multilevel-Scheduling Multilevel-Feedback-Scheduling

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 22/69 Prioritätengesteuertes Scheduling Prozesse werden nach ihrer Priorität, also ihrer Wichtigkeit bzw. Dringlichkeit abgearbeitet Es wird immer dem Prozess im Zustand bereit die CPU zugewiesen, der die höchste Priorität hat Die Priorität kann von verschiedenen Kriterien abhängen, z.b. benötigte Ressourcen, Rang des Benutzers, geforderte Echtzeitkriterien, usw. Kann präemptiv (verdrängend) und nicht-präemptiv (nicht-verdrängend) sein Die Prioritätenvergabe kann statisch oder dynamisch sein Statische Prioritäten ändern sich während der gesamten Lebensdauer eines Prozesses nicht und werden häufig in Echtzeitsystemen verwendet Dynamische Prioritäten werden von Zeit zu Zeit angepasst = Multilevel-Feedback Scheduling Gefahr beim (statischen) prioritätengesteuertem Scheduling: Prozesse mit niedriger Priorität können verhungern

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 23/69 Prioritätengesteuertes Scheduling

Beispiel zum Prioritätengesteuerten Scheduling Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Alle Prozesse kommen gleichzeitig an Prozess CPU-Laufzeit Priorität A 8 ms 3 B 4 ms 15 C 7 ms 8 D 13 ms 4 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 32 4 11 24 Wartezeit der Prozesse Prozess A B C D Wartezeit 24 0 4 11 32+4+11+24 4 = 17, 75 ms 24+0+4+11 4 = 9, 75 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 24/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 25/69 First Come First Served (FCFS) Funktioniert nach dem Prinzip First In First Out (FIFO) Die Prozesse werden entsprechend ihrer Ankunftsreihenfolge bedient Dieses Scheduling-Verfahren ist vergleichbar mit einer Warteschlange von Kunden in einem Geschäft Laufende Prozesse werden nicht unterbrochen Es handelt sich um nicht-präemptives (nicht-verdrängendes) Scheduling FCFS ist fair Alle Prozesse werden berücksichtigt Die mittlere Wartezeit kann unter Umständen sehr hoch sein Prozesse mit kurzer Abarbeitungszeit müssen eventuell lange warten, wenn vor ihren Prozesse mit langer Abarbeitungszeit eingetroffen sind Wird häufig mit einem Prioritätsverfahren zu einer effektiven Scheduling-Strategie kombiniert

Beispiel zu First Come First Served Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Prozess CPU-Laufzeit Ankunftszeit A 8 ms 0 B 4 ms 1 C 7 ms 3 D 13 ms 5 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 8 11 16 27 Wartezeit der Prozesse Prozess A B C D Wartezeit 0 7 9 14 8+11+16+27 4 = 15, 5 ms 0+7+9+14 4 = 7, 5 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 26/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 27/69 Last Come First Served (LCFS) Die Prozesse werden in der umgekehrten Ankunftsreihenfolge bedient Laufende Prozesse werden nicht unterbrochen Die Prozesse behalten den Zugriff auf die CPU bis zu Beendigung oder freiwilligen Abgabe LCFS ist nicht fair Beim kontinuierlichen Eintreffen neuer Prozesse werden die alten Prozesse nicht berücksichtigt und können dadurch verhungern Wird in der reinen Form selten berücksichtigt

Beispiel zu Last Come First Served Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Prozess CPU-Laufzeit Ankunftszeit A 8 ms 0 B 4 ms 1 C 7 ms 3 D 13 ms 5 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 8 31 25 16 Wartezeit der Prozesse Prozess A B C D Wartezeit 0 27 18 3 8+31+25+16 4 = 20 ms 0+27+18+3 4 = 12 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 28/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 29/69 Last Come First Served Präemptive Variante (LCFS-PR) Ein neuer Prozess in der Bereitliste verdrängt den aktuell laufenden Prozesse von der CPU Verdrängte Prozesse werden an das Ende der Warteschlange eingereiht Werden keine neuen Prozesse gestartet, findet auch keine Verdrängung statt Kurze Prozesse werden bevorzugt Ein kurzer Prozess hat die Chance, noch vor dem Eintreffen eines neuen Prozesse fertig zu sein Lange Prozesse werden u.u. mehrfach verdrängt und dadurch stark verzögert Es besteht die Gefahr, dass lange Prozesse nie Zugriff auf die CPU erhalten und verhungern Wird in der reinen Form selten berücksichtigt

Beispiel zu Last Come First Served Präemptive Variante Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Prozess CPU-Laufzeit Ankunftszeit A 8 ms 0 B 4 ms 1 C 7 ms 3 D 13 ms 5 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 32 24 20 13 Wartezeit der Prozesse Prozess A B C D Wartezeit 24 20 13 0 32+24+20+13 4 = 22, 25 ms 24+20+13+0 4 = 14, 25 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 30/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 31/69 Round Robin (RR) Zeitscheibenverfahren (1/3) Es werden Zeitschlitze (englisch: Time Slices), auch Zeitscheiben oder Zeitquanten genannt, mit einer festen Dauer festgelegt Die Prozesse werden in einer zyklischen Warteschlange nach dem FIFO-Prinzip eingereiht Der erste Prozess der Warteschlange erhält für die Dauer einer Zeitscheibe Zugriff auf die CPU Nach dem Ablauf der Zeitscheibe, Beendigung oder Unterbrechung des Prozesses, wird diesem der Zugriff auf die CPU wieder entzogen und er wird am Ende der Warteschlange eingereiht Wird ein Prozess erfolgreich beendet, wird er auf der Warteschlange entfernt Neue Prozesse werden am Ende der Warteschlange eingereiht Die Zugriffszeit auf die CPU wird nahezu gleichmäßig und fair auf die vorhandenen Prozesse aufgeteilt RR mit Zeitscheibengröße verhält sich wie FCFS

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 32/69 Round Robin (RR) Zeitscheibenverfahren (2/3) Je länger die Bearbeitungsdauer eines Prozesses ist, desto mehr Runden werden zu seiner vollständigen Ausführung benötigt Eine wichtige Rolle für die Geschwindigkeit spielt die Größe der Zeitschlitze Sind sie zu kurz, müssen viele Prozesswechsel stattfinden und der Scheduler muss oft aufgerufen werden = Hoher Overhead wegen des Verwaltungsaufwands Sind sie zu lang, geht die Gleichzeitigkeit verloren = Das System hängt Die Größe der Zeitschlitze liegt üblicherweise im ein- oder zweistelligen Millisekundenbereich Bevorzugt Prozesse, die eine kurze Abarbeitungszeit haben und muss die Bearbeitungsdauer der Prozesse nicht im Voraus kennen Präemptives (verdrängendes) Scheduling-Verfahren

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 33/69 Round Robin (RR) Zeitscheibenverfahren (3/3) Weitergabe des Zugriffs auf die CPU, bei: Ablauf der Zeitscheibe Beendigung (Terminierung) des Prozesses Unterbrechung (Blockierung) des Prozesses Prozess F Prozess E Prozess A Prozess B Prozess C Prozess D

Beispiel zu Round Robin Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Zeitquantum q = 1 ms Prozess A B C D CPU-Laufzeit 8 ms 4 ms 7 ms 13 ms Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 26 14 24 32 Wartezeit der Prozesse Prozess A B C D Wartezeit 18 10 17 19 26+14+24+32 4 = 24 ms 18+10+17+19 4 = 16 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 34/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 35/69 Shortest Job First (SJF) Heißt auch Shortest Process Next (SPN) Der Prozess mit der kürzesten Abarbeitungszeit erhält als erster Zugriff auf die CPU Nicht-präemptives (nicht-verdrängendes) Scheduling Hauptproblem: Für jeden Prozess muss bekannt sein, wie lange er bis zu seiner Terminierung braucht, also wie lange seine Abarbeitungszeit ist Ist in der Realität praktisch nie der Fall Lösung: Abschätzung der Abarbeitungszeit durch Approximation Bei der Approximation von SJF wird die Abarbeitungszeit eines Prozesses abgeschätzt, indem das Verhalten des Prozesses in der Vergangenheit (Statistische Erfassung = Erfahrungswerte) betrachtet wird Es wird angenommen, das sich ein Prozess in Zukunft gleich oder ähnlich verhält SJF ist nicht fair Prozesse mit kurzer Abarbeitungszeit werden bevorzugt Prozesse mit langer Abarbeitungszeit erhalten eventuell erst nach sehr langer Wartezeit oder nie Zugriff auf die CPU

Beispiel zu Shortest Job First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Alle Prozesse kommen gleichzeitig an Prozess A B C D CPU-Laufzeit 8 ms 4 ms 7 ms 13 ms Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 19 4 11 32 Wartezeit der Prozesse Prozess A B C D Wartezeit 11 0 4 19 19+4+11+32 4 = 16, 5 ms 11+0+4+19 4 = 8, 5 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 36/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 37/69 Shortest Remaining Time First (SRTF) Präemptives SJF heißt Shortest Remaining Time First (SRTF) Trifft ein neuer Prozess ein, wird die Restlaufzeit des aktuell rechnenden Prozesses mit jedem Prozess in der Liste der wartenden Prozesse verglichen Hat der aktuell rechnende Prozesses die kürzeste Restlaufzeit, darf er weiterrechnen Haben ein oder mehr Prozesse in der Liste der wartenden Prozesse eine kürzere Abarbeitungszeit bzw. Restlaufzeit, erhält der Prozess mit der kürzesten Restlaufzeit Zugriff auf die CPU Solange kein neuer Prozess eintrifft, kann auch kein rechnender Prozess unterbrochen werden Die Prozesse in der Liste der wartenden Prozesse werden nur dann mit dem aktuell rechnenden Prozess verglichen, wenn ein neuer Prozess eintrifft! Prozesse mit einer langen Laufzeit können verhungern

Beispiel zu Shortest Remaining Time First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Prozess CPU-Laufzeit Ankunftszeit A 8 ms 0 B 4 ms 3 C 7 ms 16 D 13 ms 11 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 12 4 7 21 Wartezeit der Prozesse Prozess A B C D Wartezeit 4 0 0 8 12+4+7+21 4 = 11 ms 4+0+0+8 4 = 3 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 38/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 39/69 Longest Job First (LJF) Der Prozess mit der längsten Abarbeitungszeit erhält als erster Zugriff auf die CPU Nicht-präemptives (nicht-verdrängendes) Scheduling Hauptproblem: Genau wie bei Shortest Job First muss bei jedem Prozess bekannt sein, wie lange seine Abarbeitungszeit ist Das ist in der Realität nur selten der Fall Die Abarbeitungszeit eines Prozesses abgeschätzt, indem das Verhalten des Prozesses in der Vergangenheit betrachtet wird Auch LJF ist nicht fair Prozesse mit langer Abarbeitungszeit werden bevorzugt Prozesse mit kurzer Abarbeitungszeit erhalten eventuell erst nach sehr langer Wartezeit Zugriff auf die CPU oder verhungern

Beispiel zu Longest Job First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Alle Prozesse kommen gleichzeitig an Prozess CPU-Laufzeit (ms) A 8 B 4 C 7 D 13 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 21 32 28 13 Wartezeit der Prozesse Prozess A B C D Wartezeit 13 28 21 0 21+32+28+13 4 = 23, 5 ms 13+28+21+0 4 = 15, 5 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 40/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 41/69 Longest Remaining Time First (LRTF) Präemptives LJF heißt Longest Remaining Time First (LRTF) Trifft ein neuer Prozess ein, wird die Restlaufzeit des aktuell rechnenden Prozesses mit jedem Prozess in der Liste der wartenden Prozesse verglichen Hat der aktuell rechnende Prozesses die längste Restlaufzeit, darf er weiterrechnen Haben ein oder mehr Prozesse in der Liste der wartenden Prozesse eine längere Abarbeitungszeit bzw. Restlaufzeit, erhält der Prozess mit der längsten Restlaufzeit Zugriff auf die CPU Solange kein neuer Prozess eintrifft, kann auch kein rechnender Prozess unterbrochen werden Die Prozesse in der Liste der wartenden Prozesse werden nur dann mit dem aktuell rechnenden Prozess verglichen, wenn ein neuer Prozess eintrifft! Prozesse mit kurzer Laufzeit können verhungern

Beispiel zu Longest Remaining Time First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Prozess CPU-Laufzeit Ankunftszeit A 8 ms 0 B 4 ms 6 C 7 ms 21 D 13 ms 11 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 32 4 7 20 Wartezeit der Prozesse Prozess A B C D Wartezeit 24 0 0 7 32+4+7+20 4 = 15, 75 ms 24+0+0+7 4 = 7, 75 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 42/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 43/69 Highest Response Ratio Next (HRRN) Um dem Problem des Verhungerns zu begegnen, wird das Alter der Prozesse berücksichtigt Antwortquotient (Response Ratio) wird für jeden Prozess berechnet Antwortquotient = geschätzte Rechenzeit + Wartezeit geschätzte Rechenzeit Der Antwortquotient hat bei der Erzeugung eines Prozesses den Wert 1.0 und steigt bei kurzen Prozessen schnell an Ziel: Der Antwortquotient soll für alle Prozesse möglichst gering sein Nach Beendigung oder bei Blockade eines Prozesses, dem Prozess mit dem höchsten Antwortquotient die CPU zuzuweisen Wie bei Shortest/Longest (Remaining) Job First müssen die Laufzeiten der Prozesse durch statistische Erfassung aus der Vergangenheit abgeschätzt werden HRRN ist fair Es ist unmöglich, dass bei HRRN Prozesse verhungern

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 44/69 Earliest Deadline First (EDF) Es wird darauf geachtet, dass die Prozesse nach Möglichkeit ihre Termine zur Fertigstellung, die Deadlines, einhalten können Die zum betrachteten Zeitpunkt bereitstehenden Prozesse werden aufsteigend nach ihrer Deadline geordnet Es erhält immer der Prozess die CPU zugewiesen, dessen Deadline am nächsten ist Eine Überprüfung und gegebenenfalls Neuorganisation der Prozess-Warteschlange findet immer dann statt, wenn ein neuer Prozess in den Zustand bereit wechselt oder ein aktiver Prozess beendet (terminiert) Kann als nicht-präemptives Scheduling und präemptives Scheduling realisiert werden Präemptives EDF wird bevorzugt in Echtzeitsystemen eingesetzt

Beispiel zu Earliest Deadline First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden Alle Prozesse kommen gleichzeitig an Prozess CPU-Laufzeit Deadline A 8 ms 25 B 4 ms 18 C 7 ms 9 D 13 ms 34 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) Laufzeit der Prozesse Prozess A B C D Laufzeit 19 11 7 32 Wartezeit der Prozesse Prozess A B C D Wartezeit 11 7 0 19 19+11+7+32 4 = 17, 25 ms 11+7+0+19 4 = 9, 25 ms Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 45/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 46/69 Fair-Share (1/2) Bei Fair-Share werden Ressourcen zwischen Gruppen von Prozessen in einer fairen Art und Weise aufgeteilt Besonderheit: Die Rechenzeit wird den Benutzern und nicht den Prozessen zugeteilt Die Rechenzeit, die ein Benutzer erhält, ist unabhängig von der Anzahl seiner Prozesse Die Ressourcenanteile, die die Benutzer erhalten, nennt man Shares Populär beim Cluster- und Grid-Computing Fair-Share wird in aktuellen Job-Schedulern und Meta-Schedulern zur Verteilung der Aufträge auf Ressourcen in Grid-Standorten und zwischen den Standorten in Grids eingesetzt

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 47/69 Fair-Share (2/2) Benutzer 1 Ressource Job-Queue A X B X C X A X B X C X A X B X C X... Benutzer 2 Prozesse: A B C Schedule: 50% Prozesse: X Schedule: 50% Benutzer 1 Ressource Job-Queue A B C X A B C X A B C X A B C X A B... Benutzer 2 Prozesse: A B C Schedule: 75% Prozesse: X Schedule: 25%

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 48/69 Multilevel-Scheduling Bei jeder Scheduling-Strategie müssen Kompromisse bzgl. der unterschiedlichen Scheduling-Kriterien gemacht werden Vorgehen in der Praxis: Mehrere Scheduling-Strategien kombinieren = Multilevel-Scheduling, auch Mehrebenen-Scheduling genannt Einfachste Form der Realisierung: Statisches Multilevel-Scheduling Dabei wird die bereit-liste in mehrere Teillisten unterteilt und in jeder Teilliste wird eine andere Scheduling-Strategie eingesetzt Die Teillisten haben meist unterschiedliche Prioritäten oder verschiedene Zeitmultiplexe (z.b. 80%:20% oder 60%:30%:10%) Gut geeignet, um zeitkrische von zeitunkritischen Threads zu trennen

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 49/69 Statisches Multilevel-Scheduling (1/2) Kopf der Warteschlange Prozessklasse 1 (Priorität 3) Prozess Y Prozess Z... Prozessklasse 2 (Priorität 2) Prozess A Prozess B Prozess C Prozess D... Prozessklasse 3 (Priorität 1) Prozess S Prozess T Prozess U...... Die bereit-liste ist in mehrere Teillisten unterteilt Jede Teilliste verwendet ein anderes Scheduling-Verfahren Die höchste Prozessklasse hat üblicherweise die höchste Priorität Die niedrigste Prozessklasse hat die Priorität 1

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 50/69 Statisches Multilevel-Scheduling (2/2) Ein Beispiel für eine Unterteilung der Prozesse in verschiedene Prozessklassen (Teillisten) und die verwendeten Scheduling-Strategien, könnte wie folgt aussehen: Priorität Prozessklasse Scheduling-Strategie 3 Echtzeitprozesse (zeitkritisch) Prioritätengesteuert 3 Interaktive Prozesse Round Robin 2 E/A-Intensive Prozesse Round Robin 1 Rechenintensive Stapelprozesse First Come First Served

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 51/69 Multilevel-Feedback-Scheduling (1/2) Bei Mehrprogrammbetrieb und Mehrbenutzerbetrieb ist es unmöglich, die Rechenzeit im voraus verlässlich zu kalkulieren Lösung: Aufträge, die schon länger aktiv sind, werden bestraft Multilevel-Feedback-Scheduling arbeitet wie Multilevel-Scheduling mit mehreren Warteschlangen Jede Warteschlange hat eine unterschiedliche Priorität Ein neuer Prozess kommt in die oberste Warteschlange Damit hat er die höchste Priorität Innerhalb jeder Warteschlange wird Round Robin eingesetzt Gibt ein Prozess die CPU freiwillig wieder ab, wird er wieder in die selbe Warteschlange eingereiht, sobald er wieder bereit Hat ein Prozess seine volle Zeitscheibe genutzt, kommt er in die nächst tiefere Warteschlange mit einer niedrigeren Priorität Die Prioritäten werden bei diesem Verfahren also dynamisch vergeben Multilevel-Feedback-Scheduling ist unterbrechendes Scheduling

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 52/69 Warteschlangen beim Multilevel-Feedback-Scheduling

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 53/69 Multilevel-Feedback-Scheduling (2/2) Vorteil von Multilevel-Feedback-Scheduling ist: Es sind keine komplizierten Abschätzungen nötig! Neue Prozesse werden schnell in eine Prioritätsklasse eingeordnet Neue Prozesse, werden beim Multilevel-Feedback-Scheduling älteren, längeren Prozessen bevorzugt Prozesse mit vielen Ein-/Ausgabeoperationen werden bevorzugt, da sie nach einer freiwilligen Abgabe der CPU wieder in die ursprüngliche Warteliste eingeordnet werden Dadurch behalten Sie ihre Priorität Ältere, längere Prozesse werden verzögert und können, wenn immer neue Prozesse nachkommen, verhungern

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 54/69 Aktuelle Herausforderungen des Scheduling Scheduling mit mehreren Prozessoren/Kernen Hier ist nicht nur die Auswahl des Prozesses/Thread, sondern auch des Prozessors/Kerns wichtig Alle Prozesse einer Gruppe bzw. alle Threads eines Prozesses sollen auf einem Prozessor/Kern abgearbeitet werden, um die Daten in den Registern und im Cache zu nutzen und somit unnötiges Verdrängen/Wiederherstellen von Daten zu vermeiden Scheduling von parallelen und verteilten Anwendungen Beim sog. Gang-Scheduling sollen Prozesse bzw. Threads, die zum gleichen Programm gehören und miteinander kommunizieren (sich synchronisieren) sollen, gleichzeitig gestartet werden = So sollen Wartezeiten verringert werden

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 55/69 Klassische und moderne Scheduling-Verfahren Scheduling Fair Rechenzeit Berücksichtigt NP P muss bekannt sein Prioritäten Prioritätengesteuertes Scheduling X X nein nein ja First Come First Served X ja nein nein Last Come First Served X X nein nein nein Round Robin X ja nein nein Shortest Job First X nein ja nein Longest Job First X nein ja nein Shortest Remaining Time First X nein ja nein Longest Remaining Time First X nein ja nein Highest Response Ratio Next X ja ja nein Earliest Deadline First X X nein ja nein Fair-Share X ja nein nein Statisches Multilevel-Scheduling X Multilevel-Feedback-Scheduling X NP = Nicht-präemptives Scheduling P = Präemptives Scheduling

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 56/69 Ein einfaches Beispiel zum Scheduling Auf einem Einprozessorrechner sollen fünf Prozesse verarbeitet werden: Prozess CPU-Laufzeit Priorität A 5 ms 15 B 10 ms 5 C 3 ms 4 D 6 ms 12 E 8 ms 7 Alle Prozesse kommen gleichzeitig zum Zeitpunkt 0 an Hohe Prioritäten sind durch hohe Zahlen gekennzeichnet Skizzieren Sie die Ausführungsreihenfolge der Prozesse mit einem Gantt-Diagramm (Zeitleiste) für Round Robin (Zeitquantum q = 1 ms), FCFS, SJF, LJF und Prioritätengesteuertes Scheduling Berechnen Sie die mittleren Laufzeiten und Wartezeiten der Prozesse Laufzeit = Zeit von der Ankunft bis zur Terminierung Wartezeit = Laufzeit - Rechenzeit

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 57/69 Ausführungsreihenfolge der Prozesse

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 58/69 Ausführungsreihenfolge der Prozesse (Lösung)

Laufzeit (Turnaround Time) und Wartezeit der Prozesse Laufzeit A B C D E Round Robin First Come First Served Shortest Job First Longest Job First Prioritätengesteuertes Scheduling Wartezeit A B C D E Round Robin First Come First Served Shortest Job First Longest Job First Prioritätengesteuertes Scheduling Die Wartezeit ist die Zeit in der bereit-liste Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 59/69

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 60/69 Laufzeit der Prozesse (Lösung) A B C D E Round Robin 20 32 13 25 30 First Come First Served 5 15 18 24 32 Shortest Job First 8 32 3 14 22 Longest Job First 29 10 32 24 18 Prioritätengesteuertes Scheduling 5 29 32 11 19 Round Robin 20+32+13+25+30 5 = 24 ms First Come First Served 5+15+18+24+32 5 = 18, 8 ms Shortest Job First 8+32+3+14+22 5 = 15, 8 ms Longest Job First 29+10+32+24+18 5 = 22, 6 ms Prior. Scheduling 5+29+32+11+19 5 = 19, 2 ms

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 61/69 Wartezeit der Prozesse (Lösung) A B C D E Round Robin 15 22 10 19 22 First Come First Served 0 5 15 18 24 Shortest Job First 3 22 0 8 14 Longest Job First 24 0 29 18 10 Prioritätengesteuertes Scheduling 0 19 29 5 11 Round Robin 15+22+10+19+22 5 = 17, 6 ms First Come First Served 0+5+15+18+24 5 = 12, 4 ms Shortest Job First 3+22+0+8+14 5 = 9, 4 ms Longest Job First 24+0+29+18+10 5 = 16, 2 ms Prior. Scheduling 0+19+29+5+11 5 = 12, 8 ms

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 62/69 Fazit Shortest Job First hat von den untersuchten Scheduling-Verfahren die kürzeste mittlere Laufzeit und die kürzeste mittlere Wartezeit Round Robin und Longest Job First liegen bzgl. mittlere Laufzeit und mittlere Wartezeit auf den hinteren Rängen Begründung: Wird ein kurzer Prozess vor einen langen Prozess gezogen, verringert dies die Laufzeit und Wartezeit des kurzen Prozesses mehr, als die des langen Prozesses verlängert wird Der bei Round Robin durch die häufigen Prozesswechsel entstehende Overhead, der hier gar nicht beachtet wurde, kann sich zusätzlich sehr negativ auf die Performance auswirken Die Anzahl der Prozesswechsel und damit der Overhead, ist abhängig von der Größe der Zeitscheiben Sind diese zu klein, ist der Overhead sehr hoch Sind diese zu groß, werden die Antwortzeiten für interaktive Benutzer sehr lang

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 63/69 Die Reihenfolge ist entscheidend! Prozess Laufzeit (ms) A 24 B 2 C 3 Durchschnittliche Laufzeit bei P A, P B, P C : 24+26+29 3 = 26, 3 ms Durchschnittliche Laufzeit bei P B, P C, P A : 2+5+29 3 = 11, 3 ms Durchschnittliche Wartezeit bei P A, P B, P C : 0+24+26 3 = 16, 6 ms Durchschnittliche Wartezeit bei P B, P C, P A : 0+2+5 3 = 2, 3 ms

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 64/69 Ein weiteres Scheduling-Beispiel Auf einem Einprozessorrechner sollen die folgenden Prozesse mit unterschiedlichen Ankunftszeiten verarbeitet werden: Prozess A B C D E F G H I J K CPU-Laufzeit (ms) 5 7 2 3 2 1 2 2 2 5 2 Ankunftszeit 0 2 3 4 6 7 12 14 16 22 27 Skizzieren Sie die Ausführungsreihenfolge der Prozesse mit einem Gantt-Diagramm (Zeitleiste) für First Come First Served (FCFS), Shortest Job First (SJF), Longest Job First (LJF), Shortest Remaining Time First (SRTF) und Longest Remaining Time First (LRTF) Achtung: SRTF und LRTF sind präemptives (verdrängendes) Scheduling Berechnen Sie die mittleren Laufzeiten und Wartezeiten der Prozesse

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 65/69 Ausführungsreihenfolge der Prozesse

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 66/69 Ausführungsreihenfolge der Prozesse (Lösung)

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 67/69 Laufzeit (Turnaround Time) und Wartezeit der Prozesse Laufzeit A B C D E F G H I J K FCFS SJF LJF SRTF LRTF Laufzeit A B C D E F G H I J K FCFS SJF LJF SRTF LRTF

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 68/69 Laufzeit (Turnaround Time) der Prozesse (Lösung) A B C D E F G H I J K FCFS 5 10 11 13 13 13 10 10 10 9 6 SJF 5 24 4 9 4 1 3 3 3 9 6 LJF 5 10 14 11 13 26 9 9 14 6 5 SRTF 5 24 4 9 4 1 3 3 3 11 2 LRTF 10 12 13 28 12 26 8 8 13 5 4 FCFS 5+10+11+13+13+13+10+10+10+9+6 11 = 10 ms SJF 5+24+4+9+4+1+3+3+3+9+6 11 = 6, 45 ms LJF 5+10+14+11+13+26+9+9+14+6+5 11 = 11, 09 ms SRTF 5+24+4+9+4+1+3+3+3+11+2 11 = 6, 27 ms LRTF 10+12+13+28+12+26+8+8+13+5+4 11 = 12, 63 ms

Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 69/69 Wartezeit der Prozesse (Lösung) A B C D E F G H I J K FCFS 0 3 9 10 11 12 8 8 8 4 4 SJF 0 17 2 6 2 0 1 1 1 4 4 LJF 0 3 12 8 11 25 7 7 12 1 3 SRTF 0 17 2 6 2 0 1 1 1 6 0 LRTF 5 5 11 25 10 25 6 6 11 0 2 FCFS 0+3+9+10+11+12+8+8+8+4+4 11 = 7 ms SJF 0+17+2+6+2+0+1+1+1+4+4 11 = 3, 45 ms LJF 0+3+12+8+11+25+7+7+12+1+3 11 = 8, 09 ms SRTF 0+17+2+6+2+0+1+1+1+6+0 11 = 3, 27 ms LRTF 5+5+11+25+10+25+6+6+11+0+2 11 = 9, 63 ms