什么是suspend?做什么?
简单来说就是让设备暂停,进入休眠的过程。在不需要设备工作时,让其进入休眠可以节省功耗。
如何进入让设备进入suspend?
(1)用户空间向内核写入相应的电源状态进入suspend。
(2)当用户按下power key的时候,通过进入PhoneWindowManager策略类的相关方法(interceptPowerKeyUp、interceptPowerKeyDown等)实现suspend。
(3)自动息屏,简单的理解就是用户长时间内没有跟设备进行交互,达到用户设置的息屏时间时,就设置mUserActivitySummary 为USER_ACTIVITY_SCREEN_DIM,再设置成USER_ACTIVITY_SCREEN_DREAM,最后设置成0。mUserActivitySummary为0时就会触发updatePowerStateLocked里的休眠流程了。
四种电源状态:
系统休眠也有深有浅,其中睡的越深功耗越低,相应的唤醒延迟越大,睡的越浅功耗越高,而其唤醒延迟也越小。根据睡眠状态由浅到深,Linux当前一共支持freeze、standby、mem和disk四种休眠方式,其特点如下:
(1)freeze(suspend to idle):这种方式会冻结系统中的进程,挂起所有需要挂起的设备(如I/O设备),然后将cpu切换为idle进程,使其进入idle状态。它不会将cpu从内核中移除,因此一旦被唤醒只需从idle状态退出,恢复挂起的设备和被冻结的进程即可。

(2)standby(suspend to standby):这种方式除了执行所有freeze相关的流程外,还会将辅助cpu从内核中移除,然后主cpu进入standby睡眠模式。standby模式睡眠较浅,不会对cpu断电,因此在睡眠时不需要保存cpu上下文。当其一旦被唤醒,cpu就能马上投入工作,并依次恢复系统运行。

(3)mem(suspend to mem):相对于standby方式,这种方式下主cpu需要先将cpu上下文保存到内存中,然后将自身断电。因此它不能直接被唤醒,而是需要先通过其它模块为其上电,然后再执行恢复cpu上下文以及其它模块的工作。由于这种方式,内核整个都已经睡眠,因此也不会有访问ddr的需求。

(4)disk(suspend to disk或hibernate):这是最深的一种睡眠模式,与suspend to mem将系统相关上下文保存到ddr中不同,它将系统上下文保存到磁盘中。由于所有上下文都已经保存到磁盘中,因此不仅外设、cpu可以下电,而且此时ddr也可以被断电。

suspend电源状态简述相关推荐

  1. Android7.0 PowerManagerService 之亮灭屏(二) PMS 电源状态管理updatePowerStateLocked()...

    本篇注意接着上篇[Android7.0 PowerManagerService 之亮灭屏(一)]继续分析量灭屏的流程,这篇主要分析PMS的状态计算和更新流程,也是PMS中最为重要和复杂的一部分电源状态 ...

  2. 车载系统的电源状态及迁移

    车载系统的电源状态及迁移 在车载系统开发过程中,无论是软件开发还是硬件开发,都会涉及到"电源状态迁移",这个是一个最基础的知识,但是往往在实际工作中,即使有过几年车载开发经验的人, ...

  3. 6010.Cacti监控CMTS思科uBR7246路由器风扇和电源状态

    6010.Cacti监控CMTS思科uBR7246路由器风扇和电源状态 要监测的CMTS思科uBR7246路由器有2个电源模块和5个风扇模块, 如果监测到的数值是1则表示运行状态正常,数值和运行状态对 ...

  4. CPU 电源状态( C-States )

    CPU 电源状态( C-States ) 一般用户很少注意到这个状态,通常只会在使用 CPU-Z 来监控时钟频率和电压时才会留意到它.移动处理器的 C 状态比台式机的多.例如, Core 2 Duo  ...

  5. 中兴网络设备查看电源状态检查命令

    描述:中兴网络设备查看风扇状态电源状态检查命令 命令: show power

  6. 思科6900交换机查看电源状态

    要查看思科6900交换机电源的状态,您可以使用以下步骤: 首先,登录到交换机的控制台或使用Telnet或SSH连接到交换机. 输入用户名和密码以获得管理员权限. 进入交换机的特权EXEC模式,输入en ...

  7. C# 监控笔记本/平板的充电/电源状态

    在平板/笔记本中,我们经常要基于主机是否在充电来做一些事情.比如当主机在充电时,需要通知外接键盘,键盘可以亮背景灯了:如果主机没充电,也要立即通知键盘,要键盘关闭背景等. 我们可以通过 Managem ...

  8. 整车电源状态 K15 KL30 KL31

    KL is the abbreviation for 'klemme' which is the German term for connector / connection. KL是" k ...

  9. CPU电源状态(C-States )

    一般用户很少注意到这个状态,通常只会在使用CPU-Z来监控时钟频率和电压时才会留意到它.移动处理器的C状态比台式机的多.例如,Core 2 Duo处理器(Meron)会支持C0-C4状态,然后桌面型C ...

最新文章

  1. 安装Vertica数据库
  2. 【深度学习】Transformer在语义分割上的应用探索
  3. 《iOS 9应用开发入门经典(第7版)》——第1章,第1.6节小结
  4. iOS11最新隐私信息访问列表
  5. solid测序列原理_SOLID原理简介
  6. PyQt5教程(三)——布局管理
  7. 使用Linux自定义自动补全命令完善自己的shell脚本
  8. Flex Module优化
  9. 学习时有必要做思维导图吗?
  10. python的100道数学题_python经典例题100道
  11. Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
  12. 元器件_封装库_命名规范
  13. 从零搭建hyperf docker镜像
  14. 抵押贷款服务市场现状及未来发展趋势
  15. 反序列化漏洞-JAVA
  16. 一个优秀IT专家的成长历程-献给所有的颓废或即将颓废的人们
  17. 海量数据相关面试问题(二):海量数据热点数据/出现频度/TOP-K问题(TOP-K 分而治之/Hash映射 / Hashmap统计频度 / 堆排序决出排名)
  18. Unity-VolumeLighting组件(体积雾/光效果)使用小记
  19. 请移驾ray7hu.com
  20. Linux常用的文件目录管理命令有哪些,Linux文件和目录管理常用重要命令(二)...

热门文章

  1. QQ超市最优路径寻路研究
  2. Serverlet的生命周期
  3. (二)1月21日直播视频
  4. 学习日记:2022年1月21日(快排)
  5. 区块链追溯系统迎来新突破
  6. uniapp使用 Ucharts2.0绘制图形
  7. Python静态方法
  8. Python随机数、随机序列生成
  9. 苏州工业园区公积金管理中心Shareplex软件招标要求
  10. http://www.xxx.com/ skipped. Content of size 67099 was truncated to 59363