在我的 Ubuntu 12.04 中,使用 psensor,我看到更新了 CPU 使用率的百分比数字。我想知道这个百分比是如何计算的?具体来说,比率中的分子和分母是什么?
谢谢!
所述处理器使用百分比计算与“的时间量,该处理器不是在空闲”。我的意思是,这个 calc 是由一个计数器制成的,该计数器记录了“空闲”运行进程的使用情况。当另一个进程从空闲进程“抢夺”处理器能力时,空闲处理器消费者寄存器减少了一个因子;由于时间线是固定不变的,因此(1-“空闲任务中的%time”)是用于在处理器上运行的所有进程的处理器负载量:

定义 CPU 利用率
出于我们的目的,我将 CPU 利用率 U 定义为不在空闲任务中的时间量,如公式 1 所示。
空闲任务是多任务系统中具有绝对最低优先级的任务。此任务有时也称为后台任务或后台循环,如清单 1 所示。此逻辑传统上具有 while(1) 类型的循环。换句话说,无限循环使 CPU 旋转,等待需要完成关键工作的指示。
清单 1:后台循环的简单示例
int main( void )
{
SetupInterrupts();
InitializeModules();
EnableInterrupts();
while(1) /* endless loop - spin in the background */
{
CheckCRC();
MonitorStack();
... do other non-time critical logic here.
}
}
Run Code Online (Sandbox Code Playgroud)
这种描述实际上过于简单化了,因为一些“真正的”工作通常是在后台任务中完成的。但是,为在空闲任务期间执行而编码的逻辑必须没有硬实时要求,因为无法保证此逻辑何时完成。事实上,您可以在过载系统中使用的一种技术是将一些时序要求不那么严格的逻辑从硬实时任务中移到空闲任务中。
| 归档时间: |
|
| 查看次数: |
7793 次 |
| 最近记录: |