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