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