专栏算法工具链AutoSAR OS一种CPU负载率的计算方法

AutoSAR OS一种CPU负载率的计算方法

小明2024-08-01
72
0

AutoSAR OS一种CPU负载率的计算方法

AutoSAR OS是继承OSEK OS发展而来的一种面向汽车电子的实时操作系统。支持基于优先级的任务抢占。

在没有任何task执行时进入idletask

如下图:

理解上面的原理,显然我们就可以通过一段时间内idle的时间占比还表示cpu的负载率。

time_total的时间我们可以根据项目实际情况设定,时间越长对于瞬时的cpu负载反应越差,时间过短可能计算结果不能正确反映cpu负载。

对于time_total 的时间我们可以在设定的时间点通过系统计数器获取。

但是对于idle的时间获取显然不是那么容易,因为idle task随时可能被任何任务抢占,我们轻而易举的可以获取进入idletask时刻,但是对于退出idletask的时刻我们难以获取。

autosaros 在进入idletask后会一直在while循环中,idletask 被抢占后就算抢占它的task不做任何事情,对于os还有一些上下文的处理过程,所以idle task 被抢占后在回到idletask的时间一定要比在idletask while循环一次的时间长,我们就可以通过这个时间差来计算idletask是在while循环中还是被抢占,如果在while循环中,我们就可以累计每次的时间。通过这样的方式来计算在idle的时间。

伪代码如下:


上述内容只是提供一种技术手段,在实际应用过程中还会涉及到一些技术细节的处理,


Xiaoming On Zhangjing



算法工具链
征程6社区征文前沿技术
评论0
0/1000