本文档面向想要开始使用 Power Framework 但之前几乎或根本没有接触过该框架的用户。它可能适合曾接触过 Power Framework 的用户作为参考。
功耗框架的目标
为什么要制定电源框架?目的是节省电量。为实现此目标,电源框架提供了与电源相关的协调和调试机制。协调是指 Fuchsia 中组件用于有序执行操作的机制,以便它们能够正确(即高效)运行系统。可调试性是指能够了解系统在电源方面的状态、系统随时间的变化方式以及导致状态变化的原因。
功耗框架的目标不是通过某种巧妙的调度或资源管理机制来节省电量。而是会按照指示管理资源,并为系统开发者提供了解和优化功耗所需的工具。
协调
在系统中完成某些工作需要有特定资源可用。这些资源应该会在工作完成之前保持可用状态。Power 框架提供了一个标准化的协调机制来管理资源。
例如,假设有一个程序想要下载文件。假设该程序需要两个条件才能下载文件:CPU 和网络协议栈。而网络协议栈又需要 CPU 和网络驱动程序。
如果应用、网络堆栈、CPU 管理器和网络驱动程序与功耗框架集成,则功耗框架可以协调告知资源所有者何时应或不应使用资源。在我们的示例中,这意味着应用可以请求系统下载内容。然后,电源框架会按照适当的顺序向资源所有者发送消息以准备系统,向各种电源元素的所有者发送消息(先是 CPU,然后是网络驱动程序,再是网络协议堆栈)以进行准备,最后向应用发送系统已准备就绪的消息。下载完成后,应用可以撤消其要求系统下载内容的请求,而电源框架将协调关闭未使用的资源。
可调试性
作为系统状态更改的协调者,电源框架包含大量有关系统状态的信息。它可提供以下信息:系统指示资源处于什么状态,以及资源所有者通过“检查”等功能报告的资源状态。然后,我们可以构建工具来分析这笔宝藏,了解系统并改进其功能。