结论先行
cpufreq governors 在中文技术语境中通常被翻译为 “CPU 频率调节器” 或 “CPU 调频策略” 。
从操作系统的第一性原理出发,我们可以这样拆解和理解这个概念:
- cpufreq (底层机制) :这是 Linux 内核中负责 CPU Frequency Scaling(CPU 频率缩放)的子系统。它提供了在系统运行时动态改变 CPU 时钟速度的基础设施。
- governors (控制逻辑) :字面意思是“总督”、“调节器”或“控制器”。在内核架构中,它是一个抽象层,代表了决定 CPU 频率应该如何变化、何时变化的具体算法。
软件工程架构中的定位(从底层向上分析):
- 硬件层:真实的 CPU 物理芯片(定义了支持的频率区间,例如 1.20 GHz - 3.20 GHz)。
- 驱动实现层(Driver) :例如你机器上的
intel_cpufreq。它不关心为什么要变频,只负责对接底层硬件寄存器,执行物理层面的频率升降指令。 - 策略决策层(Governor) :这就是
cpufreq governors所处的位置。它是决策的大脑。它会不断收集和分析系统的状态(如目前的进程负载、内核调度器反馈的任务权重),运行内置的算法(如powersave或schedutil),计算出当前最合适的频率,然后向底层的 Driver 下达变频指令。
简而言之,硬件和驱动决定了“能不能变频”以及“能变多快”,而 CPU 频率调节器(Governor) 决定了“要不要变频”以及“变成多少”。