Cos'è polling?

Il polling, in informatica, si riferisce a un processo in cui un dispositivo o un programma controlla regolarmente lo stato di un altro dispositivo o programma per determinare se è pronto a ricevere o trasmettere dati. In sostanza, si tratta di una interrogazione periodica per verificare la presenza di nuove informazioni o eventi.

Ecco alcuni aspetti chiave del polling:

  • Meccanismo: Il polling si basa su un ciclo continuo di interrogazioni. Un componente (il master) interroga ripetutamente un altro componente (lo slave) per verificare la presenza di dati o un cambiamento di stato.
  • Svantaggi: Il polling può essere inefficiente, in particolare quando il dispositivo slave è raramente pronto a trasmettere dati. In questi casi, il master spreca risorse ciclicamente a interrogare senza ottenere risultati. Questo spreco di risorse può comportare un elevato consumo di CPU e un utilizzo inefficiente della larghezza di banda. Ciò rappresenta un grande svantaggio del polling.
  • Alternativa: L'alternativa principale al polling è l'interrupt, in cui il dispositivo slave segnala al master quando è pronto a trasmettere dati. Gli interrupt sono generalmente più efficienti del polling, in quanto evitano il ciclo continuo di interrogazioni.
  • Usi comuni: Il polling è ancora utilizzato in alcuni scenari, in particolare quando la frequenza degli eventi è alta o quando la latenza degli interrupt è inaccettabile. Esempi includono il monitoraggio dei sensori, la gestione dei dispositivi di input/output (anche se spesso in combinazione con interrupt) e la comunicazione con hardware embedded.
  • Tipi di polling: Esistono diverse varianti di polling, tra cui il polling selettivo (in cui solo alcuni dispositivi vengono interrogati) e il polling a ciclo (in cui i dispositivi vengono interrogati in un ordine specifico).
  • Considerazioni sulla performance: La frequenza con cui viene eseguito il polling (il polling rate) è un parametro cruciale. Un polling rate troppo basso può comportare la perdita di eventi o dati. Un polling rate troppo alto può sprecare risorse e sovraccaricare il sistema. La scelta del polling rate ottimale dipende dalle specifiche esigenze dell'applicazione.