当前位置: 首页 > article >正文

【Linux】Linux系统电源状态

前言

本文主要介绍Linux系统电源状态。
Linux内核代码声明如下,位于kernel/power/suspend.c。
参考链接

Linux系统电源状态

在Linux操作系统中,将电源划分为如下几个状态:

ACPI StateLinux StateDescription
S0On(on)Working
S1Standby(standby)CPU and RAM are powered but not executed
S2--------
S3Suspend to RAM(mem)CPU is Off,RAM is powered and the running content is saved to RAM
S4Suspend to Disk(disk)All content is saved to Disk and power down
S5ShutdownShutdown the system

On

正常工作状态

Standby

Standby也属于睡眠的一种方式,属于浅睡眠。
该模式下CPU并未断电,依旧可以接收处理某些特定事件,视具体设备而定,恢复至正常工作状态的速度也比STR更快,但也更为耗电。
举个例子来说,以该方式进入睡眠时,后续通过点击键盘也能将系统唤醒;而以mem进入的睡眠为深度睡眠,只能通过中断唤醒设备唤醒系统,如电源键(此时按电源键,不会经过正常的开机流程的BIOS、BOOTLOAD等),此时按键盘是无法唤醒系统的。

STR(Suspend to RAM):

挂起到内存,俗称待机、睡眠(Sleep),进入该状态,系统的主要工作如下:

  1. 将系统当前的运行状态等数据保存在内存中,此时仍需要向RAM供电,以保证后续快速恢复至工作状态
  2. 冻结用户态的进程和内核态的任务(进入内核态的进程或内核自己的task)
  3. 关闭外围设备,如显示屏、鼠标等,中断唤醒外设不会关闭,如电源键
  4. CPU停止工作

STD(Suspend to Disk):

挂起到硬盘,俗称休眠(Hibernation)将系统当前的运行状态等数据保存到硬盘上,并自动关机。下次开机时便从硬盘上读取之前保存的数据,恢复到休眠关机之前的状态。
譬如在休眠关机时,桌面打开了一个应用,那么下一次开机启动时,该应用也处于打开状态。而正常的关机-开机流程,该应用是不会打开的。

Shutdown

Linux系统电源状态设置

在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即可。


http://www.kler.cn/a/411579.html

相关文章:

  • <项目代码>YOLOv8 航拍行人识别<目标检测>
  • 文件内容扫描工具
  • GitLab|应用部署
  • 用js实现点击抽奖
  • 深入解析分布式遗传算法及其Python实现
  • MTK主板_安卓主板方案_MTK联发科主板定制开发
  • go语言逆向-基础basic
  • Linux下一次性关闭多个同名进程
  • 数字图像处理(6):除法运算、除法器
  • 【C++知识总结1】c++第一篇,简单了解一下命名空间是什么
  • C++设计模式之组合模式中适用缓存机制提高遍历与查找速度
  • lc 146. LRU 缓存
  • 【系统架构设计师】真题论文: 论软件系统架构评估(包括解题思路和素材)
  • HDR视频技术之四:HDR 主要标准
  • 跨子网通信的具体流程
  • 【后端面试总结】MySQL索引
  • 学习日记_20241126_聚类方法(聚合聚类Agglomerative Clustering)
  • 构建与优化数据仓库-实践指南
  • ES6的第四天
  • huggingface使用
  • 【C++】读取数量不定的输入数据
  • 结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用
  • 无人机舵机转速运行原理!
  • Django 路由层
  • java——Tomcat调优策略
  • Prometheus从二进制部署迁移Docker中更新到v3.0.0版本