9.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 10.5.2007
Exkursion Die Exkursion wird am Freitag, den 18.5.2007 stattfinden. Der Eigenanteil zu den Exkursionskosten entfällt! Die Anmeldeliste befindet sich im Sekretariat. Wichtig: Abfahrt aus Mannheim: 6.15 Uhr, vor Bau 1 (Eingang Speyerer Straße) Abfahrt aus Paderborn: 18.00 Uhr Die Exkursion ist eine Pflichtveranstaltung der BTS-Vorlesung! 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 2
Heute Der Dispatcher (Prozessumschalter) Scheduling, Scheduling-Kriterien und Scheduling-Strategien Nicht-präemptives und Präemptives Scheduling Scheduling-Verfahren Round Robin First Come First Served Shortest Job First und Longest Job First Prioritätengesteuertes Scheduling Earliest Deadline First Fair-Share Multilevel-Scheduling 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 3
Prozesswechsel im Mehrprogrammbetrieb Beim Mehrprogrammbetrieb (Multitasking), bei dem mehrere Programme gleichzeitig, zeitlich verschachtelt (quasi-parallel) ausgeführt werden, wird der Prozessor im raschen Wechsel zwischen den Prozessen umgeschaltet. Dem Betriebssystem fallen hierbei zwei Aufgaben zu: 1. Dispatching: Umschalten des Prozessors bei einem Prozesswechsel. 2. Scheduling: Festlegen des Zeitpunkts des Prozesswechsels und der Ausführungsreihenfolge der Prozesse. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 4
Prozesswechsel Der Dispatcher (1) Beim Dispatching wird der Prozesswechsel durchgeführt. Aufgabe des Dispatchers (Prozessumschalters) ist es, die Zustandsübergänge der Prozesse durchzuführen. Bei einem Prozesswechsel entzieht der Dispatcher dem derzeit aktiven, 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 Zustandlisten 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. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 5
Prozesswechsel Der Dispatcher (2) Beim Prozesswechsel in oder aus dem Zustand rechnend, muss immer der Kontext, also die Registerinhalte des aktuell ausgeführten Proesses im Prozesskontrollblock gespeichert (gerettet) werden, der Prozessor einem anderen Prozess zugeteilt und dessen Kontext (Registerinhalte) aus seinem Prozesskontrollblock wieder hergestellt werden. Bei modernen Betriebssystemen erhält die CPU zu jedem Zeitpunkt einen Prozess. Auch, wenn akuell kein Prozess im Zustand bereit und damit ausführungsbereit ist. Für diesen Zweck gibt es den sogenannten Leerlaufprozes (Idle Task), dem in diesem Fall die CPU zugeteilt wird. 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 und auf modernen Prozessor-Architekturen versetzt der Leerlaufprozess die CPU in einen stromsparenden Modus. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 6
Festlegen der Ausführungsreihenfolge Scheduling 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. Beim Scheduling wird versucht folgende Grundsätze einzuhalten: 1. Durchsatz: Abarbeitung möglichst vieler Prozesse pro Zeitintervall. 2. Effizienz: Möglichst vollständige Auslastung der CPU. 3. Termineinhaltung: Prozesse, die zu einem bestimmten Termin abgearbeitet werden müssen, werden so eingeplant, dass der Termin eingehalten wird. 4. Fairness: Die CPU den Prozessen möglichst gerecht zuteilen. Es soll kein Prozess dauerhaft vernachlässigt werden. 5. Overhead: Der zeitliche Aufwand für das Scheduling soll minimal sein. 6. Turnaround: Die Wartezeit der Benutzer soll minimal sein. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 7
Scheduling-Kriterien und Scheduling-Strategien Keine Scheduling-Strategie ist für jedes System optimal geeignet und kann alle Scheduling-Kriterien wie CPU-Auslastung, Durchsatz, Wartezeit, Verweilzeit, Echtzeitverhalten, Fairness und andere optimal berücksichtigen. Bei der Auswahl einer Scheduling-Strategie muss immer ein geeigneter Kompromiss zwischen den Scheduling-Kriterien gefunden werden. Die existierenden Schedulingverfahren können in zwei grundsätzliche Klassen unterteilt werden, nämlich in Nicht-präemptives Scheduling (nicht-verdrängendes Scheduling) und Präemptives Scheduling (verdrängendes Scheduling). 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 8
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. Eine vorzeitige Entziehung der CPU durch den Scheduler ist nicht vorgesehen. Problematisch ist dabei, dass ein Prozess die CPU so lange belegen kann, wie er möchte und 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 wieder entzogen werden, um diese anderen Prozessen zuzuteilen. Der Prozess pausiert so lange in seinem aktuellen Zustand, bis ihm wieder die CPU vom Scheduler zugeteilt wird. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 9
Scheduling-Verfahren Im Laufe der Jahrzehnte wurden viele Scheduling-Verfahren (Algorithmen) entwickelt. Jedes Scheduling-Verfahren versucht unterschiedlich starkt, die bekannten Scheduling-Kriterien und Grundsätze einzuhalten. Zu den bekanntesten Scheduling-Verfahren gehören: Round Robin (RR) mit Zeitquantum First Come First Served (FCFS) bzw. First In First Out (FIFO) Shortest Job First (SJF) und Longest Job First (LJF) Shortest Remaining Time First (SRTF) Longest Remaining Time First (LRTF) Prioritätengesteuertes Scheduling Earliest Deadline First (EDF) Fair-Share Multilevel-Scheduling 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 10
Round Robin Zeitscheibenverfahren (1) Bei Round Robin, das gelegentlich auch als Zeitscheibenverfahren bezeichnet wird, werden Zeitschlitze (englisch: time slices), auch Zeitscheiben oder Zeitquanten genannt, mit einer festen Dauer festgelegt. Die Prozesse werden in einer zyklischen Warteschlange nach dem First-In- First-Out-Prinzip (FIFO) 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 Wartschlange eingereiht. Wird ein Job erfolgreich beendet, wird er auf der Wartschlange entfernt. Neue Jobs werden am Ende der Wartschlange eingereiht. Die Zugriffszeit auf die CPU wird bei Round-Robin nahezu gleichmäßig und fair auf die vorhandenen Prozesse aufgeteilt. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 11
Round Robin Zeitscheibenverfahren (2) 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 des Scheduling bei Round- Robin spielt die Größe der Zeitschlitze. Sind sie zu kurz, müssen viele Prozesswechsel stattfinden und der Scheduler muss oft aufgerufen werden. Das erzeugt einen hohen System-Overload wegen des Verwaltungsaufwands. Sind sie zu lang, geht die Gleichzeitigkeit verloren. Das System hängt. Die Größe der Zeitschlitze bei Round Robin liegt üblicherweise im einoder zweistelligen Millisekundenbereich. Round Robin bevorzugt Prozesse, die eine kurze Abarbeitungszeit haben und muss die Bearbeitungsdauern der Prozesse nicht im Voraus kennen. Round Robin ist ein präemptives (verdrängendes) Scheduling-Verfahren. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 12
Round Robin Zeitscheibenverfahren (3) Prozess F Prozess E Prozess A Prozess B Prozess C Weitergabe des Zugriffs auf die CPU, bei: Ablauf der Zeitscheibe Beendigung (Terminierung) des Prozesses Unterbrechung (Blockierung) des Prozesses Prozess D 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 13
Beispiel zu Round Robin Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) 1 8 2 4 3 7 4 13 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste) mit dem Zeitquantum q = 1 ms. 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 3 4 1 3 4 1 3 4 1 4 4 4 4 4 4 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 14
Laufzeit und Wartezeit bei Round Robin Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 26 14 19 32 26+14+19+32 4 = 22,75 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 18 10 17 19 18+10+17+19 4 = 16 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 15
First Come First Served (FCFS) Bei First Come First Served, auch First In First Out (FIFO) genannt, werden die Prozesse entsprechend ihrer Ankunftsreihenfolge bedient. Dieses Scheduling-Verfahren ist vergleichbar mit einer Warteschlange von Kunden in einem Geschäft. Laufende Prozesse werden bei diesem Scheduling-Verfahren nicht unterbrochen. Es handelt sich um nicht-präemptives (nicht-verdrängendes) Scheduling. First In First Out bzw. First Come First Served können als fair bezeichnet werden, weil alle Jobs berücksichtigt werden. Nachteil: 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. Round Robin mit Zeitscheibengröße verhält sich wie FCFS. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 16
Beispiel zu First Come First Served Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) Ankunftszeit 1 8 0 2 4 3 3 7 13 4 13 16 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 1 2 3 4 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 17
Laufzeit und Wartezeit bei First Come First Served Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 8 9 7 17 8+9+7+17 4 = 10,25 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 0 5 0 4 0+5+0+4 4 = 2,25 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 18
Shortest Job First (SJF) Bei Shortest Job First (auch Shortest Process Next genannt) erhält der Job mit der kürzesten Abarbeitungszeit als erster Zugriff auf die CPU. Shortest Job First ist nicht-präemptives (nicht-verdrängendes) Scheduling. Das Hauptproblem ist, dass bei jedem Prozess bekannt sein muss, wie lange er bis zu seiner Terminierung braucht, also wie lange seine Abarbeitungszeit ist. In der Realität ist es praktisch nie der Fall, dass die Abarbeitungszeit eines Prozesses im Voraus bekannt ist. Es sind näherungsweise Implementierungen durch Approximation möglich. Bei der Approximation von Shortest Job First wird die Abarbeitungszeit eines Jobs abgeschätzt, indem das Verhalten des Jobs in der Vergangenheit betrachtet wird. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 19
Shortest Job First (SJF) Es wird angenommen, dass ein Job sich in Zukunft gleich oder ähnlich verhalten wird. Shortest Job First ist nicht fair, da Jobs mit kurzer Abarbeitungszeit bevorzugt werden und Jobs mit langer Abarbeitungszeit eventuell erst nach sehr langer Wartezeit oder nie Zugriff auf die CPU erhalten. Präemptives Shortest Job First wird auch als Shortest Remaining Time First (SRTF) bezeichnet. Wenn ein neuer Prozess mit einer kürzeren Abarbeitungszeit eintrifft, wird der aktuell rechnende Prozess von der CPU verdrängt. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 20
Beispiel zu Shortest Job First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) 1 8 2 4 3 7 4 13 Alle Prozesse kommen gleichzeitig an. Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 2 3 1 4 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 21
Laufzeit und Wartezeit bei Shortest Job First Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 19 4 11 32 19+4+11+32 4 = 16,5 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 11 0 4 19 11+0+4+19 4 = 8,5 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 22
Beispiel zu Shortest Remaining Time First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) Ankunftszeit 1 8 0 2 4 3 3 7 16 4 13 11 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 1 2 1 4 3 4 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 23
Laufzeit und Wartezeit bei SRJF Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 12 4 7 21 12+4+7+21 4 = 11 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 4 0 9 21 4+0+9+21 4 = 8,5 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 24
Longest Job First (LJF) Bei Longest Job First erhält der Job mit der längsten Abarbeitungszeit als erster Zugriff auf die CPU. Auch Longest Job First kann als nicht-präemptives (nicht-verdrängendes) Scheduling und präemptives (verdrängendes) Scheduling realisiert werden. Im Fall von präemptivem Scheduling, wird der aktuell rechnende Prozess verdrängt, wenn ein neuer Prozess mit einer längeren Abarbeitungszeit eintrifft = Longest Remaining Time First (LRTF). Das Hauptproblem von Longest Job First ist, genau wie bei Shortest Job First, dass bei jedem Prozess bekannt sein muss, wie lange er bis zu seiner Terminierung braucht, also wie lange seine Abarbeitungszeit ist. Das ist in der Realität aber nur selten der Fall. Auch Longest Job First ist nicht fair, da Jobs mit langer Abarbeitungszeit bevorzugt werden und Jobs mit kurzer Abarbeitungszeit eventuell erst nach sehr langer Wartezeit oder nie Zugriff auf die CPU erhalten. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 25
Beispiel zu Longest Job First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) 1 8 2 4 3 7 4 13 Alle Prozesse kommen gleichzeitig an. Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 4 1 3 2 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 26
Laufzeit und Wartezeit bei Longest Job First Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 21 32 28 13 21+32+28+13 4 = 23,5 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 13 28 21 0 13+28+21+0 4 = 15,5 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 27
Beispiel zu Longest Remaining Time First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) Ankunftszeit 1 8 0 2 4 6 3 7 21 4 13 11 Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 1 2 1 4 3 4 1 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 28
Laufzeit und Wartezeit bei LRJF Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 32 4 7 20 32+4+7+20 4 = 15,75 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 18 0 0 7 13+28+21+0 4 = 6,25 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 29
Prioritätengesteuertes Scheduling Beim prioritätengesteuerten Scheduling werden die Prozesse nach ihrer Priorität, also ihrer Wichtigkeit bzw. Dringlichkeit abgearbeitet. Jedem Prozess wird eine ganze Zahl zugewiesen, die die Priorität repräsentiert. Es wird immer dem Prozess im Zustand bereit die CPU zugeweisen, der die höchste Priorität hat. Die Priorität kann von verschiedenen Kriterien abhängen, z.b. der Anzahl der benötigten Ressourcen, Rang des Benutzers, geforderte Echtzeitkriterien, usw. Die Prioritätenvergabe kann statisch oder dynamisch sein. Statische Prioritäten ändern sich während der gesammten Lebensdauer eines Prozesses nicht und werden häufig in Echtzeit-Systemen verwendet. Dynamische Prioritäten werden von Zeit zu Zeit angepasst. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 30
Beispiel zum Prioritätengesteuerten Scheduling Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) Priorität 1 8 3 2 4 15 3 7 8 4 13 4 Alle Prozesse kommen gleichzeitig an. Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 2 3 4 1 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 31
Laufzeit und Wartezeit bei prioritätengesteuertem Scheduling Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 32 4 11 24 32+4+11+24 4 = 17,75 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 24 0 4 11 24+0+4+11 4 = 9,75 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 32
Earliest Deadline First (EDF) Beim Scheduling-Verfahren Earliest Deadline First wird darauf geachtet, dass die Prozesse nach Möglichkeit ihre Termine zur Fertigstellung, die Deadlines, einhalten können. Earliest Deadline First kann als nicht-präemptives (nicht-verdrängendes) Scheduling und präemptives (verdrängendes) Scheduling realisiert werden. Präemptives (verdrängendes) Earliest Deadline First wird bevorzugt in Echtzeitsysteme eingesetzt. 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 Neuorganisierung der Prozess- Warteschlange findet immer dann statt, wenn ein neuer Prozess in den Zustand bereit wechselt oder ein aktiver Prozess beendet (terminiert). 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 33
Beispiel zu Earliest Deadline First Auf einem Einprozessorrechner sollen vier Prozesse verarbeitet werden: Prozess CPU-Laufzeit (ms) Deadline 1 8 25 2 4 18 3 7 9 4 13 34 Alle Prozesse kommen gleichzeitig an. Ausführungsreihenfolge der Prozesse als Gantt-Diagramm (Zeitleiste). 3 2 1 4 0 5 10 15 20 25 30 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 34
Laufzeit und Wartezeit bei Earliest Deadline First Laufzeit (Turnaround Time) der Prozesse Prozess P1 P2 P3 P4 Laufzeit 15 11 7 32 15+11+7+32 4 = 16,25 ms Wartezeit der Prozesse Zeit in der bereit-liste Prozess P1 P2 P3 P4 Wartezeit 11 7 0 19 11+7+0+19 4 = 9,25 ms 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 35
Fair-Share (1) Beim Fair-Share-Algorithmus werden Ressourcen zwischen Gruppen von Jobs in einer fairen Art und Weise aufgeteilt. Das besondere bei Fair-Share ist, dass die Rechenzeit den Benutzern und nicht den Prozessen zugeteilt wird. Die Rechenzeit, die ein Benutzer erhält, ist unabhängig von der Anzahl seiner Prozesse. Die Anteile an Rechenressourcen, die die Benutzer beim Fairsharing besitzen, werden als Shares bezeichnet. Der Fair-Share Algorithmus hat sich besonders im Cluster- und Grid- Umfeld durchgesetzt. Fair-Share wird in aktuellen Job-Schedulern und Meta-Schedulern zur Verteilung der Aufträge auf Ressourcen in Grid- Standorten und zwischen den Standorten im Grid eingesetzt. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 36
Fair-Share (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% 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 37
Multilevel-Scheduling Da bei jeder Scheduling-Strategie Kompromisse bzgl. der unterschiedlichen Scheduling-Kriterien gemacht werden müssen, werden in der Praxis häufig mehrere Scheduling-Strategien miteinader kombiniert. = Multilevel-Scheduling, auch Mehrebenen-Scheduling genannt Die einfachste Form der Realisierung von Multilevel-Scheduling ist das sogenannte Statische Multilevel-Scheduling. Hierbei wird die bereit-liste in mehrere Teillisten unterteilt und in jeder Teilliste wird eine andere Scheduling-Strategie eingesetzt. Die Teillisten haben in den meisten Fällen unterschiedliche Prioritäten oder verschiedene Zeitmultiplexe (z.b. 80%:20% oder 60%:30%:10%). Multilevel-Scheduling eignet sich sehr gut, um zeitkrische von zeitunkritischen Threads zu trennen. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 38
Statische Multilevel-Scheduling (1) 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 und jede Teilliste vewendet ein anderes Scheduling-Verfahren. Die höchste Prozessklasse hat üblicherweise die höchste Priorität. Die niedrigste Prozessklasse hat die Priorität 1. 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 39
Statische Multilevel-Scheduling (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 1 Echtzeitprozesse (zeitkritisch) Prioritätengesteuert 1 Interaktive Prozesse Round Robin 2 E/A-Intensive Prozesse Round Robin 3 Rechenintensive Stapelprozesse First Come First Served 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 40
Nächste Vorlesung: 11.5.2007 9.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 41