Scheduling - Universität Paderborn

Werbung
Konzepte und Methoden der Systemsoftware –
Kapitel 3: Ressourcenverwaltung & Scheduling
(Ablaufplanung)
Holger Karl
Computer Networks Group
Universität Paderborn
Ziel dieses Kapitels
•  In der Regel stehen in einem Rechnersystem mehrere
Prozesse (Threads, Tasks, …) zur Ausführung bereit
•  Welcher sollte ausgewählt werden?
•  Auf welcher Informationsgrundlage kann die Entscheidung gefällt
werden?
•  Welches Verhalten wird als „optimal“ gewünscht?
•  Welche/wieviele Ressourcen sollten pro Aufgabe verwendet
werden?
•  Wie sehen Algorithmen dazu aus? Welchen Aufwand verursachen
sie?
•  Was sind die Rahmenbedingungen (z.B. Anzahl Prozessoren,
Abhängigkeiten, …)
•  Was geschieht mit den anderen Prozessen?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
2
Überblick
1.  Einführung, Beispiele
2.  Gestaltungsparameter für Scheduling
3.  Schedulingstrategien
4.  Multilevel-Scheduling
5.  Scheduling mit Sollzeitpunkten
6.  Scheduling abhängiger Prozesse
7.  Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
3
3.1 Einführung
•  Ressourcenverwaltung
•  Festlegung, welche Aktivität durch welche und wie viele
Instanzen ausgeführt wird
•  Scheduling (Ablaufplanung)
•  Räumliche und zeitliche Zuordnung von Aktivitäten zu
Instanzen, welche diese Aktivitäten durchführen können
•  Beispiel: Gütertransport
Transportaufträge
SS 13, v 1.7
?
KMS - Kap. 3: Scheduling
Verfügbare
LKWs
4
Scheduling – Beispiel Systemprogrammierung
•  Mehrere ablaufbereite Prozesse/Threads konkurrieren um
CPU(s)
•  Welcher Prozess soll als nächster ausgeführt werden?
•  Scheduling-Strategie: Zuordnungsalgorithmus
Prozesse → Prozessoren
•  Ergibt Schedule (Ablaufplan)
•  Implementiert durch Scheduler – Teil der Systemsoftware
P1
Ablaufbereite
Prozesse
P3
P2
P4
P5
SS 13, v 1.7
?
Scheduler
KMS - Kap. 3: Scheduling
CPU 1
CPU 2
Verfügbare
CPUs
CPU 3
5
Weitere Beispiele für Scheduling
•  Übersetzer: Codeerzeugung für superskalare Prozessoren
mit Pipelining
•  Auszuführende Befehle und Abhängigkeiten bekannt
•  Auffindung einer Zuordnung der Befehle zu den Pipelines, so dass
möglichst kurze Ausführungszeit erzielt wird
•  Präsentation von Daten, z.B. Abspielen von MPEG-Videos
aus Internet
•  Koordination von Netzwerk-Software, Decodierung, Bildschirmund Soundausgabe für gleichmäßige, synchronisierte Wiedergabe
•  Berücksichtigung anderer im Hintergrund laufender Prozesse
•  Montageroboter
•  Tastet verschiedene Sensordaten in unterschiedlichen Raten ab
•  Reagiert durch Ausführung zeitaufwendiger Berechnungen
•  Reaktionszeit muss eingehalten werden
SS 13, v 1.7
KMS - Kap. 3: Scheduling
6
Scheduling-Probleme auf allen Granularitätsebenen
•  Unterschiedliche „räumliche“ Granularitätsebenen
•  Prozesse als komplette Benutzerprogramme sollen auf einem Ein-/
Mehrprozessorsystem ausgeführt werden
•  Prozesse (Threads) als Teile eines parallelen Programms sollen
auf einem Parallelrechner ausgeführt werden
•  Ausführung von Operationsfolgen auf den parallel arbeitenden
Prozessoreinheiten (Pipelining, Superskalare Architekturen)
•  Unterscheidung nach „zeitlicher“ Granularität
•  Short-Term-Scheduler: Prozesszuteilung unter bereiten
Prozessen, einfache und effizient ausführbare Strategie
•  Long-Term-Scheduler: Längerfristige, komplexe Planung der
Ressourcenzuteilung, etwa Speicherauslagerung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
7
Optimierungsziel bei Scheduling
•  Scheduling (unter anderem) wichtig für subjektive
Wahrnehmung der Leistungsfähigkeit eines Rechners
•  P1: Schließen eines Fensters, aktualisieren der Oberfläche (2 sec)
•  P2: Senden einer E-mail (2 sec)
•  Reihenfolge P2P1: Benutzer nimmt die Verzögerung sofort wahr,
empfindet den Rechner als langsam
•  Reihenfolge P1P2: Verzögerung des E-mail-Versands um 2
Sekunden bleibt wahrscheinlich unbemerkt
! Was ist „gutes“ Scheduling, was ist „optimal“?
•  Was sind die relevanten Trade-Offs?
! Scheduling-Strategie muss an Optimierungsziele
angepasst sein
SS 13, v 1.7
KMS - Kap. 3: Scheduling
8
Klassisches, statisches Scheduling-Problem
6 Prozesse
P1
CPU 1
3 Prozessoren
•  Zuordnung von
Prozessen zu
Prozessoren so,
dass die
Ausführungszeit
minimiert wird
P2
P3
P4
P5
CPU 2
Zuordnung?
CPU 3
P6
Ablaufplanlänge (makespan)
CPU 1
P1
CPU 2
P2
CPU 3
P4
SS 13, v 1.7
P3
P6
GanttDiagramm
Rechenzeit
P5
KMS - Kap. 3: Scheduling
9
Formal: Minimum Multiprocessor Scheduling (MMS)
•  Gegeben:
•  Menge P von Prozessen
•  m Prozessoren
•  Ausführungszeit l(p, i) von Prozess p auf Prozessor i (ganze Zahl)
•  Gesucht:
•  Eine Reihenfolge der Prozesse, also eine Funktion f: P ! N
•  Optimizerungsziel:
•  Minimiere in f:
•  Beweis MMS ist NP-vollständig
•  In NP: klar (alle Reihenfolgen aufzählen)
•  Z. B. durch Reduktion von Partitionsproblems auf M2S, dann auf MMS
•  Gute Nachricht: MMS ist 2-approxmierbar (DOI:
http://dx.doi.org/10.1109/SFCS.1987.8)
•  Approximation von 1,5 nur wenn P = NP
SS 13, v 1.7
KMS - Kap. 3: Scheduling
10
Dynamisches Scheduling in Mehrprogrammsystemen
•  Vorherige Folie: Statisches Scheduling, Tasks waren alle
bekannt für die Berechnung des Ablaufplans
•  „Task“: Oberbegriff für einzuplanende Aktivitäten
•  Oft: Menge der einzuplanenden Tasks ist dynamisch
Neuer oder verdrängter Prozess
CPU 1
P4
CPU 2
Einordnung gemäß Strategie
P1
P5
…
P8
P2
Prozesse im Zustand Bereit
CPU 3
..
.
CPU n
SS 13, v 1.7
KMS - Kap. 3: Scheduling
n Prozessoren
11
Überblick
1.  Einführung, Beispiele
2.  Gestaltungsparameter für Scheduling
3.  Schedulingstrategien
4.  Multilevel-Scheduling
5.  Scheduling mit Sollzeitpunkten
6.  Scheduling abhängiger Prozesse
7.  Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
12
Gestaltungsraum und Ziele/Metriken für Scheduling
•  Gestaltungsspielraum beschreibt:
•  Welche Daten für die Scheduling-Entscheidung zur Verfügung
stehen
•  Unter welchen Bedingungen die Scheduling-Entscheidung zu
fällen ist
•  Welche Optionen/Restriktionen bestehen für die Realisierung des
Schedulers
•  Quantisiert durch Angabe von Parametern
! (Quantisiertes) Modell für System und Last
•  Ziele beschreiben das gewünschte Systemverhalten
•  Quantisiert durch Metriken
•  Stellen in der Regel das gewünschte Optimierungsziel dar
SS 13, v 1.7
KMS - Kap. 3: Scheduling
13
Gestaltungsparameter – Systemparameter
•  Plattform: Anzahl Ausführungseinheiten
•  Beispiel: Einprozessor/Mehrprozessor
•  Falls Mehrprozessor: Identisch oder unterschiedlich?
•  Evtl. Variation der Ausführungsgeschwindigkeiten
•  Synchronisierte Zuordnung paralleler Prozesse
•  Sind Kommunikationszeiten zu berücksichtigen?
•  Sind Umschaltzeiten zu berücksichtigen?
•  Darf Scheduler einen Task vernichten/zurücksetzen? Zu
welchen Kosten? (Bsp.: Pakete in Rechnernetzen!)
•  Ist Verdrängung möglich?
•  Nein (non-preemptive Scheduling): Prozesse laufen, bis sie
blockiert werden oder freiwillig die CPU freigeben
•  Ja (preemptive Scheduling): Prozessen kann die CPU entzogen
werden
•  ACHTUNG: Anderer Verdrängungsbegriff als im Kontext Caching
SS 13, v 1.7
KMS - Kap. 3: Scheduling
14
Beschreibung eines Prozesses (bei Verdrängung)
•  Gegeben durch Prozess: benötigte Bedienzeit insgesamt
•  Aber kann unterbrochen werden, also:
Prozessstart
Warten
Rechnen
Prozessende
Ausführungsbeginn
Umsortiert:
Gesamte Wartezeit
(waiting time)
Gesamte Bedienzeit
(service time)
Antwortzeit (response time)
SS 13, v 1.7
KMS - Kap. 3: Scheduling
15
Gestaltungsparameter – Lastparameter
•  Prozessmenge statisch oder dynamisch?
•  Statische Prozessmenge: Keine weiteren Prozesse kommen
hinzu, d.h. alle Prozesse sind gegeben
•  Und (in der Regel) unmittelbar ablauffähig
•  Dynamische Prozessmenge: Während der Ausführung können
neue Prozesse hinzukommen, auf die reagiert werden muss
•  On-line oder Off-line Scheduling
•  Off-line (irgendwann vorher): Alle Prozesse – auch zukünftige
Ankünfte – sind bekannt ⇒ vollständige Information liegt vor
•  On-line (zur Laufzeit): Lediglich aktuelle Prozesse bekannt ⇒
Entscheidungsfindung auf Grund unvollständiger Information
•  Existieren zu berücksichtigende Abhängigkeiten zwischen
Prozessen, z.B. Reihenfolgebeziehung (partielle Ordnung)
Geben Sie Beispiele für alle vier Kombinationen
on-line/off-line
SS 13, von
v 1.7 statisch/dynamisch
KMS - Kap.mit
3: Scheduling
16
Gestaltungsparameter – Lastparameter (2)
•  Sind Sollzeitpunkte zu berücksichtigen?
•  Berechnungen (Prozesse) müssen zu bestimmten Zeitpunkten
beendet werden (oft bei Echtzeitsystemen)
•  Sind die Ausführungszeiten bekannt?
•  Bekannte Ausführungszeiten bzw. Worst-Case-Abschätzungen
•  Notwendige Voraussetzung für Realzeit-Scheduling
•  Hilfreich für faire Scheduling-Algorithmen
•  Unbekannte Ausführungszeiten bei allgemeinen Systemen die
Regel
•  Sind Prioritäten zu berücksichtigen?
•  Statische Prioritäten: a-priori (von außen) vorgegeben
•  Dynamische Prioritäten: Bestimmung während der Ausführung
•  Achtung: Dringend <> wichtig
•  Existieren periodische, regelmäßig wiederkehrende
Prozesse?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
17
Optimierungsziele/Metriken für Taskmenge
•  Länge des Ablaufplans
•  Maximale Antwortzeit
(min)
(min)
•  Antwortzeit: Ende eines Tasks – Start des Tasks
•  Mittlere (gewichtete) Antwortzeit
•  Anzahl benötigte Prozessoren
(min)
(min)
•  Unter gewissen Nebenbedingungen
• 
• 
• 
• 
Durchsatz
Prozessorauslastung
Maximale Verspätung
Fairness
SS 13, v 1.7
(max)
(max)
(min)
(max)
KMS - Kap. 3: Scheduling
18
Typische Schedulingziele für unterschiedliche Systeme
•  Ziele für alle Systemarten
•  Fairness: gerechte Verteilung der Rechenzeiten an Bewerber
•  Policy Enforcement: Transparente Entscheidungskriterien
•  Balance: Alle Teile des Systems sind ausgelastet
•  Ziele bei Stapelverarbeitungssystemen
•  Maximiere Durchsatz, d.h. Jobs/Zeiteinheit, z.B. Jobs/Stunde
•  Minimiere Turnaround-Zeit: Zeit zwischen Auftragsstart und
Auftragende (= Antwortzeit)
•  Interaktive Systeme
•  Minimiere die Antwortzeit für Anfragen
•  Proportionalität: Anpassung des Systemverhaltens auf das aktuelle
Benutzerprofil
•  Echtzeitsysteme
•  Einhaltung von Sollzeitpunkten
SS 13, v 1.7
KMS - Kap. 3: Scheduling
19
Konflikte zwischen Scheduling-Zielen
Geben Sie ein Beispiel, bei dem die
Optimierung von
(1) Durchsatz oder
(2) mittlerer Antwortzeit
unterschiedliche Schedules erfordern.
Hinweis: Prozesswechselzeiten > 0!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
20
Schedule für mittlere Antwortzeit <> Schedule für Durchsatz
SS 13, v 1.7
KMS - Kap. 3: Scheduling
21
Schedulingziele in konventionellen Mehrprogrammsystemen
•  Zu erreichende Ziele meist eine Kombination
•  Hohe Effizienz ( Hohe Auslastung des Prozessors (?)
•  Ist das ein sinnvolles Ziel?
•  Geringe Antwortzeit bei interaktiven Prozessen
•  Präziser: mittlere Antwortzeit, mittlere gewichtete Antwortzeit
•  Hoher Durchsatz bei Stapelbetrieb (batch processing)
•  Mittlere Anzahl Tasks pro Zeiteinheit, ggf. gewichtet
•  Fairness, d.h. „gerechte“ Verteilung der Prozessorleistung und der
Wartezeit unter den Prozessen
•  Fairness insbes. bei mehreren Ressourcen, mehrere Aufgaben
interessant – siehe Ende des Kapitels
Trade-Offs!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
22
Überblick
1. 
2. 
3. 
4. 
5. 
6. 
7. 
Einführung, Beispiele
Gestaltungsparameter für Scheduling
Schedulingstrategien
Multilevel-Scheduling
Scheduling mit Sollzeitpunkten
Scheduling abhängiger Prozesse
Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
23
Schedulingstrategien in konventionellen
Mehrprogrammsystemen
•  Annahmen
• 
• 
• 
• 
• 
Homogenes (symmetrisches) Multiprozessorsystem
Dynamische Prozessmenge
Keine Abhängigkeiten zwischen Prozessen
Dynamisches On-line-Scheduling
Keine Sollzeitpunkte
•  Strategiealternativen
•  Ohne / mit Verdrängung des laufenden Prozesses
•  Ohne / mit Prioritäten
•  Unabhängig / abhängig von der Bedienzeit
SS 13, v 1.7
KMS - Kap. 3: Scheduling
24
Schedulingstrategien ohne Verdrängung
•  Einfachste Strategien
•  Keine Verdrängung
•  Alle Prozesse dürfen bis zum Ende ablaufen
•  Einzige verbleibende Entscheidung: Welchen bereiten Prozessen
als nächsten ausführen, wenn aktueller Prozess fertig wird?
•  FCFS (First Come First Served)
•  Bearbeitung in der Ankunftsreihenfolge in der Bereitliste
•  Prozessorbesitz bis zum Prozessende
•  LCFS (Last Come First Served)
•  Bearbeitung der Prozesse in umgekehrter Ankunftsreihenfolge
•  In dieser reinen Form selten benutzt
SS 13, v 1.7
KMS - Kap. 3: Scheduling
25
Schedulingstrategien mit Verdrängung
•  Verdrängung: Ersetze laufenden Prozess durch anderen, bereiten
Prozess – selbst wenn der laufende Prozesse nicht will!
•  Sonst: Prozess kann Ressource monopolisieren, keine Interaktivität, …
•  Möglicher Anlass zur Verdrängung
•  Laufender Prozess gibt Prozessor freiwillig auf
•  Z.B., wenn er auf I/O-Gerät wartet und ohnehin nicht weiterrechnen könnte
•  (Man kann dies auch als Verfahren ohne Verdrängung auffassen, da Initiative
von laufendem Prozess selbst ausgeht)
•  Ein neuer Prozess kommt an
•  Periodische Verdrängung (Zeitscheiben)
•  Sonstiges Ereignis, z.B. Peripheriegerät meldet Abschluss eines
Datentransfers
•  Frage: Was geschieht mit verdrängtem Prozess?
•  Wird „irgendwo“ in die Liste der bereiten Prozesse einsortiert
SS 13, v 1.7
KMS - Kap. 3: Scheduling
26
Einfache Verfahren mit Verdrängung
•  FCFS mit freiwilliger Aufgabe
•  Aktueller Prozess wird z.B. ans Ende der Warteschlange
einsortiert
•  Verdrängung durch Neuankunft eines Prozesses
•  Verdrängter Prozess wird entweder
•  1. hinten in die Warteschlange eingereiht (FCFS Variante) oder
•  2. wieder auf den Stapel gelegt – LCFS-PR (Last Come First Served
– Pre-emptive Resume)
•  Falls keine Ankünfte und Prozess wird fertig, Abarbeitung der Liste
ohne Verdrängung
•  Erzieltes Verhalten: Bevorzugung kurzer Prozesse, da
•  Kurze Prozesse werden u.U. noch vor der nächsten Ankunft fertig
•  Lange Prozesse werden u.U. mehrfach verdrängt
SS 13, v 1.7
KMS - Kap. 3: Scheduling
27
Periodische Verdrängung – Zeitscheiben
•  Abwicklung taktgesteuert und nebenläufig/verzahnt
•  Jeder Prozess erhält im festen Takt eine Zeitscheibe (auch: Zeitfenster)
zugeteilt
•  Ist er am Ende des Zeitfensters nicht fertig, dann wird er unterbrochen und
in einer Warteschlange hinten angestellt
•  Änderung der Taktung durch Prioritäten, Warten auf Fertigstellung eines
E/A-Auftrags, …
•  Time Sharing Mode
•  Voraussetzung: Prozesse unterbrechbar und Mechanismen zur
Prozessumschaltung vorhanden
P11 P21 P31 P12 P22 P32 P2E P3E P1E
Prozessorzeit t
SS 13, v 1.7
KMS - Kap. 3: Scheduling
28
Auswahl des nächsten Prozess bei Zeitscheiben –
Round Robin (RR) Strategie
•  Zeitscheibenverfahren
•  Bearbeitung der Prozesse in Ankunftsreihenfolge
•  Nach Ablauf einer festgesetzten Frist (Zeitscheibe) ⇒
Verdrängung und Umschaltung auf den nächsten Prozess
•  Verdrängter Prozess wird ans Ende der Warteschlange mit
bereiten Prozessen eingereiht und bewirbt sich erneut um den
Prozessor
P1 P2 P3 P4 P1 P2 P3 P4 P1 P2 P3 P4 P1 P2 P3 P4
t
SS 13, v 1.7
KMS - Kap. 3: Scheduling
29
Round Robin
•  Eigenschaften
•  Gleichmäßige Verteilung der Rechen- und Wartezeit auf alle
Prozesse
•  Allerdings Benachteiligung von E/A-intensiven Anwendungen, die
häufig blockierende Operationen aufrufen
! Preemptives Schedulingverfahren, das als Grundlage für die
meisten Multi-Tasking-Betriebssysteme dient
•  Kritischer Parameter: Zeitscheibenlänge t (oft 10-20 ms)
•  t zu groß ⇒ Annäherung an FCFS
•  t zu klein: großer Aufwand für häufiges Umschalten
•  Adaptives t: denkbar, siehe später
SS 13, v 1.7
KMS - Kap. 3: Scheduling
30
Prioritätsbasiertes Scheduling
•  Zusätzlicher Aspekt: Prozesse können unterschiedliche
Dringlichkeit haben
•  Ausgedrückt durch Priorität eines Prozesses
•  Priorität beeinflusst Schedulingentscheidung maßgeblich
•  Ist orthogonal z.B. zu Entscheidung Verdrängung ja/nein
•  Unterscheidung zwischen Prioritätsarten
•  Statisch: Vorgabe beim Prozess-Start (i.d.R. durch
Betriebssystem), kann nicht verändert werden
•  Dynamisch: Initiale Priorität wird vom Benutzer oder
Betriebssystem zugewiesen, kann kontrolliert verändert werden
SS 13, v 1.7
KMS - Kap. 3: Scheduling
31
Prioritätsbasiertes Scheduling (2)
•  Prioritätsbasierte Strategien
•  PRIO-NP (Priorities – Nonpreemptive): Einordnung der
Neuankömmlinge in Bereitliste nach Priorität
•  PRIO-P (Priorities – Preemptive): Verdrängungsprüfung nach
Ankunft: Hat der aktuelle rechnende Prozess eine geringere
Priorität, so wird er verdrängt
•  Aging: CPU-Monopolisierung wird durch Reduktion der
Prioritäten von oft belegenden Prozessen verhindert
•  „Bestrafung“ langer Prozesse durch schrittweise Herabsetzung
der Priorität
SS 13, v 1.7
KMS - Kap. 3: Scheduling
32
Schedulingstrategien SJN und SRTN
•  SJN (Shortest Job Next)
•  Prozess mit kürzester Bedienzeit (insgesamt, unabhängig vom
bisherigen Verlauf) wird als nächster bis zum Ende oder zur
freiwilligen Aufgabe bearbeitet
•  Analog zu PRIO-NP mit Bedienzeit als Prioritätskriterium
•  Bevorzugung kurzer Prozesse ⇒ Kürzere mittlere Antwortzeiten
als FCFS
•  SRTN (Shortest Remaining Time Next)
•  Bearbeitung des Prozesses mit kürzester Restbedienzeit
•  Rechnender Prozess kann verdrängt werden
•  Beide Strategien benötigen die Kenntnis der Bedienzeit
•  Vom Benutzer vorgegebene Schätzung
•  Eine Schätzung (siehe nächste Folie)
•  Prozesse können „verhungern“, wenn immer kürzere
Prozesse vorhanden sind
SS 13, v 1.7
KMS - Kap. 3: Scheduling
33
Schätzung der Laufzeit eines Prozesses
•  Bei einmaligem Lauf: Schwierig... (Programmanalyse?)
•  Bei wiederholtem Lauf: Nutze vorherige Beobachtung
•  Problem: Laufzeitschwankungen Glätten
•  Sei Ti Laufzeit der iten Wiederholung
•  Sei Sn geglättete, mittlere Laufzeit der ersten n Wiederholungen
Vorteil: Nur letzten
Mittelwert speichern
•  Alle Ti gleich wichtig?
•  Oder mehr Gewicht für neuere Beobachtung?
•  Sog. exponentially weighted moving average mit
Gewichtungskoeeffizient ®
SS 13, v 1.7
KMS - Kap. 3: Scheduling
34
Schedulingstrategien HRN
•  HRN (Highest Response Ratio Next)
•  Maß Response Ratio r berücksichtigt die aktuelle Wartezeit eines
Prozesses und wird als Priorität eingesetzt: Der Prozess mit dem
größten Response Ratio r wird als nächster ausgewählt
•  Response Ratio r wird dynamisch berechnet und ist definiert als
Wartezeit + Bedienzeit
r =
Bedienzeit
•  HRN ist nicht verdrängend
•  Wie bei SJN werden kurze Prozesse bevorzugt, allerdings
sammeln lange Prozesse durch Warten Punkte, welche der
Erhöhung ihrer Priorität dienen
SS 13, v 1.7
KMS - Kap. 3: Scheduling
35
Beispiel für Highest Response Ratio Next
Beispiel
Prozess
SS 13, v 1.7
Ankunftszeit
Bedienzeit
A
0
3
B
2
6
C
4
4
D
6
5
E
8
2
KMS - Kap. 3: Scheduling
36
Überblick
1.  Einführung, Beispiele
2.  Gestaltungsparameter für Scheduling
3.  Schedulingstrategien
4.  Multilevel-Scheduling
5.  Scheduling mit Sollzeitpunkten
6.  Scheduling abhängiger Prozesse
7.  Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
37
Multilevel-Scheduling
•  Kombination unterschiedlicher Scheduling-Verfahren
•  Durch die Verknüpfung können Schedulingstrategien
besser auf die Betriebsform (Dialogbetrieb, Stapelbetrieb,
…) abgestimmt werden
•  Einfachste Realisierung
•  Unterteilung der Liste bereiter Prozesse in mehrere Sublisten
•  Jede Liste kann anhand verschiedener Strategien verwaltet
werden
•  Aufträge werden – je nach gewünschter Betriebsform – in die
entsprechende Liste einsortiert
•  Mit zusätzlichem Auswahlverfahren wird bestimmt, welcher
Prozess aus welcher Subliste zur Ausführung gebracht wird
•  Prioritätsvergabe pro Liste führt dazu, dass z.B. zeitkritsche
Prozesse bevorzugt behandelt werden
SS 13, v 1.7
KMS - Kap. 3: Scheduling
38
Feedback-Scheduling
•  Grundidee ist die Berücksichtigung (in der SchedulingEntscheidung) von
•  „Warte“-Historie eines bereiten Prozesses
•  Aktueller Systemzustand
•  Grund, warum ein Prozess wartet
•  Z.B. Idee: Prozesse, die auf ein I/O gewartet haben, sollten nach
Verfügbarkeit der Daten möglichst schnell wieder weiterrechnen
dürfen
•  Andererseits: Prozesse, die nur warten weil ihre Zeitscheibe ablief,
haben im Moment anscheinend nur geringe Interaktivität
•  Nicht sehr dringend
•  Aber wenn ausführen, dann für längere Zeit ausführen um
Prozesswechsel-Aufwand zu verringern
! Multilevel-Feedback Scheduling
•  Unterteile die Liste der bereiten Prozesse in mehrere Teillisten, je
nach dem Grund, warum die Prozesse warten
SS 13, v 1.7
KMS - Kap. 3: Scheduling
39
Multilevel Feedback Scheduling à la UNIX (vereinfacht!)
•  Prozesse in Listen unterschiedlicher Priorität eingeordnet
•  Hohe Priorität: Wartet auf I/O, genauer: ist nach erfolgtem I/O
wieder ablaufbereit geworden
•  Je höher die Priorität, desto kürzer die Zeitscheibe
•  Wenn Prozess verdrängt wird
•  Verdrängt wegen Zeitscheibenablauf: in Liste mit niedrigerer
Priorität
•  Verdrängt wegen blockieren: nach Ende der Blockierung in Liste
mit höherer I/O
•  Wenn neuer Prozess auszuwählen ist
•  Suche nach Liste mit bereitem Prozess, in absteigender Priorität
•  Innerhalb Liste: einfaches First Come, First Serve
•  Achtung: Details sind komplizierter!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
40
Multilevel Feedback Scheduling à la UNIX –
Prozess-Zustandsdiagramm
Entblockiert
Bereit (nach
Blockade)
Priorität
Mit 1 ms Zeitscheibe
ausführen
Mit 2 ms Zeitscheibe
ausführen
Bereit (nach 1
ms Zeitscheibe)
Nach Ablauf
1ms Zeitscheibe
Mit 4 ms
Zeitscheibe
ausführen
SS 13, v 1.7
Blockiert
Laufend
Bereit (nach 2
ms Zeitscheibe)
Nach Ablauf
2ms Zeitscheibe
Bereit (nach 4
oder 8 ms
Zeitscheibe)
Mit 4 ms
Zeitscheibe
ausführen
KMS - Kap. 3: Scheduling
Nach Ablauf
4ms oder 8 ms
Zeitscheibe
41
Prozesse, die nach
Zeitablauf verdrängt
wurden
Liste für Zeitscheibe
1ms (schneller I/O)
Priorität
Prozesse, die nach
I/O-Blockade
wieder ablauffähig
wurden
Multilevel Feedback Scheduling à la UNIX – Beispiel
Liste für Zeitscheibe
2ms (langsamer I/O)
Liste für
Zeitscheibe 2ms
Liste für
Zeitscheibe 4ms
Liste für
Zeitscheibe 8ms
Blockiert, wartet auf
schnelles Gerät
Blockiert, wartet auf
langsames Gerät
CPU
FCFS Selection
aus höchstpriorer,
nichtleerer Queue
Zeitscheibe abgelaufen, in Liste mit doppelter Zeitscheibe
SS 13, v 1.7
KMS - Kap. 3: Scheduling
42
Anmerkungen
•  Für allgemeine Systemsoftware mit interaktivem Betrieb ist
Verdrängung nahezu unverzichtbar
•  Meist wird eine Kombination eingesetzt aus
•  Zeitscheiben-Mechanismus
•  Prioritäten
•  Prioritäten setzen sich oft zusammen aus
•  Statischen Anteilen und
•  Dynamischen Anteilen
•  Bei dynamischen Anteilen Berücksichtigung von
•  Prozessverhalten
•  Aktueller Lastsituation
SS 13, v 1.7
KMS - Kap. 3: Scheduling
43
Überblick
1.  Einführung, Beispiele
2.  Gestaltungsparameter für Scheduling
3.  Schedulingstrategien
4.  Multilevel-Scheduling
5.  Scheduling mit Sollzeitpunkten
6.  Scheduling abhängiger Prozesse
7.  Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
44
Scheduling mit Sollzeitpunkten
•  Sollzeitpunkte : Vollständige Bearbeitung eines Prozesses
zu einem bestimmten, a-priori festgelegten Sollzeitpunkt/
Frist (deadline),
•  Primär in Steuerungssystemen, z.B. Auswertung von Messgrößen
innerhalb knapper Zeitschranken
•  Einhaltung der Sollzeitpunkte teilweise kritisch für die Funktion des
Gesamtsystems
•  Können Verletzungen der Sollzeitpunkte toleriert werden?
•  Strikte Echtzeitsysteme (Hard real-time systems)
•  Verletzungen werden als nicht akzeptabel angesehen (z.B. Airbag,
ABS, Öffnung von Ventilen beim Überdruck, Flugleitrechner, …)
•  Oft Einsatz von Off-Line-Algorithmen notwendig
•  Schwache Echtzeitsysteme (Soft real-time systems)
•  Verletzung zwar tolerierbar, führt aber zu Qualitätsverlusten (z.B.
Internet-Telefonie, Videoübertragung im Internet)
SS 13, v 1.7
KMS - Kap. 3: Scheduling
45
Wichtige Kenngrößen
•  Typische Voraussetzung (insbes. für harte Echtzeit)
•  Früheste Anfangszeit/späteste Endzeit a-priori gegeben/bekannt
•  Wichtige Zeitpunkte für einen Prozess Pi:
Frühester Startzeitpunkt ai
Tatsächlicher Startzeitpunkt si
Tatsächlicher Endzeitpunkt ei
Spätester Endzeitpunkt di (Sollzeitpunkt, deadline)
Bedienzeit (service time) bi = ei-si
Geben Sie drei
•  Annahme: keine Unterbrechungen
mögliche
•  Spielraum (slack-time, laxity) sli = di-ei
Optimierungsziele
bi
sli
für Scheduling mit
Sollzeitpunkten an!
• 
• 
• 
• 
• 
Pi
ai
SS 13, v 1.7
si
ei
di
KMS - Kap. 3: Scheduling
46
Verspätungen
•  Überschreitung der Sollzeit (ei > di): Verspätung
(lateness) L=ei–di
•  Mögliche Zielfunktionen bei tolerierbaren Verspätungen
•  Minimierung der maximalen Verspätung Lmax
P1
P2
d1 Lmax
d2
P3
P4
d3
P5
d4
d5
! Maximale Verspätung minimiert, aber alle Deadlines verpasst
•  Einhaltung von möglichst vielen Deadlines, ohne
Berücksichtigung der maximalen Verspätung
P2
P3
d1
P4
d2
P5
d3
P1
d4
d5
Lmax
SS 13, v 1.7
KMS - Kap. 3: Scheduling
47
Dringendste Aufgaben zuerst erledigen
•  Nahe liegende Idee: Zuerst die als nächste fällige Aufgabe
erledigen
•  Earliest Due Date (EDD)
•  Keine Verdrängung möglich, alle Tasks können zu jedem
Zeitpunkt beginnen
•  Theorem Earliest Due Date („Jacksons Regel“)
•  Jeder Ablaufplan, in dem die Prozesse nach nicht fallenden
Sollzeitpunkten geordnet ausgeführt werden, ist optimal bezüglich
Lmax
•  Kurz: EDD minimiert maximale Verspätung
•  Lediglich Sortiervorgang mit O(n log n) notwendig
•  Praxis: In der Regel existieren mögliche Startzeitpunkte (ai)
⇒ NP-hartes Problem
SS 13, v 1.7
KMS - Kap. 3: Scheduling
48
Minimierung der maximalen Verspätung
•  Voraussetzung
•  Vorgegebene Startzeitpunkte aller Prozesse, nicht vorab bekannt
•  Verdrängung möglich
•  Theorem EDF (Earliest Deadline First)
•  Jeder Ablaufplan, in dem zu jedem Zeitpunkt der Prozess mit dem
frühesten Sollzeitpunkt unter allen ablaufbereiten Prozessen
zugeordnet wird, ist optimal bezüglich der maximalen Verspätung
•  Unterschied EDD $ EDF: Verdrängung nein/ja
a4
a2
P2
a1
P3
P2
P3
P1
d2
SS 13, v 1.7
P5
P4
a3
P1
P1
a5
P4
P3
P3
P5
d1
d5
KMS - Kap. 3: Scheduling
d4 d3
49
Überblick
1. 
2. 
3. 
4. 
5. 
6. 
7. 
Einführung, Beispiele
Gestaltungsparameter für Scheduling
Schedulingstrategien
Multilevel-Scheduling
Scheduling mit Sollzeitpunkten
Scheduling abhängiger Prozesse
Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
50
Scheduling abhängiger Prozesse
•  Bislang
Die einzuplanenden Prozesse sind unabhängig voneinander
•  Jetzt
•  Ausführungsintervalle eines Prozesses sind abhängig vom Startoder Endzeitpunkt eines anderen Prozesses
•  Abhängigkeiten zwischen Prozessen müssen berücksichtigt
werden
•  Eine bestimmte Reihenfolge der Prozessausführung muss
eingehalten werden
•  Formal
•  Definition einer Ordnungsrelation auf der Prozessmenge, welche
die Ausführungsreihenfolge der Prozesse festlegt
•  Darstellung als gerichteter azyklischer Graph (Directed Acyclic
Graph, DAG)
SS 13, v 1.7
KMS - Kap. 3: Scheduling
51
Modellierung der Beziehungen
•  Prozessgraphen (P,B) mit
•  P = Menge aller Prozesse entspricht den Knoten
•  B ½ P X P = Menge aller Beziehungen zwischen den Prozessen
•  Erweiterung durch Transitionsfunktion, Gewichte für
Knoten und Kanten, …
•  Modelle der Beziehungen zwischen den Prozessen dienen
als Grundlage unter anderem für
• 
• 
• 
• 
• 
Analyse des aktuellen Systemzustands
Belegung der Betriebsmittel
Datenpartitionierung
Optimierung der Abläufe wie Scheduling
…
SS 13, v 1.7
KMS - Kap. 3: Scheduling
52
Directed Acyclic Graph (DAG)
•  Azyklischer Prozessgraph, z.B. zur Modellierung der
•  Reihenfolgebeziehung (Vorgängergraph, Task Precedence Graph, TPG)
•  Interaktion (Kommunikationsgraph, Task Interaction Graph, TIG)
P1
P2
P3
P4
P6
SS 13, v 1.7
P5
P0
Raum
Zeit
P0
P1
P2
P3
P5
P6
P7
KMS - Kap. 3: Scheduling
P4
P8
TIG
Kanten=Interaktion
Raum
TPG
Kanten=Reihenfolge
Raum
53
Erweiterung der DAGs für Scheduling
•  Gewichte der DAG-Knoten = Bedienzeiten
(Ausführungszeiten) der Prozesse
•  Beispiel
•  Die oberen Zahlen in den Knoten sind die Prozessnummern
•  Die unteren Zahlen geben die Bedienzeiten an
•  Einsatzgebiete:
•  Prozesse als Teile eines
parallelen Programms
•  Befehle oder kurze
Befehlsfolgen, die vom
Übersetzer bei der
Codeerzeugung für einen
superskalaren Prozessor
einzuplanen sind
SS 13, v 1.7
1
4
3
1
2
3
KMS - Kap. 3: Scheduling
4
7
5
1
7
4
6
2
54
Schedulingziel bei Prozessabhängigkeiten
•  Gegeben
•  Anzahl von Verarbeitungselementen (Prozessoren bzw. parallelen
Ausführungseinheiten)
•  Ein mit Ausführungszeiten annotierter DAG (als TPG)
•  Schedulingziel
•  Minimiere Ablauflänge
•  Berücksichtige Abhängigkeiten, Hardware-Einschränkungen
•  Varianten
•  Verwendung spezieller DAGs (z.B. In-tree, Out-tree,...)
•  Zusätzliche Berücksichtigung von Kommunikationszeiten
(Verzögerungen entlang der Kanten)
•  Zusätzliche Berücksichtigung von Sollzeitpunkten
SS 13, v 1.7
KMS - Kap. 3: Scheduling
55
Beispiel Instruction Scheduling – TPG aus Programm
•  Quellprogramm (Grundblock)
•  x = a+b
•  y = x+c
•  z = d+e
•  Instruktionen
1.  r1 = a
2.  r2 = b
3.  r3 = r1+r2
4.  x = r3
5.  r4 = c
6.  r5 = r3+r4
7.  y = r5
8.  r6 = d
9.  r7 = e
10. r8 = r6+r7
11. z = r8
SS 13, v 1.7
Abhängigkeitsgraph
1
1
2
1
5
1
3
1
4
1
8
1
9
1
10
1
6
1
11
1
7
1
Einheitliche Bedienzeit für jede Instruktion (1 Einheit)!
KMS - Kap. 3: Scheduling
56
List-Scheduling
•  Verfahren für allgemeines Scheduling abhängiger
Prozesse
•  Heuristisches Off-line-Verfahren ⇒ erstellte Schedules nicht
notwendigerweise optimal, d.h. mit minimaler Länge
•  Allerdings: optimale Pläne sind garantiert für baumförmige DAGs
SS 13, v 1.7
KMS - Kap. 3: Scheduling
57
List-Scheduling
•  Algorithmus
•  Gegeben: DAG-Abhängigkeitsgraph, Knoten gewichtet mit
Prioritäten, einheitliche Ausführungszeiten
•  Gesucht: Ablaufplan minimaler Länge für k Prozessoren
•  Ablauf
•  Füge alle Quellknoten (Knoten ohne Vorgänger) in die Liste ein
•  while (Liste nicht leer) do
•  Nimm Knoten mit höchster Priorität aus der Liste; markiere Knoten
als „abgearbeitet“
•  Wähle einen leeren Prozessor, um diesen Knoten auszuführen
•  Prüfe für alle Knoten, die noch nicht zugeordnet und noch nicht in die
Liste eingefügt wurden, ob alle direkten Vorgänger abgearbeitet sind.
Falls ja, füge diesen Knoten in die Liste ein.
SS 13, v 1.7
KMS - Kap. 3: Scheduling
58
Demo List Scheduling (ohne Abhängigkeiten)
E
DA
A
H Machine
C 1C
B
DB
Machine
G 2
F
I
H
I
0
F
Machine 3
E
G
J
J
Optimaler Schedule
A
B
E
D
C
0
Machine
H
1
I
Machine 2
G
F Machine 3
J
List Scheduling
Beispiel von www.cs.princeton.edu/~wayne
SS 13, v 1.7
KMS - Kap. 3: Scheduling
59
Beispiel für List-Scheduling
•  Annahme: Alle Prozesse haben die gleiche Priorität
1
1
2
1
5
1
3
1
4
1
8
1
9
1
10
1
6
1
11
1
7
1
Erstellen Sie den ListSchedule bei Verwendung
von drei bzw. vier CPUs
SS 13, v 1.7
KMS - Kap. 3: Scheduling
60
Beispiel für List-Scheduling
•  Annahme: Alle Prozesse haben die gleiche Priorität
1
1
2
1
5
1
8
1
3
1
9
1
10
1
4
1
11
1
6
1
7
1
•  Der Algorithmus für List-Scheduling erzeugt folgende Pläne
1
2
3
4
SS 13, v 1.7
P1
P2
P3
Zeit
4 CPUs
3 CPUs
Zeit
P1
P2
P3
P4
1
2
3
4
KMS - Kap. 3: Scheduling
61
List-Scheduling für den allgemeinen Fall
•  Im allgemeinen Fall existieren unterschiedliche Laufzeiten
(Anzahl Rechenschritte pro Prozess) und Prioritäten
•  Notwendige Modifikationen des Basisalgorithmus
•  Neben der Initialisierung der Liste (auf Basis der Prioritäten der
einzelnen Prozesse), muss ein Zähler instanziiert werden, welcher
die Rechenschritte der Prozessoren zählt: Zyklus=0
•  Modifikation: while (nicht alle Knoten des DAG bearbeitet) do
•  Zusätzliche Bedingungen für die Schritte in der while-Schleife
•  (i) + (ii): so lange durchführen, bis Prozessoren verbraucht oder bis
aktuelle Liste leer (dann bleiben Prozessoren frei)
•  Die Prozessoren sind dann ab diesem Zyklus für die entsprechend
der Laufzeit des Prozesses folgenden Zyklen belegt
•  (iia): Erhöhe Zyklus um 1
•  (iii): Einfügen der Nachfolger in die Liste: Bestimme die Menge der
Nachfolger für die aktuelle Runde und sortiere diese entsprechend
ihrer Priorität in die Liste ein
SS 13, v 1.7
KMS - Kap. 3: Scheduling
62
Varianten des List-Scheduling (Definitionen)
•  Mehrere Prozesse ablaufbereit
•  Priorität entscheidet, welcher Knoten zur Ausführung kommt
•  Prioritäten ermöglichen Verfolgung unterschiedlicher Strategien
•  Definitionen
•  Pfadlänge in einem Abhängigkeitsgraph
•  Summe aller Knotengewichte (Prozessausführungszeiten) des
Pfades einschließlich des Anfangs- und Endknotens
•  Level eines Knotens x
•  Maximale Pfadlänge von x bis zu einer Senke, d.h. zu einem Knoten
ohne Nachfolger
•  Co-Level eines Knotens x
•  Länge des längstens Pfades von x bis zu einer Quelle, d.h. zu einem
Knoten ohne Vorgänger
SS 13, v 1.7
KMS - Kap. 3: Scheduling
63
Varianten des List-Scheduling (Strategien)
•  HLF (Highest Level First): Der Knoten mit dem größten Level (critical
path) hat die höchste Priorität
• 
• 
• 
• 
• 
Ziel: möglichst viele Prozesse deblockieren
Höhe des von Knoten x abhängigen Teilbaums als Prioritätskriterium
Kritischer Pfad bestimmt die gesamte Ablaufplanlänge
Optimal für baumartige Graphen mit Einheitsausführungszeiten
Gute Werte in praktischen Anwendungen (Bei zufälligen Graphen nur
höchstens 5% schlechter als optimale Lösung in 90% der Fälle)
•  SLF (Smallest Co-Level First): Höchste Priorität für Knoten mit
kürzester Kette von Vorgängerknoten
•  Da die Vorgänger jedoch alle bearbeitet sind, wenn der Knoten
ablaufbereit ist, bringt diese Strategie wenig ein
•  Alternative: Breite oder Kardinalität des Teilbaums als Priorität
SS 13, v 1.7
KMS - Kap. 3: Scheduling
64
Zusammenfassung
•  Einplanen und Auswählen von Aufgaben zur Ausführung
ist eine wesentliche Funktion der Ressourcenverwaltung
•  Starker Einfluss auf praktische Leistungsfähigkeit des Systems
•  Wesentliche Unterscheidungsmerkmale
•  Zeitpunkt, wann Information über Tasks zur Verfügung steht; Art
der Information
•  Viele unterschiedliche Optimierungsziele
•  Scheduling-Algorithmen reichen von einfach bis komplex
•  Probleme selbst können NP vollständig sein (in der Regel);
Heuristiken oder Approximationen notwendig
SS 13, v 1.7
KMS - Kap. 3: Scheduling
65
Überblick Scheduling
•  Verdrängung
•  Optimierungsziele
•  Keine, freiwillige Aufgabe,
durch Neuankunft, periodisch,
…
•  Schicksal des verdrängten
Prozesses
•  Ans Ende der Warteschlange
•  An Anfang der Warteschlange
•  …
•  Sollzeitpunkt
•  Ja/Nein, ggf. hart oder weich
•  Abhängigkeiten
• 
• 
• 
• 
• 
• 
Beendigungszeit
Durchsatz
#Verspätungen
Maximale Verspätung
Mittlere Verspätung
Alles mit Gewichten durch
Prioritäten verknüpfbar
•  Verfügbare Information
•  Vorab, zur Laufzeit
•  Korrekt, geschätzt
•  Keine/Precedence
SS 13, v 1.7
KMS - Kap. 3: Scheduling
66
Überblick
1. 
2. 
3. 
4. 
5. 
6. 
7. 
Einführung, Beispiele
Gestaltungsparameter für Scheduling
Schedulingstrategien
Multilevel-Scheduling
Scheduling mit Sollzeitpunkten
Scheduling abhängiger Prozesse
Fairness bei Ressourcenzuteilung
SS 13, v 1.7
KMS - Kap. 3: Scheduling
67
Von Scheduling zu Ressourcenzuteilung
•  Bisher: Diskussion über Scheduling
•  Planung der Reihenfolge, in der eine Ressource mehrere
Aufgaben abarbeitet
•  Beispiel hier: Ressource = CPU
•  Auch: Planung des Anteils an einer Ressource, die einer Aufgabe
zuteil wird
•  Beispiel hier: Welchen Anteil der CPU-Zeit bekommt welcher
Prozess?
•  Allgemeiner: Ressourcenzuteilung
•  Aufgaben brauchen mehrere Ressourcen, um erledigt zu werden
•  In unterschiedlichen Anteilen, konkurrieren mit unterschiedlichen
Aufgaben um unterschiedliche Ressourcen
•  Beispiel: Verkehrsfluss – Autos brauchen Straßen, um zum Ziel zu
kommen
•  Beispiel: Internet – Datenströme brauchen unterschiedliche Kabel,
um zum Ziel zu kommen, in unterschiedlichem Umfang
SS 13, v 1.7
KMS - Kap. 3: Scheduling
68
Fairness bei Ressourcenzuteilung
•  Was heißt überhaupt „fair“?
•  Gegebene Situation
•  Ein oder mehrere endliche Ressourcen C1, …, Cm
•  Für unendliche Ressourcen ist Fairness kein Problem
•  N > 1 Benutzer
•  Option: Hat ein/jeder Benutzer einen Maximalbedarf an
bestimmten Ressourcen?
•  Option: Sind alle Nutzer gleich, oder manche „langsamer“,
„wichtiger“ ?
•  Benötigen also zur Erfüllung einer Aufgabe mehr/weniger
Ressourcen
•  Beispiel: Nutzer haben Jobs unterschiedlicher Größe
SS 13, v 1.7
KMS - Kap. 3: Scheduling
69
Fairness
•  Gesucht: Rate ri, i=1, …, N für jeden Nutzer
•  Rate ist der „Nutzen“ den ein Nutzer erhält
•  In abstrakten Einheiten; je nach Problem z.B.: Jobs/Zeiteinheit,
Pakete/Zeiteinheit
•  Jobs, Pakete, … müssen nicht gleich groß sein; siehe oben
•  Jeder Nutzer i hätte gerne möglichst hohes ri
•  Aber nur im Rahmen verfügbarer Ressourcen, Einschränkungen
durch die anderen Nutzer
•  Optimierungsproblem mit vielen Variationen
SS 13, v 1.7
KMS - Kap. 3: Scheduling
70
Fairness – Wesentliche Kombinationen
Maximalbedarf?
Eine Ressource,
Maximalbedarf der Nutzer,
Nutzer unterschiedlich
Eine Ressource,
Maximalbedarf der Nutzer,
alle gleich
Heterogenität
der Nutzer
Mehrere Ressourcen,
Maximalbedarf der Nutzer,
alle gleich
Eine Ressource,
kein Maximalbedarf,
Nutzer unterschiedlich
Eine Ressource,
kein Maximalbedarf,
alle gleich
Mehrere Ressourcen,
Maximalbedarf der Nutzer,
Nutzer unterschiedlich
Mehrere Ressourcen,
kein Maximalbedarf,
Nutzer unterschiedlich
Mehrere Ressourcen,
kein Maximalbedarf,
alle gleich
Anzahl Ressourcen
SS 13, v 1.7
KMS - Kap. 3: Scheduling
71
Eine Ressource, kein Maximalbedarf, alle Nutzer gleich
•  Alle Benutzer gleich: ri = 1/N * C
•  Trivial…
SS 13, v 1.7
KMS - Kap. 3: Scheduling
72
Eine Ressource, Maximalbedarf, alle gleich
•  Nutzer i hat Maximalbedarf mi
•  D.h., ri > mi nutzlos für Nutzer i
•  Achtung: Maximale Anforderung an Ressource, nicht die maximale
Rate! (Wichtig für Verallgemeinerung auf mehrere Ressourcen)
•  Fall 1: ∑ mi < C ! Jeder bekommt, was er will: ri = mi
•  Fall 2: ∑ mi > C ! Nicht genug, um all glücklich zu machen
•  Eine intuitive Möglichkeit: Gib den sparsamen, was sie brauchen;
verteile den Rest unter den gierigen
•  Sei N‘ die Anzahl noch nicht zugewiesener Nutzer, C‘ die noch
verfügbare Kapazität (Initial: N‘ = N; C‘ = C)
•  Solange nicht allen Nutzern eine Rate zugewiesen (N‘ > 0):
•  Sei i der Nutzer mit minimalem mi unter den noch nicht zugewiesenen
Nutzern
•  Falls mi < C‘/N‘: ri = mi ; C‘ = C‘ – mi; N‘ = N‘ – 1
•  Falls mi > C‘/N‘: Für alle noch nicht zugewiesenen Nutzer j: rj = C‘/N‘; N‘=0
SS 13, v 1.7
KMS - Kap. 3: Scheduling
73
Fairness einer Ressource, Maximalbedarf, alle gleich
Bestimmen Sie ri für C=10, m1=4, m2=1, m3=5, m4=1
SS 13, v 1.7
KMS - Kap. 3: Scheduling
74
Eine Ressource, kein Maximalbedarf, unterschiedliche Nutzer
•  Benutzer unterschiedlich: Gleicher Nutzen nur bei
unterschiedlich viel Aufwand zu erreichen
•  Jeder Benutzer hat ein Ressourcenverbrauchsverhältnis vi
•  Beispiel Auto/LKW auf Autobahn, Ressource = Platz: v1 = 1, v2 = 10
•  Beispiel Paketübertragung: v1=1 (schnelle Funkverbindung), v2=5 (5x
langsamere Funkverbindung)
•  Rate ri drückt Nutzen aus, vi dafür benötigten Aufwand
•  Um Nutzen 1 zu erzielen, braucht Nutzer i gerade vi Ressourcen
•  Bei Rate ri verbraucht Nutzer i also ri vi Ressourcen
•  Insgesamt: Gesamtverbrauch GV = [r1, … rn] * [v1, …, vn]T
•  Notation: Ratenallokation R = [r1, …, rn]
•  Ratenallokation R ist zulässig gdw. GV <= C
•  Nur zulässige Allokationen sind relevant!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
75
Ressourcenverbrauchsverhältnis, Beispiel Mobilfunk
•  Szenario: Mobilfunk
•  Basisstation
•  Teilnehmer A nahe bei Basisstation ! gute Funkverbindung !
schnelle Übertragung möglich ! ein Datenpaket fester Größe
braucht 1 Millisekunde
•  Teilnehmer B fern der Basisstation ! schlechte
Funkverbindung ! nur langsame Übertragung möglich ! ein
Datenpaket fester Größe braucht 5 Millisekunden
•  Ressource: Zeit, geteilt zwischen zwei Nutzern
•  Rate: (Gemittelte) Anzahl Pakete pro Zeiteinheit
•  Ressourcenvorrat C: Länge des Zeitraums (Anzahl
Zeitschlitze, ...)
•  Nutzen = Rate
•  Annahme: Beide Teilnehmer haben gleichen Nutzen von jedem
Datenpaket
SS 13, v 1.7
KMS - Kap. 3: Scheduling
76
Eine Ressource, kein Maximalbedarf, unterschiedliche Nutzer
•  Und wie bekommt man nun zulässige und sinnvolle Ratenallokationen?
•  Idee 1: ri = 1/N * C
•  Aber Verbrauch: [1/N*C, …, 1/N*C]*[v1, …, vn]T = mean(vi) * C < C gdw.
mean(vi) < 1 – das ist keineswegs gesagt! ! nicht möglich!
•  Idee 2: ri = 1/∑ vi * C
•  „Equal sharing“, alle bekommen gleich viel
•  Beispiel: C=1, v1 = 1, v2 = 5 ! R1 = 1/6, R2 = 1/6
•  Problem: der sparsame wird für den Verschwender gebremst
•  Idee 3: Bedarf in Ratenberechnung einbeziehen:
ri = 1/(Nvi) C
•  Auf jeden Fall zulässig: 1/N*[1/v1*C, …, 1/vn*C]*[v1,…,vn]T = C
•  Problem (?): Nutzer mit geringem Verbrauch bekommen hohem Rate –
und umgekehrt!
•  Beispiel: C=1, v1 = 1, v2 = 5 ! r1 = 1/2, r2 = 1/10
•  „Gesamtrate“ ∑ ri höher, aber nicht maximal
•  Idee 4: ri = 1/vi C für Nutzer i mit minimal Verbrauch; 0 sonst!
•  Extrem unfair, aber Gesamtrate maximal
SS 13, v 1.7
KMS - Kap. 3: Scheduling
77
Mehreren Ressourcen, kein Max.bed., unterschdl. Nutzer
•  Formal: Ressourcenvorrat
C1, …, CM, N Nutzer
•  Nutzer i benutzt Ressourcen 1,
…,M in bestimmten Verhältnis
Vi = [vi1, …, viM ]
•  Nutzer i erhält Rate ri
•  Ratenallokation für alle Nutzer
1,…,N: R = [r1, … rN]
•  Eine Ratenallokation ist
zulässig (feasible), wenn kein
Ressourcenvorrat überschritten
wird:
•  Jeder Nutzer möchte möglichst
hohe Rate
•  Hier: kein Maximalbedarf
! Nutzer i hat bei Rate ri
Ressourcenverbrauch
Vi ri = [vi1, …, viM] ri
der einzelnen
Ressourcen 1, …, M
SS 13, v 1.7
•  Nur zulässige Allokationen sind
hier relevant
KMS - Kap. 3: Scheduling
78
Ressourcen-Allokationen
•  Beispiel: Zwei Ressourcen mit Kapazität C1 = 5 bzw. C2 = 10
•  V1 = [0, 1], V2 = [1, 0], V3 = [1, 2]
•  Nutzer 1 braucht nur Ressource 2
•  Nutzer 2 braucht nur Ressource 1
•  Nutzer 3 braucht doppelte so viele Ressourcen 2 wie Ressourcen 1
•  Allokationen
•  Ratenallokation R = [2, 1, 3] verbraucht Ressourcen 4 bzw. 8 !
Zulässig
•  Ratenallokation R´ = [2, 3, 3] verbraucht Ressourcen 6 bzw. 8 !
Nicht zulässig
•  Ist R = [2, 1, 3] sinnvoll? Was ist z.B. mit Nutzer 1 oder 2?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
79
Max-min fairness
•  Was ist hier fair (intuitiv)?
•  Es ist unfair, Nutzern Ressourcen vorzuenthalten, die kein anderer
braucht
•  Es ist unfair, wenn ein „reicher“ Nutzer (=hohe Rate) Ressourcen
hat, die ein „armer“ Nutzer benutzen könnte
•  Fairer, wenn der arme Nutzer dem Reichen Ressourcen weg nimmt
•  Allokation ist fair, wenn beides nicht mehr geht
•  Definition: Eine Ratenallokation R ist max-min fair, wenn
die Rate eines beliebigen Nutzers nur dadurch erhöht
werden kann, indem man die Rate eines anderen Nutzers
mit bereits niedrigerer Rate weiter senkt (um dadurch
Ressourcen freizumachen)
•  Versuche, dem zu helfen, dem es am schlechtesten geht ! max
of min
•  Beispiel: R (vorherige Folie) ist nicht max-min fair
SS 13, v 1.7
KMS - Kap. 3: Scheduling
80
Max-min fairness – Beispiel
•  Beispiel: Schiffe und Wasserstrassen
•  Nutzer = Routen: A ! B, A ! C, B ! D (alle gleich)
A
C
B
C1 = 2 Normschiffe/Stunde
C2 = 1 Normschiff/Stunde
D
C3 = 2 Normschiffe/Stunde
AB
AC
BD
•  Berechnen Sie eine max-min-faire Ratenallokation!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
81
Max-min fairness – Beispiel
•  Was passiert, wenn auf Route A ! C Schiffe mit 3x
höherem Platzbedarf eingesetzt werden?
•  D.h., vAB = [1, 0, 0], vAC = [3, 3, 0], vBD = [0, 1, 1]
SS 13, v 1.7
KMS - Kap. 3: Scheduling
82
Max-min fairness – Algorithmus „progressive filling“
•  Beginne mit Rate 0 für alle Nutzer
•  Erhöhe alle Raten gleichmäßig, bis eine (oder mehrere)
Ressource(n) ausgelastet ist (sind)
•  Dabei den ggf. unterschiedlichen Verbrauch der Ressourcen durch
die verschiedenen Nutzer berücksichtigen!
•  Die Raten aller Nutzer, die diese Ressource(n) nutzen,
werden eingefroren
•  Wiederhole mit den verbleibenden Nutzern, bis alle Raten
eingefroren sind
•  Liefert max-min fairness! Beweisskizze:
•  Ausgelastete Ressourcen sind Flaschenhälse
•  Jeder Nutzer wird durch einen Flaschenhals begrenzt!
•  Äquivalent mit max-min fairnes
SS 13, v 1.7
KMS - Kap. 3: Scheduling
83
Progressive filling Algorithmus – Formal
Gegeben:
C[i] : Resourcenbeschränkung j=1..m
v[i,j] : i=1..n, j=1..m – Resourcenverbrauchsverhältnisse
In welchem Verhältnis verbraucht Nutzer i
Ressource j, um eine Rate von 1 zu realisieren
Gesucht: Eine max-min-faire (und natürlich zulässige)
Ratenallokation r[i], i=1..n
Variablen:
done[i]= false für i=1..n
SS 13, v 1.7
KMS - Kap. 3: Scheduling
84
Progressive filling Algorithmus – Formal
while (es gibt noch ein Nutzer i mit done[i] == false)
{
Caktiv := Menge der noch relevanten Ressourcenbeschränkungen
(formal: j in Caktiv genau dann wenn es gibt ein i mit done[i] == false
und v[i,j] > 0 )
Für jedes j in Caktiv: Löse folgende Gleichung in der Variable rtmp
(hier ist der Einfachheit halber false=0, true = 1)
Sei r0 der kleinste Wert unter diesen rtmp , sei j0 der zugehörige Index dieser Resource
Für alle Nutzer i mit done[i] = false und v[i,j0] > 0:
Setzte r[i] := r0 und done[i] := true
}
SS 13, v 1.7
KMS - Kap. 3: Scheduling
85
Max-min fairness (2)
Bestimmen Sie die max-min faire Ratenallokation für:
C1 = 5, C2 = 10; V1 = [0, 1], V2 = [1, 0], V3 = [1, 2]
SS 13, v 1.7
KMS - Kap. 3: Scheduling
86
Anderer Fairness Denkansatz: Nutzen (utility)
•  Bis jetzt: Nutzer ist unmittelbar an seiner Rate interessant
•  Die Nützlichkeit (utility) aus einer Ressourcenallokation ist
unmittelbar proportional zur Rate
•  Das ist nicht immer der Fall
•  Beispiel: Maximalbedarf
•  Beispiel: Abnehmende Nützlichkeit – das 5. Eis ist weniger wert als
das 2. oder 3. Eis
•  Beispiel Datenübertragung: Zum Telefonieren braucht man keine
höhere Datenrate, als man sprechen kann
•  Wie diese Einschränkung überwinden?
•  Idee: Einführen „utility function“ („Nützlichkeitsfunktion“)
•  Als Funktion der zugewiesenen Rate; unterschiedlich für
unterschiedliche Anwendungen
SS 13, v 1.7
KMS - Kap. 3: Scheduling
87
Utility function – Optimierungsproblem
•  Sei U die utility function für alle Nutzer (alle gleich)
•  Gesucht: zulässige Ratenallokation R, die die Summe des
Nutzens maximiert
•  Formal
SS 13, v 1.7
KMS - Kap. 3: Scheduling
88
Utility Optimierung vs. Fairness
•  Für beliebige Utility Functions hat dieses
Optimierungsproblem zunächst einmal nichts mit Fairness
zu tun
•  Aber: Für U(x) = log(x) ist maximale Ratenallokation auch
in einem bestimmten Sinne fair
•  Allerdings nicht im Max-Min-Fairness Sinne
•  Definition: Eine zulässige Ratenallokation R ist
proportional fair gdw. für alle anderen zulässigen
Ratenallokationen S gilt:
Interpretation: Die
proportionalen
Veränderung sind in
der Summe negativ.
SS 13, v 1.7
KMS - Kap. 3: Scheduling
89
Behauptung: max log(x) ist proportional fair
•  Behauptung: Eine zulässige Ratenallokation, die die
Summe logarithmischer utility functions maximiert, ist
proportional fair und umgekehrt
•  Fakt 1: Das Optimierungsproblem hat eindeutige Lösung
•  Da es eine konkave Funktion auf konvexer Menge ist
•  Fakt 2: Eine proportional faire Ratenallokation ist eindeutig
bestimmt
SS 13, v 1.7
KMS - Kap. 3: Scheduling
90
Behauptung: max log(x) ist proportional fair
•  Fakt 3: Eine proportional faire Ratenallokation R löst das
Optimierungsproblem
�
•  Für beliebig konkaves f gilt: f (x + ∆) − f (x) ≤ ∆f (x)
•  Die Zielfunktion ist als Summe des konkaven Logarithmus konkav
•  Wegen Konkavität gilt also, für beliebige R, S zulässige
Allokationen
�
log(ri + si − ri ) −
�
log(ri ) ≤
�
1
(si − ri )
ri
•  Da R nach Voraussetzung proportional fair ist, gilt
�
log(ri + si − ri ) −
•  Und damit:
�
SS 13, v 1.7
log(si ) −
�
�
log(ri ) ≤
log(ri ) ≤ 0 ⇔
�
�
1
(si − ri ) ≤ 0
ri
log(si ) ≤
KMS - Kap. 3: Scheduling
�
log(ri )
91
Proportional fairness – Beispiel
Beispiel: C1 =1, C2 = 1, V1 = [1,1]; V2 = [1, ε]
• Berechne die proportional faire Ressourcen Allokation
• Ist sie max-min fair?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
92
Berechnung proportionaler Fairness/Utility Maximierung
•  Berechnung der Ratenallokation?
•  Wenn alle Eingaben an einer Stelle bekannt sind?
•  Beispiel: Mobilfunkbasisstation kennt utilities, Kapazitäten,
Verbrauchsverhältnisse der Nutzer, muss Raten für Nutzer
bestimmen
•  Wenn nicht alle Eingaben an einer Stelle vorliegen?
•  Beispiel Internet: Übertragungsraten für alle Teilnehmer bestimmen?
Zentrale Sicht?
•  Finden wir ein Berechnungsverfahren, dass zumindest für
zentralen Fall, vielleicht sogar für verteilten Fall
funktioniert?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
93
Berechnung proportionaler Fairness/Utility Maximierung
•  Idee: Anleihe bei Marktwirtschaft
•  Jeder Nutzer berechnet seine Rate selbst
•  Auf Basis von Preisinformation, die die einzelnen Ressourcen
vorgeben
•  Jede Ressource berechnet einen Preis anhand ihrer Auslastung
•  Auf Basis der Raten der Nutzer
•  Unabhängiges Vorgehen! Kein zentrales Wissen
•  Z.B. muss Ressource nicht die utility functions der Nutzer kennen
•  Funktioniert das? Details?
SS 13, v 1.7
KMS - Kap. 3: Scheduling
94
Utility Maximierung als Optimierungsproblem
•  Notation (Zusammenfassung):
•  Optimierungsproblem:
SS 13, v 1.7
KMS - Kap. 3: Scheduling
95
Einschub: Lagrange-Ansatz
•  Allgemeiner Ansatz für Optimierungsprobleme
•  Eigentlich nur für Optimierungsprobleme mit Gleichungen
als Nebenbedingungen
•  Problem P (x = [x1, ..., xn]):
•  Ansatz: Definiere Lagrange-Funktion ¤ (¸ = [¸1, ... ¸m]):
Bild: Wikipedia
SS 13, v 1.7
KMS - Kap. 3: Scheduling
96
Lagrange-Ansatz – Eigenschaften
•  Es gilt: Ist f(x) ein Maximum von P, dann gibt es ein ¸ so
dass alle partiellen Ableitungen von ¤ nach xi 0 sind:
•  Damit: Mit den Nebenbedingungen ergibt sich ein
Gleichungssystem in n+m Unbekannten und n+m
Gleichungen => Lösen
•  Lösungen dieses Gleichungssystems sind mögliche
Lösungen des ursprünglichen Problems
•  Lagrange-Ansatz liefert eine notwendige, keine hinreichende
Bedingung
•  Anschaulich: ¸j oft als „Preis“ der Nutzung von Ressourcen
j interpretierbar
SS 13, v 1.7
KMS - Kap. 3: Scheduling
97
Lagrange und Ungleichungen als Nebenbedingungen
•  Unser Utility Maximization Problem hatte aber
Ungleichungen als Nebenbedingungen!
•  Unter bestimmten Bedingung ist Lagrange-Ansatz trotzdem
analog anwendbar!
•  Sog. Karush-Kuhn-Tucker (KKT) Bedingungen
•  Sogar mit gemischten Gleichungen und Ungleichungen als
Nebenbedingungen – Details s. z.B. Boyd, Vandenberghe, Convex
Optimization, Kapitel 11
•  VEREINFACHUNG: Hier nur Gleichheit betrachtet!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
98
Utility Maximization mit Lagrange-Ansatz: Rate
•  Ansatz:
•  Partielle Ableitung:
•  Nach ri auflösen:
•  Ui’-1:Umkehrfunktion der Ableitung von Ui
•  Beobachtung: ri hängt von keinem anderen rk ab!!!
•  Spezialfall Ui = log :
SS 13, v 1.7
KMS - Kap. 3: Scheduling
99
Utility Maximization mit Lagrange-Ansatz: Preis
•  Einsetzen von ri in Nebenbedingungen für Cj:
•  Interpretation:
•  ¸l ist der Preis für die Nutzung von Link l
•  ri die durch Nutzer i gewählt Rate, bei Preisen ¸l
•  Sind die Preise ¸l richtig gewählt, werden also alle Ressourcen
perfekt ausgenutzt (und die Sum-Utility ist maximal)
•  ... und wir haben m Gleichungen für m unbekannte ¸l
•  Nur dummerweise kein lineares Gleichungssystem, nicht
explizit lösbar L
SS 13, v 1.7
KMS - Kap. 3: Scheduling
100
Utility Maximization mit Lagrange-Ansatz: Preis finden
•  Implizites Gleichungssystem lösen, z.B. durch
Iterationsverfahren (z.B. gradient descent)
•  Intuition: Betrachte Abweichung der verfügbaren Kapaziät Cj von
der genutzten Kapazität; wenn frei, Preis senken
•  Schrittweite °
•  Beobachtung: Keine Abhängigkeit von Ui, nur die lokal
beobachtbaren Raten sind relevant!
•  Damit: separates Iterationsverfahren für ¸ und r vorhanden!
SS 13, v 1.7
KMS - Kap. 3: Scheduling
101
Utility Maximization, Lagrange – Schlußbemerkung
•  Die ganze Darstellung hier ist ERHEBLICH vereinfacht
•  Vereinfachung durch Gleichheit statt Obergrenze der Kapazität
•  Keine Überlegungen zu Konvergenz, Stabilität
•  Zwangsläufig synchron?
•  Aber: das stimmt letztlich alles, das geht auch
asynchron, ...
•  Für Details: Low & Lapsley, Optimization Flow Control, IEE/ACM
Trans. on Networking, 7(6), 1999.
DOI: http://dx.doi.org/10.1109/90.811451
SS 13, v 1.7
KMS - Kap. 3: Scheduling
102
Gegenüberstellung
•  Beispiel: C1 = C2 = 1
•  V1 = [1 0], V2=[0 1], V3 = [1 1]
•  Maximale Gesamtrate:
R1 = 1, R2 = 1, R3 = 0
•  Max-min fair:
R1 = 0.5, R2 = 0.5, R3 = 0.5
•  Proportional fair:
R1 = 2/3, R2 = 2/3, R3 = 1/3
SS 13, v 1.7
KMS - Kap. 3: Scheduling
103
Beschreiben von Fairness
•  Oft sind Ratenallokationen gegeben, die weder
proportional noch max-min fair sind
•  Noch in irgendeinem anderen strikten Sinne fair
•  Frage: Wie kann man die „unfairness“ messen?
•  Möglichkeit: Herfindahl-Index (auch Jain‘s Fairness Index)
•  Sei R = [r1, …, rN] eine Zahlenmenge, deren Fairness beurteilt
werden soll
•  Sei:
•  Eigenschaften: 1/N · f ( R ) · 1; 1 gdw. ri = rj 8 i,j
•  Ursprünglich: Maß der Anbieterkonzentration in einem Markt
SS 13, v 1.7
KMS - Kap. 3: Scheduling
104
Scheduling-Algorithmen für Fairness
•  Prozesse: Completely Fair Scheduler (Linux since 2.6.23)
•  Auch Wartezeit mit berücksichtigen
•  Trotz des Namens nicht “komplett” fair
•  Paketnetze
•  Max-min fairness
•  Generalized processor sharing: Idealisierung eines unendlich
schnellen Prozesswechsels; Prozesse werden nach Priorität (entspr.
Ressourcenverbrauch) abgearbeitet
•  Approximation z.B. durch Weighted Fair Queuing
•  Proportional fairness
•  Z.B. durch direktes Lösen des Utility-Maximierungsproblems
•  Praktisch wichtig für Netze, Scheduling von Datenpaketen
•  Weniger für Prozess-Scheduling
•  => Details in Kapitel 9
SS 13, v 1.7
KMS - Kap. 3: Scheduling
105
Zusammenfassung
•  Scheduling und Ressourcenzuteilung reicht
•  von einfacher Ablaufplanung mit +/- trivialen Algorithmen
•  über komplexere Scheduling-Verfahren die unterschiedliche
Anforderungen wie Interaktivität oder Echtzeitfähigkeit
berücksichtigen
•  bis zu komplexen, verteilten Verfahren die die Raten
unterschiedlicher Nutzer bei begrenzten Kapazitäten
gegeneinander abgleichen
•  Es gibt nicht das Scheduling-Verfahren; stets vom
Einsatzzweck abhängig
SS 13, v 1.7
KMS - Kap. 3: Scheduling
106
Herunterladen