深入了解电源框架

运行 DAG

在前面的部分中,我们提到过“……应用要求电源框架准备系统……”。在这种情况下,“要求”是指应用请求租约 。租约适用于电源级别。

只有当系统中有有效租约时,高于“OFF”级别的电源级别才会处于活跃状态。如果没有有效租约,所有电源元素都将处于最低级别。

让我们考虑一下协调部分示例中的 DAG,并假设 我们有电源仅具有两个电源级别的元素,为了简化 ,我们在此处不显示级别。

电源元素 DAG

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

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

电源元素 DAG 断电顺序

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

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

电源元素 DAG 上电顺序