S3待机 S4休眠
https://hceng.cn/2018/01/18/Linux%E7%94%B5%E6%BA%90%E7%AE%A1%E7%90%86/
1.1系统睡眠模型Suspend
On (on) S0 - Working
Standby (standby) S1 - CPU and RAM are powered but not executed
Suspend to RAM (mem) S3 - RAM is powered and the running content is saved to RAM
Suspend to Disk, Hibernation (disk) S4 - All content is saved to Disk and power down
S3 aka STR(suspend to ram),挂起到内存,简称待机。计算机将目前的运行状态等数据存放在内存,关闭硬盘、外设等设备,进入等待状态。此时内存仍然需要电力维持其数据,但整机耗电很少。恢复时计算机从内存读出数据,回到挂起前的状态,恢复速度较快。对DDR的耗电情况进行优化是S3性能的关键,大多数手持设备都是用S3待机。
S4 aka STD(suspend to disk),挂起到硬盘,简称休眠。把运行状态等数据存放在硬盘上某个文件或者某个特定的区域,关闭硬盘、外设等设备,进入关机状态。此时计算机完全关闭,不耗电。恢复时计算机从休眠文件/分区中读出数据,回到休眠前的状态,恢复速度较慢。
系统休眠模型给我的感觉是以整机角度进行省电。
S3类似电脑的睡眠,在教长时间不使用电脑后,电脑黑屏,再次敲击键盘迅速显示桌面,原来的工作内容仍不变。
S4类似电脑的休眠,在长时间不使用电脑后,电脑黑屏,再次敲击键盘无反应,按下电源键,开机,原来的工作内容仍不变。
对于嵌入式设备,更多的是使用S3,将数据暂时放在内存里,以实现快速恢复,就像手机的电源键按下黑屏,再次按下迅速亮屏。
在Linux中,通过cat /sys/power/state
可以得知当前设备支持的节能模式,一般情况有如下选项:
- freeze:不涉及具体的Hardware或Driver,只是冻结所有的进程,包括用户空间进程及内核线程,能节省的能量较少,使用场景不多;
- standby:前面的S1状态,CPU处于浅睡眠模式,主要针对CPU功耗;
- mem:前面的S3状态,Suspend to RAM;
- disk:前面的S4状态,Suspend to Disk;
需要设置以上模式,只需echo mem > /sys/power/state
即可。
系统睡眠状态
在这篇文章中,我们将在Windows中看到不同的系统睡眠状态。 MSDN很好地解释了这一点。
系统电源状态S0 - 这是工作状态,Windows PC处于唤醒状态。这不是睡眠状态。
系统电源状态S1 - 在此睡眠状态下,CPU停止并且您的计算机处于待机模式。如果支持下一个S3状态,则此S2是大多数硬件上的默认状态。处理器时钟关闭,总线时钟停止。在这种状态下,功耗可以在5-30瓦之间。
系统电源状态S2 - 此状态与S1类似,不同之处在于CPU上下文和系统缓存的内容因处理器断电而丢失。
系统电源状态S3 - 在此状态下,数据或上下文将保存到RAM,并且硬盘驱动器,风扇等将关闭。功耗通常小于5瓦。 Windows 10/8中的S3(睡眠)或S4(休眠)状态支持LAN唤醒。
系统电源状态S4 - 在此状态下,数据或上下文将保存到磁盘。它也被称为 过冬 状态,对笔记本电脑很有用。您的PC将RAM的内容保存到硬盘。硬件关闭所有设备。但是,操作系统上下文保存在系统在进入S4状态之前写入磁盘的休眠文件中。重启后,加载程序读取此文件并跳转到系统之前的休眠前位置。功耗再次低于5瓦。
ACPI简介
要理解第一个问题,得先从ACPI(高级配置与电源接口)说起,ACPI是一种规范(包含软件与硬件),用来供操作系统应用程序管理所有电源接口。
ACPI将计算机系统的状态划分为四个全局状态(G0-G3),共7个状态,其中G0对应S0;G1将低功耗状态细分为四个状态,对应S1-S4;G2、G3代表关机状态分别对应S5、S6。
ACPI State | Description |
---|---|
S0 | 正常工作状态 |
S1 | CPU与RAM供电正常,但CPU不执行指令 |
S2 | 比S1更深的一个睡眠层次,这种模式通常不采用 |
S3 | 挂起到内存 |
S4 | 挂起到硬盘 |
S5 | Soft Off,CPU、外设等断电,但电源依旧会为部分极低耗设备供电 |
S6 | Mechanical Off,全部断电 |
这里只需要对ACPI的七个状态有个大致了解即可,下一节会有具体的例子来说明各个状态。
Linux系统电源状态
在Linux操作系统中,将电源划分为如下几个状态:
ACPI State | Linux State | Description |
---|---|---|
S0 | On(on) | Working |
S1 | Standby(standby) | CPU and RAM are powered but not executed |
S2 | ------ | ------ |
S3 | Suspend to RAM(mem) | CPU is Off,RAM is powered and the running content is saved to RAM |
S4 | Suspend to Disk(disk) | All content is saved to Disk and power down |
S5 | Shutdown | Shutdown the system |
On:正常工作状态
STR(Suspend to RAM):
挂起到内存,俗称待机、睡眠(Sleep),进入该状态,系统的主要工作如下:
1、将系统当前的运行状态等数据保存在内存中,此时仍需要向RAM供电,以保证后续快速恢复至工作状态
2、冻结用户态的进程和内核态的任务(进入内核态的进程或内核自己的task)
3、关闭外围设备,如显示屏、鼠标等,中断唤醒外设不会关闭,如电源键
4、CPU停止工作
Standby也属于睡眠的一种方式,属于浅睡眠。该模式下CPU并未断电,依旧可以接收处理某些特定事件,视具体设备而定,恢复至正常工作状态的速度也比STR更快,但也更为耗电。举个例子来说,以该方式进入睡眠时,后续通过点击键盘也能将系统唤醒。而以mem进入的睡眠为深度睡眠,只能通过中断唤醒设备唤醒系统,如电源键(此时按电源键,不会经过正常的开机流程的BIOS、BOOTLOAD等),此时按键盘是无法唤醒系统的。
STD(Suspend to Disk):
挂起到硬盘,俗称休眠(Hibernation)将系统当前的运行状态等数据保存到硬盘上,并自动关机。下次开机时便从硬盘上读取之前保存的数据,恢复到休眠关机之前的状态。
譬如在休眠关机时,桌面打开了一个应用,那么下一次开机启动时,该应用也处于打开状态。而正常的关机-开机流程,该应用是不会打开的。
Linux内核代码声明如下,位于kernel/power/suspend.c
S3待机 S4休眠的更多相关文章
- Wake-On-LAN待机或休眠模式中唤醒
Wake-On-LAN简称WOL,是一种电源管理功能:如果存在网络活动,则允许设备将操作系统从待机或休眠模式中唤醒.许多主板厂商支持IBM提出的网络唤醒标准.该标准允许网络管理员远程打开PC机电源,以 ...
- 杭电1597--find the nth digit--假设:S1 = 1,S1=12,S3=123,S4=1234...
我是把它分层来求的,也就是说第一层是1,第二层是12,第三层是123......你们该懂的!! #include <iostream>#include <cmath>using ...
- ACPI电源管理中的S0 S1 S2 S3 S4 S5
电源选项中S0,S1,S2,S3,S4,S5的含义以 ACPI 的规格来说吧!ACPI(Advanced Configuration and Power Interface),即高级配置与电源接口.这 ...
- Android电源管理-休眠简要分析
一.开篇 1.Linux 描述的电源状态 - On(on) S0 - Working - Standb ...
- win10电脑休眠后无法唤醒的解决办法
电脑的休眠功能,为长时间不用的电脑进行了关闭显示.硬盘停转的深度节能模式,不仅节约能源,还保护设备. 但有些时候也会出现一些问题,如休眠后无法唤醒,无法移动鼠标,敲击键盘都无效,最后只能长按电源键来强 ...
- windows -休眠
查询服务器执行的睡眠状态 powercfg -a 开始休眠方法:手工键入如下命令: powercfg -hibernate on 命令执行之后立即就可以生效,无需要重新启动系统,再次执行“powerc ...
- Linux 关机 休眠, 关闭移动设备自动挂载 命令
"+++++++++++++++++++++++++ Linux 关机.休眠命令 +++++++++++++++++++++++++++++++++++++++"indows7关机 ...
- win7休眠的开启与关闭方法命令行操作和图文结合的鼠标操作
win7休眠的开启与关闭方法 从開始菜单中找到"附件→命令提示符",手工输入例如以下命令:powercfg -a.从这里能够清楚的看到,计算机是支持休眠的.显示"尚未启用 ...
- CPU工作状态的知识介绍
转自:http://www.bbwxbbs.com/forum.php?mod=viewthread&tid=2552 近几年,个人计算机的运行速度有了质的飞跃,但是功耗却没能与时俱进,着 ...
随机推荐
- ls(list)命令详解及生产使用示例
文件有文件名与数据,在linux上被分为两个部分:用户数据(user data)与元数据(metadata) 用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方,我们将其称 ...
- 201871030116-李小龙 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...
- Dynamics CRM报表点击自动运行方法
当我们点击了报表后一般会进入到条件筛选界面,再点击运行报表才可以直接运行报表.有一个方法可以点击报表后直接运行报表. 文本编辑器打开报表的rdl文件 找到如下位置的代码: 把Value部分改为: &l ...
- 【2.0 递归 Recursion 01】
[介绍] Java的一个方法可以调用它自己,Java和所有编程语言都可以支持这种情况,我们把它叫做递归Recursion 递归方法是一种调用自身的方法 那么使用递归方法是是怎么样的呢,让我们看看下面这 ...
- 期末考试复习c#时总结的抽象类与接口的一些区别
抽象类: (1)抽象类中可以定义抽象方法,属性,变量 (2)抽象类的派生类必须实现所有的抽象方法.要求所有的派生非抽象类都要用override重写实现抽象方法. (3)抽象类可以存放抽象方法,属性,也 ...
- dubbo的spi思想是什么?
spi,简单来说,就是service provider interface,说白了是什么意思呢,比如你有个接口,现在这个接口有3个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要s ...
- IDEA 配置文件位置
1 IDEA 2020.1 以上 1.1 Win 语法: %APPDATA%\JetBrains\<product><version> Win上的APPDATA默认位置如下: ...
- JDBC_05_ResorceBundle(资源绑定器) 绑定配置文件
ResorceBundle(资源绑定器) 绑定配置文件 jdbc.proprtise 需要在src目录下新建一个文件夹然后将jdbc.proprtise放在文件中然后右键该文件夹选择 Rebuild ...
- Day06_32_Java各种内部类
内部类 内部类都有哪些? 成员内部类 匿名内部类 静态内部类 局部内部类 成员内部类 - 成员内部类内部不能有静态声明(静态方法和静态变量) - 成员内部类可以访问外部类中所有的数据包括静态数据和实例 ...
- 请求转发(forward)和请求包含(include)的区别?
请求包含的例子 第一个Servlet (DispatcherServlet) @Override protected void doGet(HttpServletRequest req, HttpSe ...