首页 / 科技百科 / 正文

cpu的利用率怎么算 

CPU的利用率是通过以下两种方式计算的:

1. 系统进入运行后,每次Tick中断发生时,采样一下当前正在执行的任务,如果CPU处于HALT态,累加haltTimes。周期性地计算CPU占用率,一般每秒钟计算一次,并清除haltTimes。具体计算公式为:RealTime CPU Load = haltTimes / tickIntFrequance。某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance * 100%。

2. 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧),这个中断只对一个计数器执行一次累加。在OS每次执行任务切换时读取该计数器的值(AUXTimer),并保存到TCB中。周期性地计算CPU占用率,一般每秒钟计算一次,并清除每个任务的总运行时间。具体计算公式为:某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间。RealTime CPU Load = 所有任务的CPU占用率之和。

需要注意的是,CPU占用率的计算误差取决于Tick的频率和OS中每个任务的运行时长,因此误差可能比较大。另外,误差取决于AUXTimer中断的频率,可以非常精确地得到每个任务对CPU占用率的贡献。

如有侵权请及时联系我们处理,转载请注明出处来自