Table of Contents
现代工程设备——从便携式医疗监视器到工业IOT传感器——需求操作系统,它们比管理任务更能发挥作用;它们必须小心地配给每毫瓦。 随着硬件的收缩和性能预期值的提高,OS已经成为能源消耗的中心仲裁者。设计一个在不损害响应性或可靠性的情况下将功率抽取降到最低的OS是一个复杂但必不可少的学科。 本条研究了定义工程应用节能OS设计的核心原则、技术和新兴战略。
操作系统在能源效率中的作用
操作系统管弦式硬件资源,其决定直接影响动力使用。 与应用级优化不同,OS具有全系统的能见度:它控制CPU频率、闲置状态、内存分配和外围活动。 设计良好的能知性OS可以比天真执行减少30-50%的系统总功率,特别是在工作量可变的设备中。 对于必须运行多年的单个电池或从环境中收获能量的工程设备来说,这种差异至关重要。
OS还必须从应用程序开发者中抽象出电源管理. 内核不但没有强制每个程序管理硬件睡眠状态,而是提供适应实时条件的政策机制(governors, power caping, 设备运行时间PM). 这种政策与机制的分离使得系统集成者可以在不重写软件的情况下调谐能量行为.
能源-有效操作技术设计核心技术
动态电压和频率放大(DVFS)
DVFS 仍然是OS级电力管理的基石。 通过调整处理器的电压和时钟频率以适应工作量需求,OS 交易最高性能以节省能量。现代DVFS 州长 — — 如 Linux 、 保守 和 [] —— 使用CPU 利用率指标来选择最佳操作点。 电压和电量之间的四极关系意味着,即使频率降低幅度不大,也会产生显著的能量收益。 例如,运行一个频率为80%而不是100%的芯能减少近36%的功率,而仅略微提高节能。
然而, DVFS 的有效性取决于工作量颗粒性。 短时间的计算可能不会从过渡管理导致的频率变化中获益。 OS 必须预测未来的需求或微秒内的反应。 最近使用硬件性能计数器和任务特定历史的工作提高了 DVFS 的准确性。 有关执行权衡的更多细节, 请参见 [[ [FLT: 0]]] Linux CPU 频率放大文档 [[FLT: 1]。
高级睡眠状态和离子管理
当处理器没有准备的任务时,OS应该向低功率闲置状态过渡. 现代CPU提供多个睡眠状态(C-states),其醒悟晚期和节电功能不同. OS闲置州长根据预计闲置时间选择最深的适当状态. 对于最长时间等待传感器输入或网络包的工程设备,有效的闲置管理主导了节能.
在CPU之外,OS必须管理系统对芯片(SoC)组件:内存控制器,互联,外围设备可以各自进入自更新状态或动力加固状态. 运行时电管理[的概念允许内核在单个设备未被使用时暂停使用,即使主CPU仍然在运行. 这种精细的加固控制对于具有许多外围设备,例如嵌入式控制器的Wi-Fi,蓝牙,以及多个传感器来说,都是不可或缺的. 协调这些状态而不突破实时保证是一个持续的挑战.
优化能源的任务时间安排
传统的调度算法优先排序为公平或吞吐量. 能量感知调度器将功率加成调度目标. 技术包括:
- race-to-idle: 尽快完成工作,然后进入深睡。这对睡眠能量很低的爆破工作量很有效。
- 节能频率选择:调度器选择符合实时任务最后期限限制的最低频率.
- 组合迁移: 在多种结构(如ARM big.LITTLE)上,OS将线程迁移到低功耗的高效核心上,重载的大型核心上.
能量感知调度还必须考虑到核心和内存访问模式之间的热耦合。 例如, 将任务移到一个与缓存结构中的数据更接近的核心会降低内存的功率。 Linux 能量感知调度文档[[[FLT: ] 提供了对这些政策在实践中如何执行的深入考察。
内存和I/O 电力管理
内存(DRAM)消耗了显著的能量,特别是在主动访问时. OS可以通过:
- 银行-意识分配:[ 分散在存储库的存取,以避免银行冲突,允许银行在低功率模式中停留更长的时间.
- 页压缩和集群:[将活动页面分组到更少的内存区域,这样可以将未使用的区域重新放入自我更新中.
- NUMA-意识调度:在多索系统上,将线程和数据保存在同一节点上,以尽量减少远程内存流量.
对于I/O,OS使用诸如连接网络中断,批量磁盘写入,通过ACPI关闭未使用控制器等技术. 挑战在于保持响应性:延迟几毫秒中断可以节省电源,但可能违反传感器读取最后期限.
实时和嵌入式系统的挑战
节能操作系统的设计对于必须满足硬实时期限的工程设备来说尤为困难,例如机器人臂的发动机控制器或飞行记录器的数据采集系统。 在这里,节能不能以错过最后期限为代价。 实时调度器如Monotonic或Earlyest Field First必须同时提高电能意识,同时保持可排期性测试。
一种方法是使用松懈的时间:在任务提前完成后,剩下的松懈用于减少频率或进入睡眠。这需要精确的时间分析和低管理水平。另一个挑战是深睡眠状态有巨大的醒悟迟缓。如果任务必须在100 μs 内响应,OS不能进入一个500 μs 退出空闲状态。因此,OS必须基于下一个最后期限之前最短的闲置时间选择睡眠深度。
中断处理也会影响能量。 一些微控制器允许操作系统将中断推迟到下个调度勾选, 从而可以延长闲置时间。 但这会增加焦急。 工程师必须权衡每个特定应用程序的节能和计时精确度之间的权衡。
新兴技术和未来方向
预测电力管理机器学习
传统的OS电源管理依赖于固定的电休克(比如利用率阈值 ) 。 机器学习提供了适应随时间变化的工作量模式的潜力。 比如,神经网络可以根据过去的任务到达和传感器触发来预测未来的CPU需求,让OS主动设定频率或闲置状态。 早期的实验显示,相对于最佳静态州长,10—20 % 的能量节约。
然而,在受能量约束的设备上运行ML模型本身消耗动力. OS必须要么从中推导出一个专用的低功率加速器,要么使用适合内核的轻量级模型(如决策树). 研究论文"基于学习的多核心处理器的电源管理"[ 提供了对这种方法的彻底评价. 随着嵌入式ML硬件越来越常见,我们可以期望OS电源管理者将所学到的政策作为标准特征.
低功率硬件协同
OS没有与硬件的紧密整合,就无法实现最高能效. 新兴SoCs提供了精细的增压电域,每堆电压调节器,以及深睡眠时保留状态的非挥发性内存. OS在处理硬件错误和变异时,必须通过电源管理框架来暴露这些能力.
近临界计算(NTC)等技术允许处理器在极低的电压下运行,但它们对温度和过程变化敏感。OS必须监控芯片传感器并调整电压边际,这项任务需要实时控制环路。此外,各种架构(如ARM big.LITTLE,x86混合芯)允许OS为每个工作量分配最节能核心的任务。ARM big.LITLE架构是硬件异质性如何被能量感知OS利用的著名例子。
另一个有希望的方向是使用从太阳、振动或RF来源收集动力的能源采集设备。 这些设备有间歇的供电;操作系统必须管理跨动力周期的计算,在动力故障前将状态保存到非挥发性记忆。 这种“间歇计算”需要在操作系统层面的检查机制,这是从持续动力运行的范式转变。
结论
设计节能工程设备的操作系统是一项多层面的挑战,涉及DVFS、闲置管理、调度、内存和I/O优化以及实时限制。成功的设计将这些技术纳入一个适应工作量、硬件和环境条件的一致政策。 随着机器学习和新的硬件能力的成熟,操作系统将在挤压每个设备最后的能量下降——使电池寿命延长、形式因素较小以及从远程环境监视器到医疗植入器的更广泛部署。 掌握这些原则的工程师将站在创造可持续、高性能技术的最前沿。