Dispatching ist der Mechanismus, der bereite Aufgaben Ausführungsressourcen zuweist (CPU-Kerne, Threads, GPUs, Knoten).
In Betriebssystemen
- Scheduler wählt die nächste Aufgabe aus der Ausführungswarteschlange (Priorität, Fairness, Frist, Affinität).
- Dispatcher führt den Kontextwechsel durch: speichert den aktuellen Registerzustand, lädt den Zustand der nächsten Aufgabe, springt zu deren Befehlszeiger.
- Tritt auf bei: Zeitscheibenablauf, Systemaufruf, Interrupt, Lock-Kontention, explizites Yield.
In parallelen/verteilten Systemen
- Aufgaben-Dispatcher (z. B. ThreadPoolExecutor, Celery, Kubernetes-Scheduler) passen Arbeitseinheiten an Arbeiter an.
- Strategien: FIFO, Priorität, ortsbewusst, Lastausgleich, spekulative Ausführung.
In der Kommunikation
- Nachrichten-Dispatching: Weiterleitung von Nachrichten an Handler (Event-Loops, Actorsysteme, Microservices).
- Muster: pub/sub, Anfrage/Antwort, Streaming.
Wichtige Kennzahlen
- Dispatch-Latenz (Warteschlange → laufend)
- Durchsatz (Aufgaben/Sekunde)
- Fairness (Vermeidung von Verhungern)
- Lokalität (Cache/NUMA-Affinität)
Dispatching ist die „Verkehrssteuerung" der Berechnung – effizientes Dispatching maximiert die Hardwareauslastung und Reaktionsfähigkeit.