# Watchdog

Der Begriff Watchdog (englisch für Wachhund; auch watchdog timer genannt) bezeichnet eine Funktion zur Ausfallerkennung eines digitalen Systems, vorwiegend in Steuerungsanwendungen. Wird dabei eine mögliche Fehlfunktion erkannt, so wird entweder dies gemäß Systemvereinbarung an andere Komponenten signalisiert (z. B. Umschalten auf ein redundantes System), eine geeignete Sprunganweisung bzw. ein Reset zur selbsttätigen Behebung des Ausfalls eingeleitet, oder ein sicheres Abschalten veranlasst.

## Einsatz in Elektrotechnik und Informatik

Watchdogs werden meist in von Mikrocontrollern gesteuerten elektrischen Geräten oder Maschinen eingesetzt, um einen Ausfall des Gerätes durch Softwareversagen durch einen Reset zu beheben oder Gefahren in gestörten Sicherheitssystemen durch zwangsweises Abschalten zu vermeiden. Dazu teilen Software-Komponenten dem Watchdog als Lebenszeichen in vorgegebenen Abständen mit, dass sie noch ordnungsgemäß aufgerufen werden und funktionieren. Wichtig ist hier das Prinzip der Unabhängigkeit des Watchdogs von der Hardware des Mikrocontrollers, vor allem bei einem höheren Gefährdungsrisiko durch Fehlfunktion.
Allgemein ist das Gerät während eines Neustarts (nach dem Reset) nicht zu Echtzeitreaktionen fähig und kann somit keine Daten verarbeiten bzw. auf Anfragen reagieren. In manchen Anwendungsfällen ist es zwingend erforderlich, dass die Steuerung nach einem Neustart den Programmablauf an der unterbrochenen Stelle fortsetzt, z. B. bei einer Waschmaschine. Interne Systemzustände und ggf. Systemdaten einer Ablaufsteuerung müssen so gesichert werden, dass sie für den Neustart oder bei einem Stromausfall zur Verfügung stehen. Die Wiederherstellung eines vorher gespeicherten Zustands ist auch bei der Datenverarbeitung erforderlich zur Datenwiederherstellung, ggf. durch Rollback.

## Hardware-Watchdog

Die Meldung zum Zurücksetzen des Hardware-Watchdog (d. h. das Triggern) erfolgt durch einfache Befehle oder das Schalten von binären Ausgängen. Der Hardware-Watchdog kann in den Mikrocontroller integriert sein oder durch einen auf der Platine verbauten Mikroelektronik-Baustein realisiert sein. Er arbeitet gewöhnlich mit einem eigenen, vom Systemtakt des Prozessors unabhängigen Taktgenerator. Der Watchdog kann auch auf Basis analoger RC-Schaltungen implementiert werden.

### Timeout-Watchdog

Beim Timeout-Watchdog (deutsch: „Erkennung von Zeitüberschreitung“) muss sich der Mikrocontroller vor Ablauf einer vorgegebenen Zeit beim Watchdog melden (vergleichbar mit dem Prinzip Totmanneinrichtung bei der Bahn). Im Fehlerfall wird ein Reset des Mikrocontrollers und eventuell einiger Peripheriebauteile ausgelöst. Ist der Watchdog im Mikrocontroller integriert oder besitzt der Controller einen Eingang für einen NMI, kann auch zusätzlich ein sogenannter Trap durch Interrupt ausgelöst werden. Es ist anschließend die Aufgabe des dem Trap zugeordneten Softwaremoduls, eine angepasste Reaktion durchzuführen (z. B. abspeichern, dass es ein Watchdog-Problem gegeben hat, das System in den sicheren Zustand bringen und anschließend einen teilweisen oder kompletten Neustart durchführen).

### Fenster-Watchdog

Beim Fenster-Watchdog muss sich der Mikrocontroller innerhalb eines vorgegebenen Zeitfensters beim Watchdog melden. Hierfür werden Zeitintervalle für zu frühe und zu späte Meldungen vorgegeben und die Meldung ist nur innerhalb des Zeitfensters erlaubt und erforderlich. Dies ist insbesondere dann sinnvoll, wenn ein digitaler Regler Regelkreise mit festen Abtastzeitpunkten ausführt und bei abweichendem Verhalten Instabilitäten auftreten können. Die Reaktion bei ausbleibender Meldung entspricht der Reaktion beim Timeout-Watchdog.

