Praktische Einführung mit Virtualisierung
Stefan Bosse
Universität Koblenz - FB Informatik
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung ::
Einführung des Prozessmodells
Datenstrukturen von Prozessen
Multiprozesssysteme und Scheduling (Prozessumschaltung)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Terminologie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Terminologie
bsdp Unterscheidung Programm zu Prozess
Allgemein gilt: kommt ein Programm zur Ausführung, dann wird ein neuer Prozess gestartet. Der Prozess belegt Hauptspeicherplatz, Prozessorregister, belegt Rechenzeit und nutzt die Peripherie. Ein bestimmtes Programm kann bei Bedarf auch mehrfach parallel ablaufen. Es liegen dann mehrere Prozesse vor, aber immer noch nur ein Programm.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Terminologie
bsdp Varianten der Software-Parallelität
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Terminologie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Terminologie
Man unterscheidet harte und weiche Echtzeitsysteme. Das Überschreiten von Zeitgrenzen (von Prozessen) wird im Softbetrieb toleriert, im Hartbetrieb wird diese als Systemfehler gewertet mit Anhalten der Rechneranlage.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozess
Ein Prozess i hat einen Zustand Σi. Ein Prozess in Ausführung ändert seinen Zustand.
Der Prozess ist ein Grundbaustein der Parallelverarbeitung mit einem Betriebssystem.
Das Prozessmodell ist daher ein zentrales Konzept moderner Betriebssysteme. Ergänzt wird es durch das Thread-Modell, das für die Parallelisierung innerhalb von Applikationen die optimalere Lösung darstellt.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozess
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Ereignisse
Man kann verschiedene Klassen von Ereignissen unterscheiden, die von Prozessen berarbeitet werden:
Warten auf Ereignisse bedingt das Anhalten des Kontrollflusses eine Prozesses (Prozessblockierung), wenn auch beim Pollingbetrieb nur eine wiedeholende Schleife den Programmfortschritt blockiert.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesszustände
bsbrause (a) Allgemein Prozesszustände und Übergänge (b) Prozesszustände und Übergänge bei UNIX (c) Prozesszustände in Windows NT
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesszustände
Die Zustände „bereit“ und „blockiert“ enthalten eine oder mehrere Warteschlangen (Listen), in die die Prozesse mit diesem Zustand eingetragen werden.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessmodell
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessverwaltung
Im Unterschied zu dem Maschinencode werden die Zustandsdaten der Hardware (CPU, FPU, MMU), mit denen der Prozess arbeitet, als Prozesskontext bezeichnet.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessverwaltung
Die verschiedenen Betriebssysteme differieren in der Zahl der Ereignisse, auf die gewartet werden kann, und der Anzahl und Typen von Warteschlangen, in denen gewartet werden kann. Sie unterscheiden sich auch darin, welche Strategien sie für das Erzeugen und Terminieren von Prozessen sowie die Zuteilung und Einordnung in Wartelisten vorsehen.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessumschaltung
Multiplexing: Die wechselseitige Nutzung einer geteilten Ressource, z.B. eines Funkkanals, Datenbusses, Prozessors, oder des Speichers. Beim Prozessor handelt es sich um Zeitmultiplexing.
Kanalmultiplexing (grün) im Vergleich zum Prozessmultiplexing (rot). Im Grunde werden Daten geschaltet.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessumschaltung
Multiprozessorsysteme können als multiple Kommunikationskanäle verstanden werden.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessgruppen
Prozesse können einzeln gestartet oder in Gruppen zugeordnet werden.
Prozessverdoppelung bei fork(). PID: Process Identifier Number (numerischer ganzzahliger Wert der einen Prozess im System eindeutig identifiziert)
Zeitmultiplexing
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessverwaltung
bsdp Mehrprogrammbetrieb mit vier Prozessen (Beispiel)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessumschaltung
Prozesswechsel benötigt eien Verwaltungstabelle für Prozesse mit einem Process Control Block (PCB), kann noch durch erweiterte Tabellen überdeckt sein.
Ablauf für einen Prozesswechse:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessumschaltung
bsdp Prozessumschaltung und Rolle des PCB in fünf Schritten (vereinfachtes Beispiel)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Vordergrund/Hintergrund System
Das einfachste Betriebssystem ist keines (im Sinne eines eigenständigen Programms). vor allem in Eingebetteten Systemen (Einplatinenrechner, Mikrokontroller) kommt das Einprogrammsystem zum Einsatz.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Vordergrund/Hintergrund System
Durch den Interruptbetrieb kann das Programm rechnen und beim Eintreten einen Ereignisses (Daten verfügbar, Ressource verfügbar, Fehler usw.) verzweigt der Prozessor in ein Unterpogramm welches das Ereignis bearbeitet.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
void setup() { Startcode}void loop () { if (Ereignis) handle(Ereignis) if (Berechnung) process(Berechnung)}setup();while (1) loop();
Zwei Funktionen (Arduino Style!): setup
wird einmal zu Beginn, und loop
"endlos" immer wieder aufgerufen.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
Damit die Hauptschleife durchläuft muss die eigentliche Berechnung gestückelt sein. I.a. folgt die Berechnung auf Ereignisse.
int timeout=0;struct list { int type; struct list *next };void add(struct list* l, int ev) { add event ev to list l }; void loop () { int now=milliseconds(); struct list events, eventp=events; if (Serial1.available) add(events,EV1); if (Serial2.available) add(events,EV2); if (timeout!=0 && timeout<now) { timeout=0; add(events,EV3); } ... while (eventp) { switch (eventp->type) { case EV1: procev1(); domore(); break; case EV2: procev2(); break; ... } eventp=eventp->next; }}
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
Ein großes Problem (nicht nur in Echtzteitbetriebssystemen): Eine lange Laufzeit in einer Berechnung kann die Ereignsiverarbeitung derart einschränken dass es zu Verlusten von Ereignissen und Daten kommen kann. Es können sogar Hardware Geräte in einen blockierten/unbrauchbaren Zustand übergehen!
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
Es gibt zwei Lösungen:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
Jedes zusammenhängende (atomare) Syntaxelement einer fiktiven Programmiersprache, sagen wir Basic, wird einen Sequenz von Tokens (Symbolen) transformiert.
a=1 LHS VAR a 1 EOL b=2 LHS VAR b 2 EOL x=3 LHS VAR x 3 EOL for i = 1 to 10 FOR VAR i 1 10 EOL x=x+i+a+b LHS VAR ADD VAR x ADD VAR a ADD VAR bnext i NEXT i print x PRINT VAR X
Transformation eines Programms in eine lineare Folge von Symbolen
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
// VM stateint pc; int sp; uint16_t mem[SIZE]; // .....// VM Execution Loopint vmloop(steps) { for (int step=0;step<steps;step++) { int next=mem[pc++]; switch (next) { case LHS: xassign(); break; case VAR: xvar(); break; case PRINT: xprint(); break; case DELAY: xdelay(); return -1; case END: xend(); return 0; ... } if (interrupt) return 1; } return 1;}
VM Execution Loop
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Main IO Loop
// Interrupt Handlerint interrupt=0, pendingtokens=0, runnable=0;void handleIRQn() { interrupt++; }// IO Loopvoid loop () { if (interrupt) handle interrupts; interrupt=0; if (events) handle events; if (pendingtokens && runnable) { status=vmloop(STEPSMAX); if (status!=0) pendingtokens=1; else pendingtokens=0; if (status>0) runnable=1; else runnable=0; } if (newcode) { tokenize(newcode); pendingtokens=1; runnable=1; } ...}while (1) loop();
Einbindung einer VM Execution Loop in eine IO Loop
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesserzeugung und Terminierung
In sehr einfachen Systemen, z.B. in vielen eingebetteten Systemen, existieren alle Prozesse von Anfang an und laufen ewig, d.h., solange das System läuft. Auf Universalrechnern (general-purpose computers) ist es hingegen notwendig, Prozesse bei Bedarf zu erzeugen und gelegentlich wieder zu terminieren. Auslösende Ereignisse für die Prozess- bzw. Thread-Erzeugung können dabei sein:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesserzeugung und Terminierung
Es gibt drei grundlegende Möglichkeiten für den Start eines neuen Prozesses:
Prozessstartformen: (a) Prozessverkettung, Sequenz (b) Prozessvergabelung, Forking (c) Unabhängige Prozesserzeugung, Create
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesserzeugung und Terminierung
Neben der Erzeugung interessiert auch die Terminierung von Prozessen. Übliche Formen sind:
Prozessvereinigungsformen: Prozesse können auf andere warten.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozesserzeugung und Terminierung
(a) Systemdienstaufrufe für Prozess-/Thread-Start (b) Weitergabe von Daten an neue Prozesse/Threads (c) Systemdienstaufrufe für die Prozess-/Thread-Vereinigung
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Für die Ausführung paralleler Prozesse wäre idealerweise pro Prozess ein eigener Prozessor nötig. Da dies technisch nicht sinnvoll ist und nicht skalierbar ist (oder sehr aufwendig ist), hat man Verfahren entwickelt, die es erlauben, mehrere Prozesse quasi gleichzeitig auf dem gleichen Prozessor im Zeitmultiplexverfahren auszuführen.
Aber wie sollen die Prozesse der Ressource Prozessor zugeteilt werden, und wie lange sollen oder dürfen sie den Prozessor belegen? Reicht kooperatives Scheduling (Prozesse geben freiwillig die Ressource zurück, yielding), oder muss das Betriebssystem dieses erzwingen?
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
bsdp Vergleich echte 1:1 Prallelitäz versa "simulierte" N:M Parellelität durch Zeitmultiplexing
Welchen Nachteil hat die 1:1 Zeuteilung (von der nicht vorhandenen Skalierbarkeit abgesehn)?
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Wie können nun N Prozesse auf M Prozessoren verteilt werden?
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Grundmodell mit drei Zuständen
Erweitertes Modell der Prozesszustände vier Zuständen und Priorität
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Konzeptionelle Prozessverwaltung (Prozessorganisation)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Ein Prozess ist entweder der CPU zugeteilt oder in einer der Ressourcen-Warteschlangen
Die Prozessorzuteilungsstrategie (CPU scheduling) legt fest, welcher Prozess als nächster die CPU zugeteilt erhält.
Die Reihenfolge der Prozesse in der Bereitliste wird hierbei strategieabhängig unterschiedlich berücksichtigt.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Wie sollen nun Prozesse aus der Bereitwarteschlange der CPU zugeteilt werden? Was sind die Ziele?
Man unterscheidet zunächst:
Process based scheduling: Findet die Prozessorzuteilung nur zu ganzen Prozessen statt, so kennt der Systemkern keine Threads (single-threaded process). Dies bedingt ein Multithreading vollständig im Benutzermodus (user level threads).
Thread based scheduling: Findet die Prozessorzuteilung zu einzelnen Threads statt, so sind unterschiedliche Varianten des Multithreading möglich. Sowohl ein Multithreading auf der Benutzerebene als auch die direkte Nutzung von KL-Threads (kernel level threads) sowie verschiedene Zwischenformen sind denkbar.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Es gibt wesentlich zwei Arten von Prozessausführung (auch abwechselnd):
Betrachtet man typische Prozessabläufe, so kann man zwei wichtige Grundmuster (pattern) unterscheiden (siehe auch Abb. 4–31):
Generell können Wartezeiten auf die Ein-/Ausgabe für die Ausführung parallel laufender Berechnungen genutzt werden. Besonders lohnend ist dies für »E/A-lastige« Aktivitäten. Grundprinzip der asynchronen E/A, z.B. in virtuellen Maschinen.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
E/A-lastig versa CPU-lastig hat große Auswirkung auf das Scheduling!
Prozessablaufmuster (E/A- bzw. CPU-lastig)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Für eine optimale Zuteilung der CPU zu rechenwilligen Prozessen wurde eine Vielzahl an Strategien entwickelt. Diese Vielfalt kommt daher, dass je nach verfolgten Optimierungszielen unterschiedliche Lösungen optimal sind. Aus Sicht des Anwenders können folgende Ziele wichtig sein:
Aus Sicht eines optimalen Ressourceneinsatzes können weitere Ziele interessant sein, wie Vorhersagbarkeit, Durchsatz (Anzahl erledigter Aufträge pro Zeiteinheit) und Prozessorauslastung.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Wichtig ist dabei, zu verstehen, dass ein zum Auswahlzeitpunkt im Zustand »Laufend« befindlicher Prozess an dieser Auswahl ebenfalls teilnimmt.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Prozessorzuteilungsstrategien
Eine Zuteilungsstrategie gilt als nicht verdrängend (nonpreemptive), wenn die Neuzuteilung nur zum 1. und 4. Zeitpunkt stattfindet. Eine nicht verdrängende Neuzuteilung hat die Eigenschaft, dass sie kooperatives Verhalten der laufenden Prozesse erwartet. Beansprucht ein laufender Prozess für sehr lange Zeit fortlaufend immer die CPU, so haben ablaufbereite Prozesse keine Möglichkeit, dies zu ändern. Dies gilt nicht für verdrängende (preemptive) Zuteilungsstrategien, da bei ihnen eine Neuzuteilung zu allen fünf oben aufgeführten Zeitpunkten stattfindet.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: FIFO Strategie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: FIFO Strategie
Beispielszenario mit FIFO-Strategie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: SJF Strategie
Bei der nicht verdrängenden Strategie SJF (Shortest Job First), die auch unter dem Namen SPN (Shortest Process Next) fungiert, wird bei einer Neuzuteilung derjenige Prozess ausgewählt, der den kleinsten erwarteten Rechenzeitbedarf hat.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: SJF Strategie
Beispielszenario mit SJF-Strategie
E/A Reaktionszeiten können auch hier schlecht sein (lange Verzögerung)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: SRT Strategie
Die Strategie SRT (Shortest Remaining Time) stellt eine Abwandlung des SJF-Verfahrens dar. Bei einer Neuzuteilung wird derjenige Prozess ausgewählt, der den kleinsten verbleibenden Rechenzeitbedarf hat.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: SRT Strategie
Beispielszenario mit SRT-Strategie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RR Strategie
Bei der RR-Strategie (Round Robin, im Kreis herum) erhält jeder Prozess ein Quantum an Rechenzeit zugeteilt, für das er ununterbrochen die CPU belegen kann.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RR Strategie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RR Strategie
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RR Strategie
Beispielszenario mit RR-Strategie: Zeitscheibengröße 40. Erreicht ein Prozess laufend das Zeitscheibenende, so wird ihm die CPU entzogen und dem nächsten bereiten Prozess zugeteilt.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RR Strategie
Beispielszenario mit erweiterter RR-Strategie: Zeitscheibengröße 20, wobei jeder Prozess jeweils über ein Zeitquantum von 2 verfügt. Erreicht ein Prozess laufend zweimal das Zeitscheibenende, so wird ihm die CPU entzogen und dem nächsten bereiten Prozess zugeteilt.
Kleinere Zeitscheibengrößen bei höherer Anzahl von Zeitscheiben kann zu einer schlechteren E/A Reaktionszeit führen. Die Wartezeit von bereiten Prozessen kann sich verbesssern. Das hängt aber vom aktuellen Zustand der Prozesse und der Wartelisten ab!.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: ML Strategie
Die ML Strategie (Multi-Level Priority) basiert auf Prioritäten, die den einzelnen Prozessen zugeordnet sind. Diese Prioritätszuordnung obliegt dem Anwender, der damit die Wichtigkeit der einzelnen Prozesse bestimmt.
Typischerweise ist diese Strategie verdrängend realisiert (Präemtpion), sodass stets derjenige ablaufbereite Prozess die CPU besitzt, der die höchste Priorität hat.
Nachteilig bei dieser Strategie ist, dass die CPU von höherpriorisierten Prozessen monopolisiert werden kann. Dies ist dann der Fall, wenn diese zu oft ablaufbereit sind, sodass niederpriore Prozesse nie die CPU erhalten. Man sagt dann, dass diese niederprioren Prozesse verhungern (starvation).
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: ML Strategie
Gründe für das Auftreten dieser Situation können falsch ausgelegte Prozesse, unerwartete Anwendungssituationen mit erhöhtem Rechenzeitbedarf oder eine zu leistungsschwache CPU sein.
Die ML Strategie wird gerne für Echtzeitsysteme genutzt, da sie bei nur einem einzigen Prozess auf der höchsten Prioritätsstufe diesem stets sofort die CPU zuteilt, wenn er ablaufen will.
Die Priorität kann auch dynamisch sein, d.h. sie ändert sich mit der Laufzeit von Prozessen. So werden Prozesse die häufig die Zeitscheiben ausschöüfen degradiert, welche die häufig auf E/A warten und nur kurz rehchen befördert.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: ML Strategie
Beispielszenario mit ML Strategie. Das Diagramm wurde um eine Prioritätsrangierung erweitert in der Art, dass A die höchste, B eine mittlere und C die tiefste Priorität zugeordnet bekommt.
Da Prozess A als einziger die höchste Priorität besitzt, erhält er stets sofort die CPU zugeteilt, wenn er ablaufen will. So verdrängt er beispielsweise zum Zeitpunkt 90 den Prozess B, wenn er die Ein-/Ausgabe abgeschlossen hat. Prozess B kann immer dann laufen, wenn A die CPU nicht besetzt. Prozess C schließlich muss warten, bis die CPU für ihn als Letzten frei wird.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: MLF Strategie
Die MLF Strategie (Multi-Level Feedback) begründet ihre Scheduling-Entscheide auf der aufgelaufenen Rechenzeit der ablaufbereiten Prozesse. Dazu verwendet sie eine feste Anzahl von Prioritätsstufen, z.B. 1..10.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: MLF Strategie
Warteschlagenorganisation für die MLF-Strategie (Beispiel). Prio: Priorität, Q: Zeitquantum. T: Zeitscheibengröße
Damit werden Prozesse mit kleinem Rechenzeitbedarf bevorzugt, da lang laufende Prozesse schrittweise in ihrer Priorität heruntergestuft werden.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: MLF Strategie
Beispielszenario mit MLF-Strategie
Vorteilhafte Eigenschaften besitzt diese Strategie für interaktive Systeme, da einerseits keine Vorkenntnisse über erwartete Rechenzeiten nötig sind und andererseits E/A-lastige Prozesse bevorzugt werden. Dies sind typischerweise auch Prozesse, die einen intensiven Benutzerdialog besitzen und mit dieser Strategie kurze Antwortzeiten realisieren können. Länger laufende Hintergrundprozesse nutzen so die verbleibende Rechenzeit, ohne dass sie die Reaktionszeit der Vordergrundprozesse negativ beeinflussen.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RM Strategie
Das RM-Verfahren (Rate Monotonic) bietet sich für periodisch ablaufende Prozesse an, wie sie oft in Echtzeitsystemen anzutreffen sind. Dabei wird von einer festen Periodenlänge ausgegangen. Für periodische Aktivitäten gilt typischerweise als spätester Endtermin der Anfang der nächstfolgenden Periode.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: RM Strategie
Beispielszenario mit RM Strategie (periodische Prozessabläufe) ohne Verdrängung/Präemption. Gelbe Bereiche: CPU nicht genutzt.
Prozess A läuft periodisch alle 60 Zeiteinheiten und er braucht für jeden Ablauf 40 Einheiten an Rechenzeit. Prozess B hat eine Periode von 40 und einen Rechenzeitbedarf von 10 Zeiteinheiten pro Aktivierung.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: EDF Strategie
Bei der EDF-Strategie (Earliest Deadline First) wird derjenige Prozess ausgewählt, dessen Restzeit bis zum Ablauf seines Endtermins am kleinsten ist.
Wie bei dem RM-Verfahren gehen wir von periodisch ablaufenden Prozessen aus, die mit festen Intervallen arbeiten. Der Endtermin einer anstehenden Bearbeitung ist stets der Anfang der nächstfolgenden Periode.
Es handelt sich um ein verdrängendes Verfahren, das sich gut für Echtzeitsysteme eignet.
Wie bei dem RM-Verfahren gehen wir von periodisch ablaufenden Prozessen aus, die mit festen Intervallen arbeiten. Der Endtermin einer anstehenden Bearbeitung ist stets der Anfang der nächstfolgenden Periode. Es handelt sich um ein verdrängendes Verfahren, das sich gut für Echtzeitsysteme eignet.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: EDF Strategie
(Oben) Beispielszenario für RM Strategie mit Unterbechung/Verdrängung von Prozess A durch Prozess B (Unten) EDF-Strategie mit Verdrängung
Bei EDF ist die Laufzeitunterbrechung von länger laufenden Prozesse etwas günmstiger.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Vergleich der Strategien
Um verschiedene Strategien miteinander zu vergleichen, sind folgende Größen zur Beurteilung hilfreich:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Vergleich der Strategien
bsdp Vergleich ausgewählter Scheduling-Strategien. Teils am Beispiel eines Prozesses, teils für alle Prozesse.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Zusammenfassung
Wichtigste Konzepte für Multiprozessausführung (Multiprogramming) sind
Es wird verdrängende (präemptive) und nichtverdrängende Prozessumschaltung unterschieden
Wichtigstes Beurteilungskriterien:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Zusammenfassung
Man unterscheidet beim Scheduling zwei wesentliche Prozessklassen:
Die Prozessauswahl hängt ab von:
. Das einfachste Multiprozessystem ist das Vordergund-Hintergrund System
Stefan Bosse - Grundlagen der Betriebssysteme - Modul P Prozesse und Prozessverwaltung :: Zusammenfassung
Prozesse besitzen einen Daten- und Kontrollzuständ (Programmzähler), aber viel wichtiger werden sie für die Prozessverwaltung auf Metazustände abgebildet und in Wartelisten verarbeitet:
Prozesswechsel bedeutet: