Dispatching nel Computing: Spiegazione Task Scheduling ed Esecuzione
Il dispatching è il meccanismo che assegna task pronti a risorse di esecuzione (core CPU, thread, GPU, nodi).
Nei Sistemi Operativi
- Scheduler seleziona prossimo task da run queue (priorità, fairness, deadline, affinity).
- Dispatcher esegue context switch: salva stato registri corrente, carica stato prossimo task, salta al suo instruction pointer.
- Avviene su: scadenza time slice, syscall, interrupt, lock contention, yield esplicito.
In Sistemi Paralleli/Distribuiti
- Task dispatchers (es. ThreadPoolExecutor, Celery, Kubernetes scheduler) abbinano unità lavoro a worker.
- Strategie: FIFO, priorità, locality-aware, load-balancing, esecuzione speculativa.
Nelle Comunicazioni
- Message dispatching: Routing messaggi a handler (event loop, actor systems, microservizi).
- Pattern: pub/sub, request/reply, streaming.
Metriche Chiave
- Latenza dispatch (coda → running)
- Throughput (task/sec)
- Fairness (evitamento starvation)
- Locality (affinità cache/NUMA)
Il dispatching è il "controllo traffico" del calcolo — dispatch efficiente massimizza utilizzo hardware e reattività.