linux休眠机制介绍

一、概述

Linux系统提供了休眠和低功耗模式,可以帮助节省电力和延长电池寿命,休眠对应的另外一种模式就是唤醒。

二、常用的休眠方式

常用的休眠方式有freeze,standby, mem, disk,hibernate

freeze: 冻结所有的进程,包括用户空间进程及内核线程,CPU进入IDLE态

standby: 类似mem,只是standby耗电更多一些,返回到正常工作方式时间更短一些而已

mem: 将运行状态数据存到内存,并关闭外设,进入等待模式,唤醒较慢,耗电比disk方式高

disk: 将运行状态数据存到硬盘,然后关机,唤醒最慢

三、休眠机制

3.1 动态休眠---autosleep

用linux 内核自带的autosleep休眠机制,该机制主要是监测系统不存在任何active wakeup_source 时,系统会发起自动休眠,当有active wake_source时会自动block住,比起静态 休眠更加及时和灵活,由于使用基于queue work与进程block来管理suspend,所以不会消耗额外的资源。

autosleep休眠开关及持锁操作

autosleep 的开关

echo mem/off > /sys/power/autosleep

应用 添加/删除唤醒锁

echo lock (select time) > /sys/power/wake_lock

echo lock > /sys/power/wake_unlock

3.2 静态休眠---mem

可以将系统置于静态休眠(Suspend-to-RAM)模式。具体来说,它会将系统的电源状态设置为"mem",表示将系统置于静态休眠模式。可以使用以下命令将系统置于静态休眠模式。该方式缺点是:无法做到动态休眠,休眠唤醒需要状态机管理或者应用主动触发流程。

复制代码
echo mem > /sys/power/state

四、休眠唤醒流程

主要由PM CoreDevice PMPlatform D ependent PM 等几大块组成。

五、休眠流程调用栈

相关推荐
小杰帅气5 分钟前
进程优先级与切换调度
linux·运维·服务器
方便面不加香菜6 分钟前
Linux基本指令(1)
linux
济6178 分钟前
linux(第十四期)--Uboot移植(1)-- Ubuntu20.04
linux
奋斗的阿狸_19869 分钟前
键盘组合键监听与 xterm 唤醒程序
linux·运维·服务器
小张成长计划..12 分钟前
【linux】2:linux权限的概念
linux·运维·服务器
马踏岛国赏樱花14 分钟前
Windows与Ubuntu双系统,挂载D/E盘到Ubuntu下时只能读的问题
linux·windows·ubuntu
ben9518chen14 分钟前
Linux操作系统基本使用
linux·运维·服务器
一个平凡而乐于分享的小比特16 分钟前
CPU上电启动到程序运行全流程详解
linux·uboot·根文件系统·cpu上电到启动
不像程序员的程序媛22 分钟前
Linux开机自启动systemd配置
linux·运维·服务器
GREGGXU25 分钟前
Could not load the Qt platform plugin “xcb“ in ““ even though it was found.
linux·qt