chien de garde
Anglais: watchdog
Être continuellement réinitialisé par un temporisateur de surveillance.
watchdog : maintenir un système en vie en lui envoyant des signaux
« Watchdoguer » un système consiste à réinitialiser continuellement son temporisateur watchdog avant qu'il ne puisse déclencher une condition de défaut. Un temporisateur watchdog est un compteur matériel ou logiciel qui décompte à partir d'une valeur prédéfinie, généralement de quelques centaines de millisecondes à plusieurs secondes. Si le compteur atteint zéro, le temporisateur génère une interruption, un signal de réinitialisation ou enregistre un défaut. L'astuce est qu'une partie de votre code de contrôle doit réinitialiser ce compteur à sa valeur maximale avant qu'il n'expire, empêchant ainsi l'alarme.
Dans les machines industrielles et les systèmes de sécurité, les temporisateurs watchdog détectent quand un contrôleur s'est figé, a planté ou est entré dans une boucle infinie. Si le processeur principal cesse d'exécuter les cycles de code normaux, il ne peut pas envoyer l'impulsion de réinitialisation, le temporisateur expire et le système force un redémarrage ou déclenche un arrêt sécurisé. C'est un gardien rudimentaire mais efficace contre les firmwares incontrôlables. Les automates programmables industriels (API), les contrôleurs de mouvement et les électroniques de sécurité intègrent presque toujours un ou plusieurs temporisateurs watchdog.
Modèles de watchdog courants
Une application embarquée typique a une courte routine de maintenance qui s'exécute plusieurs fois par seconde et réinitialise explicitement le temporisateur watchdog comme l'une de ses premières étapes. Si le watchdog nécessite une réinitialisation toutes les 500 millisecondes et que votre programme se bloque dans une boucle d'enregistrement de données, le temporisateur expire après une demi-seconde et force la récupération. Certains systèmes utilisent un watchdog matériel indépendant du processeur : si aucun signal n'arrive sur une broche dédiée dans le délai d'attente, un relais ou une ligne de réinitialisation est activé. Ceux-ci sont plus difficiles à contourner pour un code bogué.
Le terme vient de l'image d'un chien de garde (watchdog) comme un gardien qui aboie et mord lorsqu'il est laissé sans surveillance. Le temporisateur est le chien de garde ; le réinitialiser à plusieurs reprises, c'est nourrir le chien pour qu'il reste fidèle et éveillé. Si vous arrêtez de le nourrir, il se retourne contre vous. Dans les contextes industriels plus anciens, en particulier dans les systèmes de sécurité répondant à des normes comme l'ISO 13849, vous verrez le watchdog discuté comme un mécanisme de supervision obligatoire qui fonctionne indépendamment de la logique d'application elle-même.
Ne pas « watchdoguer » un contrôleur critique en temps réel peut être grave. Si un entraînement de convoyeur perd le signal de commande et qu'aucun watchdog ne détecte le défaut, la courroie peut continuer à fonctionner ou à saccader de manière inattendue. De nombreux accidents de machines ont été attribués à un blocage de processeur qui est passé inaperçu. Inversement, un watchdog trop agressif, se réinitialisant après seulement 10 millisecondes alors que le système a besoin de 50 millisecondes par cycle, provoquera de faux défauts et des temps d'arrêt de production. Trouver le bon délai d'attente nécessite de comprendre le temps de cycle réel de votre code d'application et la gigue attendue.
Sources
- Source de la définitionWiktionary