电源管理策略¶
- 版权:
© 2017 英特尔公司
- 作者:
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Linux 内核支持两种主要的、高层级的电源管理策略。
其中一种策略是基于使用整个系统的全局低功耗状态,在这种状态下,用户空间代码无法执行,并且系统整体活动显著减少,这被称为睡眠状态。当用户空间请求时,内核会将系统置于其中一种状态,系统会保持在该状态,直到从指定设备之一接收到特殊信号,触发系统转换为工作状态
,用户空间代码可以在此状态下运行。由于睡眠状态是全局的,并且整个系统都会受到状态变化的影响,因此这种策略被称为系统级电源管理。
另一种策略被称为工作状态电源管理,它基于在工作状态下根据需要调整系统单个硬件组件的电源状态。因此,如果采用此策略,系统的工作状态通常不对应任何特定的物理配置,而可以被视为一个元状态(metastate),涵盖了系统一系列不同的电源状态,其中其各个组件可以是活动
(正在使用)或非活动
(空闲)。如果它们是活动的,它们必须处于允许其处理数据并被软件访问的电源状态。反之,如果它们是非活动的,理想情况下,它们应该处于可能无法访问的低功耗状态。
如果所有系统组件都处于活动状态,则整个系统被视为“运行时活动”,这种情况通常对应其最大功耗(或最大能耗)。如果所有组件都处于非活动状态,则整个系统被视为“运行时空闲”,这从物理系统配置和功耗角度来看可能非常接近睡眠状态,但与处于睡眠状态的同一系统相比,启动执行用户空间代码所需的时间和精力要少得多。然而,从睡眠状态转换回工作状态只能由有限的设备集启动,因此通常系统在睡眠状态下停留的时间比一次性处于运行时空闲状态的时间要长得多。因此,系统在睡眠状态下通常比大部分时间处于运行时空闲状态时使用的能量更少。
此外,这两种电源管理策略适用于不同的使用场景。具体来说,如果用户表示系统将不再使用,例如通过合上笔记本电脑的盖子(如果系统是笔记本电脑),那么此时系统很可能应该进入睡眠状态。另一方面,如果用户只是离开笔记本电脑键盘,系统可能应该保持在工作状态,并在空闲时使用工作状态电源管理,因为用户可能随时返回并希望系统立即可用。