Interruption vs polling : différences et cas d'utilisation
Un processeur dispose de deux moyens pour savoir qu'un périphérique a besoin d'attention. Avec le polling, le CPU vérifie en boucle l'état du périphérique. Avec les interruptions, le périphérique envoie un signal au CPU, qui suspend ce qu'il fait, exécute un petit gestionnaire puis reprend. Le polling est simple et prévisible mais fait perdre du temps ; les interruptions sont efficaces et réactives mais ajoutent un surcoût et rendent le programme plus difficile à analyser.
| Critère | Polling | Interruption |
|---|---|---|
| Fonctionnement | Le CPU lit de façon répétée un registre d'état pour savoir si le périphérique est prêt | Le périphérique émet un signal ; le CPU suspend son travail et exécute un gestionnaire d'interruption (ISR) |
| Utilisation du CPU pendant l'attente | Occupé : le CPU consacre des cycles à la vérification | Libre : le CPU peut effectuer d'autres tâches ou se mettre en veille |
| Temps de réponse | Fixé par la fréquence de vérification de la boucle ; prévisible | Rapide (quelques microsecondes), mais variable selon le masquage, la priorité et la sauvegarde du contexte |
| Surcoût | Constant, même lorsqu'il ne se passe rien | Un coût par événement ; une fréquence d'événements très élevée peut submerger le CPU (tempête d'interruptions) |
| Complexité | Simple à écrire et à déboguer | Plus complexe : les gestionnaires doivent être courts, et les données partagées avec le code principal demandent des précautions (volatile, accès atomique) |
| Consommation | Maintient le CPU éveillé | Permet une veille basse consommation jusqu'à ce qu'un événement réveille le CPU |
| Comportement temporel | Facile à analyser | Des bugs de concurrence sont possibles entre le gestionnaire et le code principal |
| Usages typiques | Événements très rapides ou continus, programmes simples, pilotes réseau haut débit | Timers, boutons, événements de communication, alertes de capteurs, sortie de veille |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.