1.2. 电源管理原理依据
为了实现上述主要目标,有必要将电源管理移入 OS,并在 OS 与硬件之间使用抽象接口(ACPI)。由于 ACPI 是抽象的,OS 可以独立于硬件演进,同样,硬件也可以独立于 OS 演进。
ACPI 天生在操作系统和处理器之间具有更好的可移植性。ACPI 控制方法允许对特定功能进行非常灵活的实现。
较旧电源管理方法存在的问题包括以下几点:
对电源管理的支持过于有限,这阻碍了应用程序供应商对其进行支持或利用。
将电源管理功能移入 OS,可使其在安装了该 OS 的每台机器上都可用。功能级别(节电效果等)会因机器而异,但在所有 OSPM 机器上,用户和应用程序看到的电源接口和语义是相同的。
这将使应用程序供应商能够投入资源,为其产品增加电源管理功能。
传统电源管理算法受限于实现它们的平台固件所能获得的信息。这限制了可实现的功能。
- 将来自用户、应用程序和硬件的电源管理信息与指令集中到 OS 中,可以实现更强大的功能。例如,OS 可以制定一种策略,将 I/O 操作划分为普通和延迟两类。延迟 I/O 操作(例如文字处理程序在后台保存文件)会被聚集成批,并且仅在所需 I/O 设备因其他原因而上电时才执行。当所需设备处于断电状态时发出的非延迟 I/O 请求,会导致该设备立即上电,执行该非延迟 I/O 请求,并完成任何待处理的延迟 I/O 操作。这样的策略要求知道 I/O 设备何时上电,知道哪些应用程序 I/O 请求属于延迟类型,并且能够保证这类延迟 I/O 操作不会被无限期搁置。
设备型功能(例如电话答录机)要求全局一致的电源决策。例如,电话答录应用程序可以调用 OS 并声明:“我正在等待来电;系统进入的任何睡眠状态都必须允许我在 1 秒内被唤醒并接听电话。” 然后,当用户按下“关闭”按钮时,系统将选择与电话答录服务需求一致的最深睡眠状态。
为了处理电源管理,平台固件已经变得非常复杂。它难以与 OS 协同工作,并且受限于硬件的静态配置。
平台固件需要保留和管理的状态信息要少得多(因为这些状态由 OS 管理)。
电源管理算法在 OS 中得到统一,从而实现 OS 与硬件之间更好的集成。
由于可以加载附加的 ACPI 表(定义块),例如在移动系统停靠时,OS 可以处理动态的机器配置。
由于平台固件的功能更少且更简单,因此实现和支持都更加容易(因而成本也更低)。