Scheduling Flashcards
Scheduling Typen
Long-term:
- Entscheidet über Höhe der Parallelität, und
- Verhältnis von I/O- zu CPU-limitierten Prozessen
Medium-term: Wann Prozess(teile) zwischen RAM und Auslagerungsspeicher bewegt werden.
Short-term: Welcher Prozess konkret ausgeführt werden soll
Ziele von Short-Term Scheduling
- Kurze Ablaufzeiten
- Kurze Antwortzeiten (wichtig für interaktive Programme)
- Hoher Prozess-Durchsatz (durch minimierten Overhead)
- Fairness
Scheduling-Modi
Preemptive: Betriebssystem kann eine laufende Aufgabe unterbrechen und sie gewaltsam von der CPU entfernen, um einer anderen Aufgabe die Ausführung zu ermöglichen. Das Betriebssystem hat die Autorität, eine derzeit ausgeführte Aufgabe zu präemptieren oder zu stoppen.
–> Betriebssystem hat mehr Kontrolle über Taskzuteilung
Non-preemptive: ein laufender Task setzt seine Ausführung fort, bis er die Kontrolle über die CPU freiwillig abgibt oder bis er seine Ausführung beendet. Das Betriebssystem kann eine Aufgabe nicht gewaltsam unterbrechen.
–> Tasks haben mehr Kontrolle darüber, wann sie die CPU freigeben. Tasks müssen die CPU explizit freigeben.
Erkläre [Start] und [Dauer] in Prozessen
- Start time gibt an in welchem Zeitslot ein Prozess erstellt wird.
NB: Er ist frühestens im nächsten Zeitslot
ausführbar. - Dauer entspricht der gesamten Servicezeit.
First Come First Served
- Wer zuerst kommt, mahlt zuerst.
- Non-preemptive
- Wählt den Prozess mit der längsten Wartezeit
Round Robin
- Preemptive mit konstanter Periode
- Geht die verfügbaren Prozesse reihum durch
Echtzeit-Scheduling
- Verhalten des Systems ist vorhersehbar und konsistent. Aufgaben werden geplant und ausgeführt, um sicherzustellen, dass ihre zeitlichen Anforderungen zuverlässig erfüllt werden.
- unterliegen strengen Zeitvorgaben
- Korrektheit des Systems hängt (u.a.) vom Erreichen von Deadlines ab.
- Real-time ̸= High-performance!
Earliest Deadline First (EDF)
- Preemption zur Ankunftszeit des Prozesses
- Wählt Prozess mit der nächstliegenden Deadline
- Minimiert verpasste Deadlines
Rate Monotonic Scheduling
- Preemptive mit fixen Prioritäten für periodische Prozesse
- findet verwendung in RealTime-OS
- Deadlines entsprechen Prozessende
- Perioden bestimmen Prioritäten
(kürzeste Period → höchste Prio.) - garantiert, dass Tasks ihre Fristen einhalten, wenn die Systemlast 100% nicht überschreitet.
Vorteile und Nachteile von Preemptive Scheduling?
Vorteile:
- bessere Reaktionsfähigkeit, da kritische Tasks ohne Warten auf den Abschluss des aktuellen Tasks ausgeführt werden können.
- Gewährleistet Fairness und verhindert, dass ein einzelner langlaufender Task die CPU monopolisiert.
Nachteile:
- größerer Overhead (Kontextwechsel)
- Komplex in der Implementierung und Verwaltung
Vorteile und Nachteile von non-Preemptive Scheduling?
Vorteile:
- Einfacher in der Implementierung und Verwaltung.
- geringerer Overhead
Nachteile:
- schlechtere Reaktionsfähigkeit, wenn eine Aufgabe nicht reagiert oder in eine Endlosschleife gerät.
- Schwierig Fairness zu garantieren