[发明专利]计算CPU利用率的方法在审
申请号: | 201710556781.6 | 申请日: | 2017-07-10 |
公开(公告)号: | CN107368402A | 公开(公告)日: | 2017-11-21 |
发明(设计)人: | 孙忠刚;张晓谦;刘超;李岩 | 申请(专利权)人: | 中国第一汽车股份有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/30 |
代理公司: | 北京青松知识产权代理事务所(特殊普通合伙)11384 | 代理人: | 郑青松 |
地址: | 130011 吉林省长春*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 cpu 利用率 方法 | ||
技术领域
本发明涉及嵌入式实时控制领域,尤其涉及一种计算CPU利用率的方法。
背景技术
在嵌入式实时控制领域,CPU利用率测量是实时控制软件开发过程中一项重要的工作,CPU利用率主要用于评估控制系统软件运行的可靠性和控制器硬件芯片选型。如中国发明专利(授权公开号CN101493789、授权公告日2009年7月29日)公开了一种获取CPU利用率的方法及装置,所述方法包括:在一阈值时间内,统计CPU的轮询指令总数和业务指令总数;依据所述轮询指令总数和业务指令总数计算得到所述CPU的利用率。此方法在实现时需要借助专用工具统计控制系统软件中的轮询指令与业务指令。
中国发明专利(授权公开号CN104077209A、授权公告日2014年10月1日)公开了一种确定处理器利用率的方法,包括:经由处理器上的第一计数器对代码被执行时逝去时钟周期数计数;经由处理器上的第二计数器对自由运行时钟周期的总数计数;和将代码被执行时的时钟周期数除以自由运行时钟周期的总数,以确定CPU利用率。此方法需要额外占用两路硬件定时器资源。在uC/OS II操作系统中,专门设计了一个统计任务统计CPU利用率,为实现统计任务功能,系统动起时需要延时一个CPU利用率计算周期。此方法需要在操作系统中额外增加一个任务,而且系统时间起动时间较长。
发明内容
本发明目的是提供一种计算CPU利用率的方法,其不需要借助专用工具,不占用硬件资源;而且不增加系统软件开销,不影响系统起动时间。
本发明解决技术问题采用如下技术方案:一种计算CPU利用率的方法,其包括:
获得操作系统完全处于Idle任务下,一个窗口周期内,变量IdleCounter可以累加的最大值MaxIdleCounter;
获得软件正常运行过程中,一个窗口时间内,Idle任务中变量IdleCounter的累加值IdleCounterSum;
所述CPU利用率=1000-(IdleCounterSum*1000)/MaxIdleCounter。
可选的,在操作系统启动后,创造条件,使操作系统处于Idle状态维持一个窗口时间,在Idle任务中执行一个变量IdleCounter累加操作,计算出一个窗口时间,变量可累加的最大值,以得到MaxIdleCounter。
可选的,在一个特定任务或中断中,以计算CPU利用率窗口时间为周期,设置一个窗口超时标志位;Idle任务根据该标志位是否置位决定是否进行一次CPU利用率计算。
本发明具有如下有益效果:本发明的计算CPU利用率的方法不需要借助专用工具,不占用硬件资源;而且不增加系统软件开销,不影响系统起动时间;此外,在本发明中,一个CPU利用率计算窗口内,系统处于空闲任务的时间是通过变量的累加值间接表示的,不依赖于硬件,具有较好的通用性。
附图说明
图1为本发明的计算CPU利用率的方法示意图;
图2为本发明的计算CPU利用率的实施过程示意图;
具体实施方式
下面结合实施例及附图对本发明的技术方案作进一步阐述。
实施例1
本实施例提供了一种计算CPU利用率的方法,基于嵌入式操作系统,在Idle任务中,以一定的窗口周期,计算CPU的利用率。
所述CPU利用率=1000-(IdleCounterSum*1000)/MaxIdleCounter;其中MaxIdleCounter为操作系统完全处于Idle任务下,一个窗口周期内,IdleCounter可以累加的最大值,在操作系统实际运行时,MaxIdleCounter直接使用预先计算好的值。
IdleCounterSum为软件正常运行过程中,一个窗口时间内,Idle任务中变量IdleCounter的累加值。
本实施例中,所述CPU利用率以一个窗口时间为周期实时更新。
CPU处于Idle状态的时间,通过如下方法间接表示。在Idle任务中执行一个变量(如IdleCounter)的累加操作,变量累加值对应CPU处于Idle状态的时间。
在操作系统启动后,创造条件,使操作系统处于Idle状态(运行Idle任务)维持一个窗口时间,在Idle任务中执行一个变量(如IdleCounter)累加操作,计算出一个窗口时间,变量可累加的最大值,以得到MaxIdleCounter。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国第一汽车股份有限公司,未经中国第一汽车股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710556781.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高精密铣削加工连接盘端面的装置
- 下一篇:一种筷子打磨装置