Real-Time-Scheduling bezeichnet die Ablaufplanung von Prozessen, bei der nicht der Durchsatz, sondern die Einhaltung von Fristen (Deadlines) das entscheidende Ziel ist. Während ein normales Betriebssystem Prozesse nach Fairness und Durchsatz verteilt, muss ein Echtzeit-Scheduler vorhersagbar garantieren, dass kritische Aufgaben rechtzeitig fertig werden.
Hard Real-Time und Soft Real-Time
Je nachdem, wie schwer eine verpasste Frist wiegt, unterscheidet man zwei Klassen:
- Hard Real-Time: Eine verpasste Deadline ist ein Systemfehler. Beispiele sind Airbag-Steuerungen, Flugsteuerungssysteme, medizinische Geräte oder industrielle Robotersteuerungen.
- Soft Real-Time: Gelegentliche Fristüberschreitungen sind tolerierbar, wenn sie selten bleiben. Beispiele sind Video-Streaming, Sprachübertragung (VoIP) oder Online-Spiele.
Determinismus statt Durchsatz
Echtzeit-Systeme brauchen deterministische Latenzen: Die Zeit vom Ereignis bis zur Reaktion muss berechenbar sein. Deshalb setzen sie auf spezielle Betriebssysteme (RTOS) wie FreeRTOS, VxWorks oder QNX, aber auch Linux mit dem PREEMPT_RT-Patch wird in der Industrie eingesetzt. Wichtige Bausteine sind die Unterbrechung durch Interrupts, ein vorhersagbarer Scheduler und kurze, berechenbare Preemption-Zeiten.
Die klassischen Algorithmen
Für periodische Echtzeit-Aufgaben haben sich zwei Grundmuster etabliert: Das Rate-Monotonic-Verfahren vergibt statische Prioritäten nach der Periodendauer, während EDF (Earliest Deadline First) dynamische Prioritäten nach der nächsten Frist vergibt. Beide bauen auf den allgemeinen Mechanismen des Prozess-Schedulings auf, unterscheiden sich aber von Allzweck-Verfahren wie Round Robin oder Multilevel Feedback Queue, die Fairness statt Fristen optimieren.
Verwandte Grundlagen: Prioritätswarteschlange, Zeitscheibe, Starvation.