Chien de garde (informatique)
Un chien de garde, en anglais watchdog, est un circuit électronique ou un logiciel utilisé en électronique numérique pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqué à une étape particulière du traitement qu'il effectue. C'est une protection destinée généralement à redémarrer le système, si une action définie n'est pas exécutée dans un délai imparti.
En informatique industrielle, le chien de garde est souvent réalisé par un dispositif électronique, en général une bascule monostable. Il repose sur le principe que chaque étape du traitement doit s'exécuter en un temps maximal. À chaque étape, le système arme une temporisation avant son exécution. Si la bascule retourne à son état stable avant que la tâche ne soit achevée, le chien de garde se déclenche. Il met en œuvre un système de secours qui peut soit déclencher une alarme, soit faire redémarrer l'automate, soit mettre en marche un système redondant… Les chiens de garde sont souvent intégrés aux microcontrôleurs et aux cartes mères dédiées au temps réel.
Quand il est réalisé par logiciel, il s'agit en général d'un compteur qui est régulièrement remis à zéro. Si le compteur dépasse une valeur donnée (timeout) alors on procède à un reset (redémarrage) du système. Le chien de garde consiste souvent en un registre qui est mis à jour via une interruption régulière. Il peut également consister en une routine d'interruption qui doit effectuer certaines tâches de maintenance avant de redonner la main au programme principal. Si une routine entre dans une boucle infinie, le compteur du chien de garde ne sera plus remis à zéro et un reset est ordonné. Le chien de garde permet aussi d'effectuer un redémarrage si aucune instruction n'est prévue à cet effet. Il suffit alors d'écrire une valeur dépassant la capacité du compteur directement dans le registre : le chien de garde lancera le reset.
D'une façon plus générale, il peut également s'agir d'un logiciel destiné à l'observation de certaines conditions. Par exemple, en matière de sécurité, à s'assurer régulièrement qu'aucune action malveillante n'est effectuée (dans la mémoire vive en particulier) ou que certaines conditions de fonctionnement sont bien remplies. Il s'agit généralement de processus ou de service exécuté en tâche de fond et donc, invisible à l'utilisateur.
Articles connexes
modifier