深入理解Linux系统的电源管理与进程线程模型
1. Linux电源管理
Linux具备强大且复杂的电源管理功能,主要包含以下四个关键部分:
- CPU频率调整(CPU - freq) :通过改变每个处理器核心的运行性能点(OPP),在处理器忙碌但有一定带宽余量时降低功耗,从而有机会降低频率。在ACPI规范中,OPP被称为P - 状态。
- CPU空闲管理(CPU - Idle) :当CPU在一段时间内预计不会被唤醒时,选择更深层次的空闲状态。在ACPI规范中,空闲状态被称为C - 状态。
- 运行时电源管理 :关闭不需要的外设,以节省系统功耗。
- 系统睡眠模式 :将整个系统置于低功耗状态,通常由最终用户控制,例如按下待机按钮。在ACPI规范中,系统睡眠状态被称为S - 状态。
2. CPUIdle驱动
CPUIdle与CPUFreq子系统类似,由属于板级支持包(BSP)一部分的驱动程序和确定策略的调节器组成。不同的是,调节器在运行时无法更改,并且没有用户空间调节器的接口。
CPUIdle在 /sys/devices/system/cpu/cpu0/cpuidle
目录下公开每个空闲状态的信息,每个睡眠状态都有一个子目录,命名为 state0
到 stateN
。 state0
是最轻的睡眠状态, stateN
是最深