看门狗定时器
编辑看门狗定时器(有时被称为计算机正常运行时间或COP定时器,或简称看门狗)是一种电子或软件定时器,用于检测和恢复计算机故障。看门狗定时器广泛用于计算机中,以促进自动纠正暂时的硬件故障,并防止错误的或恶意的软件破坏系统的运行。在正常运行期间,计算机定期重启看门狗定时器,以防止其过期或超时。如果由于硬件故障或程序错误,计算机未能重新启动看门狗,则定时器将过期并产生一个超时信号。这个超时信号被用来启动纠正措施。纠正措施通常包括将计算机和相关硬件置于安全状态并调用计算机重启。微控制器通常包括一个集成的、片上的看门狗。在其他计算机中,看门狗可能存在于直接连接到CPU的附近的芯片中,或者它可能位于计算机/机箱的外部扩展卡上。
应用
编辑看门狗定时器通常出现在嵌入式系统和其他计算机控制的设备中,在这些设备中,人不能轻易访问该设备,或不能及时对故障作出反应。在这样的系统中,计算机不能依靠人类在其挂起时调用重启;它必须自力更生。例如,远程嵌入式系统,如空间探测器,是人类操作员无法进入的;如果这些系统不能从故障中自主恢复,它们可能会成为xxx残疾。在机器人和其他自动化机器中,控制计算机的故障可能会在人类做出反应之前对设备造成损害或伤害,即使该计算机很容易进入。在这种情况下,看门狗定时器经常被使用。看门狗定时器也被用来监测和限制正常运行的计算机上的软件执行时间。例如,当在沙盒中运行不受信任的代码时,看门狗定时器可用于限制代码的CPU时间,以防止某些类型的拒绝服务攻击。在实时操作系统中,看门狗定时器可用于监控一个时间紧迫的任务,以确保它在分配的xxx时间内完成,如果它未能完成,则终止该任务并报告失败。
架构和操作
编辑重启
重启看门狗定时器的行为通常被称为踢开看门狗。通常通过写到看门狗控制端口或设置寄存器中的一个特定位来完成启动。另外,一些紧密耦合的看门狗定时器是通过执行特殊的机器语言指令来启动的。这方面的一个例子是一些PIC微控制器的指令集中的CLRWDT(清除看门狗定时器)指令。在运行操作系统的计算机中,看门狗重启通常是通过设备驱动程序调用的。例如,在Linux操作系统中,用户空间程序将通过与看门狗设备驱动程序交互来启动看门狗,通常是通过向/dev/watchdog写0字符或调用KEEPALIVEioctl.设备驱动程序的作用是将看门狗硬件从用户空间程序中抽象出来,也可用于配置超时周期、启动和停止定时器。一些看门狗定时器只允许在一个特定的时间窗口内踢球。窗口时间通常是相对于前一次踢的时间,或者,如果看门狗没有被踢过,是相对于看门狗被启用的时刻。窗口在前一次踢球后的延迟后开始,在进一步延迟后结束。如果计算机试图在该窗口之前或之后踢看门狗,看门狗将不会被重新启动,在某些实现中,这将被认为是一个故障并触发纠正措施。
启用
看门狗定时器在运行时被称为启用,空闲时被称为禁用。上电后,看门狗可以无条件启用,也可以最初禁用,需要一个外部信号来启用它。在后一种情况下,使能信号可以由硬件自动产生或在软件控制下产生。当自动生成时,启用信号通常来自于计算机复位信号。在一些系统中,复位信号被直接用于启用看门狗。在其他系统中,复位信号被延迟,使看门狗在复位后的某个时间被启用。这种延迟使计算机在看门狗被启用前有时间启动。如果没有这个延迟,看门狗就会超时,并在计算机运行其应用软件--启动看门狗的软件--之前调用后续的复位,系统就会陷入无休止的不完全重启循环中。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/189999/