Salute e malattia

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à.