SBY

Scheduling

Kooperatives und präemptives Scheduling, Scheduling-Ebenen, Context Switch und wichtige Scheduling-Algorithmen.

Scheduling

Scheduling bedeutet, dass das Betriebssystem entscheidet, welcher Prozess oder Thread wann CPU-Zeit bekommt.

Diese Entscheidung beeinflusst:

  • Reaktionszeit
  • Durchsatz
  • Fairness
  • Wartezeit
  • Systemstabilität
  • Benutzererlebnis

Kooperativ und präemptiv

ArtBeschreibung
Kooperatives SchedulingEin Prozess gibt die CPU freiwillig ab.
Präemptives SchedulingDas Betriebssystem kann einem Prozess die CPU entziehen.

Moderne Betriebssysteme verwenden meist präemptives Scheduling. Dadurch kann ein einzelner Prozess das System nicht so leicht blockieren.

Scheduling-Ebenen

EbeneAufgabe
Long-Term SchedulingEntscheidet, welche Jobs ins System aufgenommen werden.
Medium-Term SchedulingLagert Prozesse aus oder holt sie zurück.
Short-Term SchedulingEntscheidet sehr häufig, welcher Prozess als Nächstes läuft.

Das Short-Term Scheduling ist besonders wichtig für die gefühlte Geschwindigkeit eines Systems.

Context Switch

Bei einem Context Switch wechselt die CPU von einem Prozess oder Thread zu einem anderen.

Dabei muss das Betriebssystem:

  • Register sichern
  • Program Counter sichern
  • Prozesszustand aktualisieren
  • neuen Prozesszustand laden
  • Speicher- und Verwaltungsinformationen berücksichtigen

Ein Context Switch ist notwendig, kostet aber Zeit. Zu viele Wechsel verschlechtern die Performance.

FCFS / FIFO

First Come, First Served führt Prozesse in der Reihenfolge aus, in der sie ankommen.

Vorteile:

  • einfach zu verstehen
  • leicht umzusetzen
  • fair nach Ankunftszeit

Nachteile:

  • kurze Prozesse können lange warten
  • schlechte Reaktionszeit bei langen Prozessen vorne in der Warteschlange

Shortest Job First

Shortest Job First bevorzugt den Prozess mit der kürzesten erwarteten Laufzeit.

Vorteile:

  • kann durchschnittliche Wartezeit senken
  • gut bei bekannten Laufzeiten

Nachteile:

  • Laufzeit ist oft nicht bekannt
  • lange Prozesse können benachteiligt werden

Round Robin

Round Robin verwendet eine kreisförmige Warteschlange und feste Zeitscheiben.

Beispiel:

  1. Prozess A läuft für eine Zeitscheibe.
  2. Prozess B läuft für eine Zeitscheibe.
  3. Prozess C läuft für eine Zeitscheibe.
  4. Danach beginnt die Reihenfolge wieder von vorne.

Vorteile:

  • faire CPU-Verteilung
  • einfach zu implementieren
  • gut für interaktive Systeme

Nachteile:

  • kurze Prozesse können trotzdem warten
  • zu kleine Zeitscheiben erzeugen viele Context Switches
  • heterogene Prozesse werden nicht immer optimal behandelt

Round Robin eignet sich besonders gut, wenn Prozesse ähnlich lange laufen oder kurze Antwortzeiten wichtig sind.

Priority Scheduling

Beim Priority Scheduling erhält jeder Prozess eine Priorität. Prozesse mit höherer Priorität werden bevorzugt.

Vorteile:

  • wichtige Aufgaben können bevorzugt werden
  • geeignet für Systeme mit unterschiedlich kritischen Aufgaben

Nachteile:

  • niedrige Prioritäten können verhungern
  • falsche Prioritäten verschlechtern Fairness und Stabilität

Ein Gegenmittel gegen Starvation ist Aging: Je länger ein Prozess wartet, desto höher wird seine Priorität.

Completely Fair Scheduling

Linux verwendet mit dem Completely Fair Scheduler ein Verfahren, das CPU-Zeit möglichst fair verteilt.

Die Grundidee: Prozesse sollen langfristig ungefähr den CPU-Anteil erhalten, der ihnen zusteht.

Sicherheitsbezug

Scheduling ist auch ein Sicherheitsthema.

Beispiele:

  • Ein Prozess darf das System nicht dauerhaft blockieren.
  • Kritische Dienste müssen genug CPU-Zeit bekommen.
  • Prioritäten können missbraucht werden.
  • Timing-Verhalten kann Seitenkanäle ermöglichen.

Merksatz

Scheduling ist kontrollierte Zeitverteilung. Ein gutes Verfahren ist nicht nur schnell, sondern fair, stabil und schwer missbrauchbar.

Zuletzt aktualisiert: 6. Juni 2026