title: Watchdog
text: # Watchdog
  
  Il watchdog o watchdog timer (in italiano: "temporizzatore di supervisione" - letteralmente: "cane da guardia") è un sistema di temporizzazione hardware che permette alla CPU la rilevazione di un loop infinito di programma o di una situazione di deadlock.
  
  Tale rilevazione può consentire di prendere dei provvedimenti per correggere la situazione, generalmente effettuando un reset del sistema. Possono essere implementati watchdog più complessi che consentano la memorizzazione delle informazioni di contesto per effettuare il debugging delle applicazioni che lo hanno causato. In questo caso un secondo watchdog più semplice dovrà assicurarsi che, se il primo non portasse a termine il suo compito in un determinato lasso di tempo, il sistema comunque venga resettato.
  
  Particolari watchdog possono innescare inoltre azioni di sistemi di controllo per effettuare operazioni di messa in sicurezza di apparati secondari come ad esempio, spegnimento di motori, alimentazioni o altro, in attesa che la condizione di errore venga eliminata.
  
  Un semplice watchdog può essere implementato facilmente con un contatore di x-bit in un sistema che funzioni con un clock di y MHz, in questo modo il sistema verrà resettato se il timer non viene riazzerato ogni ${\frac {2^{x}}{y\cdot 10^{6}}}$ secondi.
  
  