今日在网络上看到一篇文章(参见:http://windows.chinaitlab.com/skill/825365.html),讲的是如何利用注册表来实现 Windows 7 在休眠状态下继续维持网络连接并且能够让下载软件继续工作。
考虑到尊重原文,我还是怀着十分怀疑的态度按照文中所示的方法进行了测试,结果不出我所料,文中的方法是错误的。而且,原文作者混淆了计算机睡眠与休眠。
于是,我在这里讲讲系统睡眠与休眠的区别以及原文章错误之处。
睡眠
当计算机使用睡眠功能时,系统会将当前所有会话(session)的状态信息写入至内存中,进入睡眠状态后,除了内存,计算机中其他的硬件设备都将处于电力关闭的状态,也就是说在计算机睡眠时,只有内存维持有极低的电力消耗,而其他设备都将是断电状态。在这种情况下,计算机只会有极低的功耗,但却维持了非常易于恢复的待机状态,用户只需按下电源按钮,系统即会将内存中所保存的会话信息重新恢复至其他设备,这一过程非常迅速。但是,睡眠状态下的计算机要求有电力支持,假如计算机电源断开或者电池耗尽,内存将会丢失所有信息,计算机则无法成功恢复之前的工作状态。
休眠
与睡眠功能不同的是,休眠功能将系统所有的会话(session)信息保存到了硬盘上的转储文件中,这就要求了计算机必须有充足的空间来存储转储文件,通常转储文件都是比较大的,可能需要 5G 左右。比起睡眠功能,由于转储的会话信息不再保存在易失性的内存上而是在硬盘文件中,所以不再要求计算机需要电力支持。当计算机进入休眠状态之后,所有的硬件设备的电力供应都将停止,也就是说,这时计算机的状态与关机无异,所有设备都处在断电的情况下。但是,不足的一点是,因为计算机的所有设备都失去了电力供应,因此在开机时依然需要经历与正常开机无异的主板 BIOS 自检、引导等过程,只是在加载操作系统时是从硬盘中的转储文件中提取之前的会话状态而已,因此,这一过程比起睡眠要更为缓慢和持久,这不仅是开机过程的限制,也是硬盘性能的限制。
睡眠和休眠功能都是系统硬件设备提供的较为高级的电源管理功能,两者相对而言,各有优缺,睡眠功能恢复快,但是要求电力的持续供应,有电力消耗——虽然极低;而休眠功能则恢复较慢,但是不要求电力的持续供应。就这些特点而言,睡眠功能适合于短暂离开电脑时使用,一旦长时间离开计算机,假如发生了电力中断的情况将造成不可恢复的数据损失;休眠适合于长时间离开计算机时使用,但是要求计算机有足够的硬盘存储空间。
至于文章开头处所说的那篇文章,我想那位作者大概混淆了睡眠与休眠,就我前文所言,不论是睡眠还是休眠,都是要断开网络设备电力供应的,因此,就这一点而言,那篇文章的目的就无法达到。
为了进一步说明和解释那篇文章的错误,我们先来看看 Windows 7 中对睡眠和休眠的解释:
睡眠功能
从系统给出的说明中可以看出,系统将会进入一个低功耗的状态。
休眠功能
系统明确指出系统将关闭计算机。
我们回过头来看看那篇文章结尾处的叙述:
明显,系统电力都中断了,休眠状态下联网下载必然是不可能实现的。
其实,那篇文章中所说的那个功能是从 Windows Vista 开始内置的一种高级电源模式,叫做“离开模式”,在注册表中的位置是:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power 新建 DWORD32 项 名为:AwayModeEnabled 值为:1 |
该功能会将系统中原有的“睡眠”功能将具备“离开”模式,根据微软的官方解释:
离开模式下如果系统被计划任务唤醒或者具有网络操作、硬盘操作等,这些操作将不会受到睡眠功能的影响而会继续运行。
也就是说,在注册表中添加了上述项后,如果计算机正在执行网络下载、磁盘整理、文件复制,或者系统计划任务内有电视录制等,将不会暂停,而会在尽可能低的功耗下完成这些任务。
到此,读者应该明白为什么说原文将睡眠与休眠混淆。还需要各位知道的是,睡眠功能、离开模式等都需要计算机的硬件设备支持高级电源管理功能才可以使用。对于 Windows XP 用户而言,微软官方为 Windows XP 同样提供了一个补丁包,用以支持睡眠状态下的离开模式,有兴趣的朋友可以去微软的官方网站上面检索一下,恕我这里就不提供链接了。
本文转自melvillo 51CTO博客,原文链接:http://blog.51cto.com/marui/390404,如需转载请自行联系原作者