2.2. 全局系统状态定义
全局系统状态(Gx 状态)适用于整个系统,并且对用户可见。
全局系统状态由六个主要标准定义:
应用软件是否运行?
从外部事件到应用程序响应的延迟是多少?
功耗是多少?
返回工作状态是否需要 OS 重新引导?
拆卸计算机是否安全?
该状态能否以电子方式进入和退出?
以下是系统状态列表:
G3 机械关机
一种通过机械方式进入和离开的计算机状态(例如,通过拨动一个大型红色开关来关闭系统电源)。通过机械方式进入这种关闭状态意味着电流不会流经电路,因此可以在不损坏硬件或不危及维修人员的情况下对其进行操作。必须重新启动 OS 才能返回工作状态。不保留任何硬件上下文。除实时时钟外,功耗为零。
G2/S5 软关机
一种计算机消耗极少量电力的状态。不运行任何用户模式或系统模式代码。返回工作状态需要较大的延迟。系统上下文不会由硬件保留。必须重新启动系统才能返回工作状态。在此状态下拆卸机器并不安全。
G1 睡眠
一种计算机消耗少量电力、用户模式线程不执行并且系统“看起来”处于关闭状态的计算机状态(从最终用户的角度看,显示器已关闭,等等)。返回工作状态的延迟取决于进入此状态之前选择的唤醒环境(例如,系统是否应该接听电话)。无需重新引导 OS 即可恢复工作,因为系统上下文的大部分元素由硬件保存,其余部分由系统软件保存。在此状态下拆卸机器并不安全。
G0 工作
一种系统调度并执行用户模式(应用程序)线程的计算机状态。在此状态下,外设设备(peripherals)的电源状态会动态变化。用户可以通过某种 UI 选择系统的各种性能/功耗特性,以使软件针对性能或电池寿命进行优化。系统实时响应外部事件。在此状态下拆卸机器并不安全。
S4 非易失性睡眠
一种特殊的全局系统状态,允许在主板断电时保存和恢复系统上下文(相对较慢)。如果系统已被命令进入 S4,OS 将把所有系统上下文写入非易失性存储介质上的文件,并留下适当的上下文标记。然后机器将进入 S4 状态。当系统离开软关机或机械关机状态、转换到工作 (G0) 并重新启动 OS 时,可以从 NVS 文件执行恢复。只有在找到有效的非易失性睡眠数据集、机器配置的某些方面未发生变化并且用户未手动中止恢复时,才会发生这种情况。如果满足所有这些条件,则作为 OS 重新启动的一部分,它将重新加载系统上下文并激活它。对于用户而言,最终效果看起来就像从睡眠 (G1) 状态恢复(尽管更慢)。机器配置中不得更改的方面包括但不限于磁盘布局和内存大小。不过,用户可能可以更换 PC Card 或 Device Bay 设备。
请注意,要使机器直接从软关机或睡眠状态转换到 S4,系统上下文必须由硬件写入非易失性存储;首先进入工作状态再由 OS 或平台运行时固件保存系统上下文,从用户角度来看耗时太长。从机械关机转换到 S4 很可能是在用户不在场时完成的。
由于 S4 状态只依赖非易失性存储,因此机器可以在任意长的一段时间内保存其系统上下文(可长达许多年)。
Table 2.1 全局电源状态汇总
| 全局系统状态 | 软件运行 | 延迟 | 功耗 | 需要 OS 重启 | 安全拆卸计算机 | 以电子方式退出状态 |
|---|---|---|---|---|---|---|
| G0 Working | 是 | 0 | 大 | 否 | 否 | 是 |
| G1 Sleeping | 否 | >0,随睡眠状态变化 | 更小 | 否 | 否 | 是 |
| G2/S5 软关机 | 否 | 长 | 非常接近 0 | 是 | 否 | 是 |
| G3 机械断电 | 否 | 长 | RTC battery | 是 | 是 | 否 |
请注意,上表中 G2/S5 和 G3 在延迟列中的条目为“长”。这意味着,为了给用户提供类似家用电器设备那样“即时开启”外观而设计的平台,将几乎只使用 G0 和 G1 状态(G3 状态可用于移动机器或维修机器)。