深入了解电源框架

运行 DAG

在前面的部分中,我们提到了“...应用请求电源框架准备系统...”等内容。在此上下文中,“请求”是指应用请求租赁。租约适用于电源级别。

只有当系统中有有效的租约时,高于“关闭”级别的电源级别才会处于有效状态。如果没有有效的租约,则所有电源元素均处于最低电源级别。

我们来看看协调部分示例中的 DAG,假设我们有只有两个功率等级的功率元素,为简化起见,我们在此不显示这些等级。

电源元素 DAG

在这里,我们可以将箭头方向解读为“应用需要 CPU”。

如果应用要求电源框架准备系统以进行下载,则电源框架会从应用开始遍历 DAG,并确定创建有效系统状态的顺序。

电源元件 DAG 关机顺序

电源框架会检查系统资源,以确定它们是否处于正确状态,并在状态不正确时指示它们进行更改。在这种情况下,它会按顺序与 CPU、网络驱动程序和网络堆栈的资源所有者进行通信,最后在一切就绪时与应用进行通信。电源框架会等待每个依赖项报告其准备就绪,然后再请求其依赖项更改其状态。

应用收到文件内容后,可以告知电源框架,它不再需要系统准备好下载文件。然后,电源框架会再次遍历 DAG,告知资源可以关闭电源。

电源元件 DAG 启动顺序