我正在寻找一种方法来防止 Windows 冻结。我知道由于停机问题,没有办法完全防止任何程序陷入无限循环,但我认为我的问题更容易处理:我只想检测冻结并采取相应措施(终止进程或重启)。
有时,我的工作电脑会因为各种原因而冻结,原因可能是错误的程序占用了太多的 RAM,也可能是外部 USB 硬盘停止响应并导致整个操作系统冻结。
但是,我需要我的计算机始终处于运行状态,因为如果它死机了,它就会停止我留下的后台计算,而且死机可能不会被注意到,并且需要亲自修复(因此无法在晚上进行远程修复),所以最终可能会浪费很多时间。
我正在寻找:
- 一种方式检测冻结在 Windows (7 x64) 上。有什么标准方法吗?
- 任何一个杀冻结的根源,或者如果不可能重启计算机。是否可以检测死机的根源?即使在死机期间,是否可以(非物理地)强制重启?
最终目标是,在发生冻结的情况下,当前计算可能会丢失,但计算机将尽快再次可用(例如,通过远程访问重新启动计算)。
我的猜测是,这样的程序要想运行,就需要在 ring0 中运行,高于其他所有程序,以免陷入冻结(但这只是赌注,我不确定冻结是否不会影响 ring0,但我针对的冻结仍然允许输入像鼠标和键盘一样工作,所以我想 ring0 也可能工作)。
限制:
非常严格的网络安全措施(没有外部访问,只有内部计算机可以访问外部,例如,只有 UDP 打洞才适用于远程计算机访问),因此例如使用可远程控制的互联网插头是不可能的。
无需更改硬件:我可以将其他硬件插入到我的计算机上,但无法修改计算机内部已有的组件(例如,无法更换主板,但可以插入 PCI 设备或 SATA 等)。
目前,我正在寻找可以做到这一点的软件,或者关于如何自己做到这一点的技术信息(以及这是否可行或者是否不可能),或者任何其他符合上述限制的解决方案。
我并不指望仅使用软件解决方案就能修复所有类型的冻结,但我希望至少能解决鼠标和键盘仍然可以工作的“部分”冻结类型。
提前致谢。
注意:我这里说的是非 BSOD 冻结。对于 BSOD 冻结,Windows 提供了内核转储后自动重启的设置。
答案1
如果操作系统确实冻结,则操作系统/软件空间中将无法运行任何程序来执行重新启动。所以在我看来,您正在寻找 BIOS 中带有看门狗定时器的主板。不幸的是(?)这些通常仅在服务器级主板(以及用于嵌入式系统的主板)上可用。
从维基百科:
A看门狗定时器(有时称为计算机正常运行或 COP 计时器,或简称为看门狗)是一种用于检测和恢复计算机故障的电子计时器。在正常运行期间,计算机会定期重置看门狗计时器,以防止其流逝或“超时”。如果由于硬件故障或程序错误,计算机无法重置看门狗,则计时器将流逝并生成超时信号。超时信号用于启动纠正措施。纠正措施通常包括将计算机系统置于安全状态并恢复正常系统运行。
您可能还想查看其他现有的 SU 问题: