Dispatching är mekanismen som tilldelar redo uppgifter till exekveringsresurser (CPU-kärnor, trådar, GPU, noder).
I operativsystem
- Schemaläggare väljer nästa uppgift från kökö (prioritet, rättvisa, deadline, affinitet).
- Dispatcher utför kontextväxling: sparar nuvarande registertillstånd, laddar nästa uppgifts tillstånd, hoppar till dess instruktionspekare.
- Sker vid: tidsskiva utgång, syscall, avbrott, låskonflikt, explicit yield.
I parallella/distribuerade system
- Uppgiftsdispatchers (t.ex. ThreadPoolExecutor, Celery, Kubernetes schemaläggare) matchar arbetsenheter till arbetare.
- Strategier: FIFO, prioritet, lokalitetsmedveten, lastbalansering, spekulativ exekvering.
I kommunikation
- Meddelandedispatching: Routning av meddelanden till hanterare (event loops, actorsystem, mikrotjänster).
- Mönster: pub/sub, request/reply, streaming.
Nyckelmått
- Dispatchlatens (kö → körande)
- Genomströmning (uppgifter/sek)
- Rättvisa (svältundvikande)
- Lokalitet (cache/NUMA affinitet)
Dispatching är "trafikledning" för beräkning – effektiv dispatch maximerar maskinvaruutnyttjande och responsivitet.