In general, a watchdog timer is a piece of code (or external hardware) that attempts to
keep some other piece of code (or hardware) from getting stuck in an endless
loop. Usually that's done by some common data structure that the
thing being watched is supposed to update frequently. The watchdog
keeps checking; if it sees that the data has not been updated,
it assumes the other thing has gone awry and does something.
In many cases, "something" is a panic, a forced shutdown
or a reboot, because the thing being
watched is critical and nobody can imagine why it would have
stopped unless all hell has broken loose somewhere.