windows睡眠(休眠)唤醒助手_Windows快速启动背后的功臣:休眠

2ddac4c3a8717ecd869c41dc3f6b86a6.png

在PC的世界里,微软还是这里的君主,这个总部坐落在美国北方西雅图的北境统治者感受到越来越强的寒意。Winter is coming,Linux的不死士兵们不断是从各个角落钻出来,撬动着微软王座的基石:Windows操作系统。微软不得不加紧修修补补,改善Windows的用户体验。毕竟他的臣民们如果都叛逃了,他的皇位也会不保。

普通用户感受最大的除了界面的变化之外,一个直观的感受是启动速度快了很多,这和微软在windows 8提出的快速启动(Fast Startup,注意和Android的Fast Boot区别)是分不开的。微软当时统计,启动速度提高了30%到70%:

b79b137c60b1dce1e7ba177b699f767a.png

(图片来源 MSDN)

正因为这样的突出表现,Windows8虽然被广泛诟病,快速启动却被保留了下来并在Windows10中继续发挥重要作用。

快速启动能够如此强大,和它背后的功臣:休眠功能(hibernate)是分不开的。

休眠hibernate

Hibernation一般指冬眠,冬眠的动物里最有名的就是熊,而微软在美国科技界的外号就是北极熊,无怪乎休眠被起名Hibernation。

821e88af9b3a1ef4a7c78b708f11e19c.png

我们专栏在前面一期介绍过睡眠(Sleep, 一起学习电脑如何睡眠S3)。我们来回忆一下:

ACPI提供了一种机制使系统在Working状态(G0)和Sleeping状态(G1)以及soft-off (G2)状态之间转换。

G1 Sleeping状态下系统耗电较少,没有程序在执行,如果有任何唤醒事件传入系统会使系统快速恢复至G0工作状态。Sleeping状态分为四种:

S0:正常工作状态,所有设备正常运转。

S1:Sleeping with Processor Context Maintained, CPU停止工作,不执行任何指令,但是CPU,芯片组以及DRAM内容没有遗失。此状态可以快速恢复到工作状态。

S2:比S1的睡眠状态更深更省电,CPU停止工作,但是CPU和cache的内容已丢失。DRAM仍处于带电状态。

S3:又叫Suspend to RAM,功耗更低,内存信息得以保持,CPU, Cache, Chipset的内容均丢失。DRAM仍处于带电状态。

S4:又叫Suspend to Disk,hibernate。功耗最低,唤醒需要的时间最长,所有设备都不再工作。Memory的资料被保存在Disk中。当系统收到唤醒信号后,首先从Disk中恢复memory。

这里的休眠就是指S4 (hibernate)。作为一个UEFI专栏,这里要指出UEFI固件对于S4不需要做任何特殊处理,memory被保存到disk,S4回来后从Disk恢复的动作全部由操作系统完成,UEFI可以将其作为一般启动即可。这和S3有很大不同。

快速启动Fast Startup

休眠在windows操作系统中存在已经有很长时间了,微软只是在win8开始为它找到了新的使用场景。微软的工程师一直致力提高启动速度,因为他们发现57%的PC用户和45%的笔记本用户还是每天关闭电脑(2011年数据,见参考文献[1]):

23781e07393ba3b7ba6cc4640c92dcac.png
8a10561219f793d64cc39e7713d02323.png

(图片来源:MSDN)

而Hibernate却使用率不高。微软的工程师发现: Windows启动到登陆界面要进行的步骤每次完全一样,只有在登陆后运行程序不同。他们产生了一个大胆的想法,为什么不把登陆完成之前的内容借助Hibernate存储下来,而每次启动都从这个点再继续呢?想法不错,经过实验,他们找到了合适的存储点,结果启动速度大为提高。我们通过下图可以形象的看出两者的差别:

80905c76bc4ade5f3e5b2959bfcfd913.png

(图片来源:MSDN)

Cold boot是指原本的冷启动,下面是快速启动。

干得好,程序员们!

结论

原理说完了,下面说一下它的相关问题:

1. 怎么开启Fast Startup

在大多数情况下,快速启动都是缺省开启的。如果你的没有开启,打开快速启动也很简单,照着下面图片做就好了:

3f8905867d3f3a8bd8a5a317dc09c062.png
49b7869dcf8b0af5546cc6c67016d145.png
f2bbab4b76a50424fe0f1481895d9214.png
350f66a70071ea5e143ac6de72f578e5.png

如果你在电源管理界面里面没有看到开启快速启动的选项框,如下:

5103fe1f4f33c50c70f2b704a3b65144.png

那可能是你的休眠模式没有打开。用管理员模式开启命令行窗口,输入powercfg /hibernate on

fc46c9203ea5cddd13604953ca5e2c3a.png

2. 怎么启动个干净的系统

有些用户担忧,每次都是休眠启动,如果系统出问题,我想要个一干二净的登陆环境怎么办? 办法由两个:

A. 关机不要直接用关机选项,而是开启命令行窗口,输入 shutdown /s /full / t 0。

B. 不要关机,而是选择重启。重启不会用快速启动。

3. 如何缩小休眠文件 hiberfil.sys

休眠文件hiberfil.sys随着你的内存大小而设定,通常是你安装内存的75%大小。土豪用户引以为傲的大内存带来了大休眠文件,对寸土寸金的SSD来说就肉痛了。如果你仅仅想用快速启动而对休眠不感兴趣的话,用下面这个命令

powercfg /h /type reduced

可以节省大约一半的空间。

f423546df1982eba56e752e8dc256743.png

请确保在管理员权限下。

4. 快速启动的缺点

对双启动或者多启动来说,Windows会锁住启动分区,你有可能不能顺利进入其他操作系统,尤其Linux系统。如果你通过手动进入的话,对Windows分区进行操作可能会导致再次返回该Windows时发生蓝屏。建议Dual OS的用户慎用快速启动。

其他

这里乱入一个知识点。微软不但把休眠用到了开机上,还创造出了一个叫做混合睡眠的概念。这是因为微软发现关闭电脑,尤其是笔记本的人越来越少。经过平板浪潮的洗礼,大部分人开始习惯把笔记本一合就完事了。而合上笔记本的动作在很多情况下(可以在Windows里面设置)都是进入睡眠S3。而S3有个问题是它还在消耗着电力,尽管比较少。这就带来一个严重的问题,如果在S3情况下电力消耗殆尽,那么未存储的东西不就丢失了吗?过去这种情况都由UEFI固件偷偷处理,它会在电力下降到一个阈值后偷偷开机,帮你把S3转换到S4。

出问题的是很多小品牌的笔记本厂商,他们固件基础薄弱,这个功能问题很多。而随着不关机人群的扩展,出问题的机会越来越大。于是微软发明了个混合睡眠模式,即:

1. 合上盖子的时候进入混合睡眠模式,即虽然要进入S3,但也把S4需要的内容存储下来了。

2. 如果在电源消耗完之前从S3回来,例如开启盖子等。就按照S3启动路径。

3. 如果电源消耗结束后再回来,就按照S4的路径启动。

这样相当于为S3加上了S4的双保险,保证文件不会丢失。

你可以通过powercfg看一下你开启混合启动了吗:

4f05cbd9d5a130cf51b36a3145ab5a23.png

参考文献:

[1]. https://blogs.msdn.microsoft.com/b8/2011/09/08/delivering-fast-boot-times-in-windows-8/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值