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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值