### Intelligenter Watchdog

Die Meldung zum Zurücksetzen des intelligenten Watchdog erfolgt nicht mehr durch Auslösen eines einfachen Befehls oder Triggersignals, sondern durch komplexe Befehle oder komplexe Antworten. Hierbei müssen dynamische Berechnungen ausgeführt und ggf. Fragen zur Authentisierung korrekt beantwortet werden (siehe Challenge-Response-Authentifizierung). Damit können höhere Sicherheitsanforderungsstufen erreicht werden und das Risiko von unerkannten Fehlfunktionen reduziert werden.
Eine vergleichsweise einfache Implementierung dieser Intelligenz ist der PRBS-Watchdog. Hierbei generiert ein vom Mikrocontroller unabhängiges Schieberegister durch Rückkopplung eine PRBS-Folge von deterministischen Zufallszahlen. Der Mikrocontroller muss die gleiche Zahlenfolge berechnen und kann hierzu komplexe Befehlsfolgen mit internen Registern und Speicherzellen verwenden, um den nächsten Schlüssel zum Triggern des externen Watchdog zu berechnen. Die Befehlsfolge kann über den gesamten Programmablauf verteilt sein und bei geschickter Wahl der Rechenoperationen können die CPU-internen Module (ALU, Programmspeicher, Arbeitsspeicher und Register) mit einem kontinuierlichen Selbsttest überwacht werden.
Im Automobilbereich gelten hohe Anforderungen für die Steuerung des Antriebs (Motor und Getriebe), der Lenkung, der Bremsen und der Assistenzsysteme. Sie müssen fehlertolerant reagieren und das Gesamtsystem – unabhängig von einem fehlerhaften Mikrocontroller – in einen sicheren Zustand bringen. Beispiel: Das Drei-Ebenen-Konzept mit intelligentem Watchdog beim Elektronischen Gaspedal (E-Gas) im Auto. In sehr kritischen Anwendungen sind mehrkanalige redundante Systeme mit fehlertolerantem Verhalten notwendig, die aus identischen oder diversitären Komponenten aufgebaut sind.

## Software-Watchdog

Der Software-Watchdog ist eine prüfende Software im Mikrocontroller. Das Watchdog-Software-Modul kontrolliert, ob alle wichtigen Programm-Module in einem vorgegebenen Zeitrahmen korrekt ausgeführt werden oder ob ein Modul unzulässig lange für die Bearbeitung benötigt. Dieses muss nicht unbedingt durch eine fehlerhafte Abarbeitung verursacht sein, sondern kann auch durch einen Deadlock (Verklemmung) hervorgerufen werden. Der Software-Watchdog kann seinerseits von einem Hardware-Watchdog überwacht werden.
Verfügt ein Mikrocontroller nicht über einen speziellen Watchdog-Schaltkreis, kann der Software-Interrupt eines normalen Timers dazu verwendet werden, sofern der Systemtakt nicht im Energiesparmodus deaktiviert ist. Eine solche Timeout-Überwachung kann durch einen Zähler realisiert werden, der in regelmäßigen Abständen von der Software auf einen bestimmten Wert gesetzt wird. Dieser Zähler wird durch den Systemtakt des Mikroscontrollers ständig dekrementiert und liefert beim Erreichen von Null ein internes Ausfallsignal. Solche einfachen integrierten Watchdogschaltungen sind jedoch nicht für höherwertige Sicherheitsanforderungen ausreichend.
In verteilten Rechnersystemen oder Netzwerken kann eine gegenseitige Überwachung implementiert werden, z. B. durch Überwachen von Zeitüberschreitungen im Antwortverhalten der Aufgabenverteilung oder der Kommunikation (siehe Timeout (Netzwerktechnik)). Das Intelligente Plattform-Managementsystem spezifiziert als IPMI-Standard eine Schnittstelle zwischen Rechner und Watchdog, so dass man für Standard-Server-Hauptplatinen keine weitere Hardware benötigt.

## Weitere Verwendung

Mittlerweile wird der Begriff auch sinnverwandt in anderen Zusammenhängen benutzt, etwa im Diskurs um investigativen Journalismus als Watch Dog im Sinne einer „Vierten Gewalt“ oder in der Debatte um verantwortungsvolle Regierungsführung und die Korrektivfunktion einer vitalen Zivilgesellschaft.