An application watchdog, comprising a dedicated watchdog counter in the hardware
layer and a watchdog driver operating in the kernel mode layer of the computer
operating system. The driver comprises a system thread configured to monitor a
plurality of designated user applications operating in the user mode of the operating
system and a message passing interface for receiving periodic signals from each
of the user applications. The driver also uses an interface for transmitting timer
reset commands to the dedicated watchdog counter. If the system thread receives
a message from each of the designated user applications within an allotted period
of time, the watchdog driver sends a timer reset command to the dedicated watchdog
counter. Otherwise, the dedicated watchdog counter fails to receive the reset command
and subsequently issues a system reset command. Early warning signals may be issued
prior to system reset to alert system management.