À retenir
- C'est un mécanisme de survie pour les ordinateurs et les automates.
- Il force un redémarrage si le logiciel est figé.
- Il garantit la disponibilité du système même en cas de bug imprévu.
Un chien de garde est un dispositif de sécurité (matériel ou logiciel) conçu pour redémarrer automatiquement un système informatique s'il détecte que celui-ci est bloqué ou ne répond plus. On peut le comparer à un bouton d'alarme qu'un technicien devrait presser toutes les minutes : s'il oublie de le faire, le système considère qu'il y a un problème et déclenche un redémarrage d'urgence.
Étymologie
Traduction de l'anglais watchdog timer. L'image est celle d'un chien de garde qui surveille le bon fonctionnement d'une maison ; si l'activité normale s'arrête ou si une intrusion (un bug) survient, il « aboie » pour donner l'alerte ou agir. En informatique, le terme s'est standardisé avec l'essor de l'électronique embarquée dans les années 70 et 80.
Exemples d'usage
- Une sonde spatiale ou un satellite qui redémarre son ordinateur de bord suite à un bug causé par des radiations.
- Un routeur Wi-Fi qui se réinitialise seul après une perte prolongée de connexion.
- Un automate industriel qui coupe les machines si le programme de contrôle ne donne plus signe de vie.
Cas d'usage
Il est utilisé principalement dans les systèmes embarqués, l'Internet des objets (IoT), l'aérospatiale et les serveurs critiques. C'est un outil indispensable pour les systèmes devant fonctionner en totale autonomie, sans intervention humaine possible pour appuyer sur le bouton "Reset".
Bonnes pratiques
Il ne faut jamais réinitialiser le chien de garde dans une routine d'interruption automatique, car celle-ci pourrait continuer à fonctionner même si le programme principal est totalement planté. La règle d'or est de placer la remise à zéro à l'endroit le plus vital du code pour s'assurer que tout le programme tourne réellement.
Synonymes
Antonymes
Conseil
Si vous débutez en programmation de microcontrôleurs (comme Arduino), n'activez le chien de garde qu'une fois votre code bien testé, car un mauvais réglage peut rendre le débogage très difficile en faisant redémarrer la carte sans arrêt.
Questions fréquentes
Le chien de garde corrige-t-il les erreurs de programmation ?
Non, il se contente de réinitialiser le système. Il traite les symptômes (le blocage) mais pas la cause du bug.
Est-ce un composant physique ?
Il peut s'agir d'une puce électronique dédiée (plus robuste) ou d'une fonction logicielle intégrée au processeur.
Que se passe-t-il si le délai est trop court ?
Le système risque de redémarrer sans cesse (boot loop) car il n'aura pas eu le temps de réinitialiser le chien de garde pendant ses tâches normales.