我可以创建/保存休眠状态以从*没有*实际休眠的情况下恢复吗?

Eni*_*gma 6 windows power windows-7 hibernate sleep

我希望能够在强制或意外关闭电源的情况下让我的计算机恢复到它的最后状态(打开程序等),而不必实际休眠或混合睡眠我的机器。

这可能吗?Windows 从休眠或混合睡眠时创建的休眠数据启动,但是否可以在 Windows 中手动创建/更新此休眠数据?

有没有第三方程序可以完成类似的事情?(不包括虚拟机)我不需要确切的状态保存,但至少需要一种记住打开的内容并再次打开它们的方法。

就目前而言,我在 1 小时不活动后使系统进入睡眠状态(混合睡眠),因此在断电的情况下,它可以从混合睡眠状态数据启动。这很好,但它使我无法让任何东西 24/7 全天候运行,而不必处理偶尔的断电问题。(这似乎比他们应该发生的更频繁)

gro*_*taj 8

至少有两个原因导致您不能这样做。

第一。由于ACPI 电源状态,休眠有效。这并不像“将 RAM 转储到硬盘驱动器并关机”那么简单。RAM 不是万能的,还有一些设备需要恢复到以前的状态。这就是 ACPI 加入的地方 - 它允许您在进入 S5 状态时暂停设备并在返回 S0 时恢复它们。但是S5意味着关机,所以你不能在不关机的情况下休眠计算机。

第二个。假设我们有一些硬件可以让正在运行的计算机休眠,同时保持它的开启。这会产生与处理并行计算时可能面临的问题类似的问题。

计算机按顺序工作。它们一个接一个地执行一系列简单(非常简单,比如“将该数字增加 4”)指令。现代 PC 具有多核 CPU,理论上可以同时处理多条指令,但并非总是可行。例如,假设我们有三个指令。

  1. 从用户读取 X。
  2. 将 X 乘以 2。
  3. 将 X 增加 7。

直到第 1 步完成后才能处理第 2 步,因为当时 X 是未知的。同理,要等到第2步完成后才能进行第3步,因为X的值很可能在第2步发生变化,这些步骤必须一一处理。

现在让我们假设我们有一台处理银行转账的计算机。您的银行账户上有一些钱,您想将 100 美元转入您朋友的账户。该算法看起来像这样,并且由于某种原因必须逐步处理:

  1. 将与您的帐户关联的金额减少 100 美元。
  2. 将您朋友帐户中的金额增加 100 美元。
  3. 传输已处理,因此将其从传输队列中删除。

计算机开始处理此传输,然后在步骤 1 和 2 之间突然由于停电而关闭。

现在,如果计算机不是“休眠而是处于活动状态”,它将开始启动并意识到出现问题 - 它会知道它应该验证所有最近的操作。一切安好。

但是如果它在开始处理第 1 步之前“休眠但还活着”,那就有问题了——计算机不知道出了什么问题,因为它记得休眠时一切都很好。但是硬盘上的数据已经更新,100美元已经从您的账户中提取,但尚未转入您朋友的账户。但是计算机不知道这一点,因为它是在休眠后发生的。

计算机将从您的帐户中再取出 100 美元并将其转给您的朋友。第一个 100 美元没了。

在“休眠”正在运行的系统时,可能会出现成千上万个类似的问题。