[发明专利]一种用于vxWorks的CPU占用率检测方法和系统有效
| 申请号: | 201410807463.9 | 申请日: | 2014-12-23 |
| 公开(公告)号: | CN104572414A | 公开(公告)日: | 2015-04-29 |
| 发明(设计)人: | 吴乾锋 | 申请(专利权)人: | 深圳市邦彦信息技术有限公司 |
| 主分类号: | G06F11/34 | 分类号: | G06F11/34 |
| 代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 唐致明 |
| 地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 vxworks cpu 占用率 检测 方法 系统 | ||
技术领域
本发明涉及一种用于vxWorks的CPU占用率检测方法和系统,属于嵌入式操作系统领域。
背景技术
VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分,具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。
目前有多种在嵌入式计算机操作系统中检测CPU占用率的方法,例如,目前在嵌入式操作系统vxWorks中主要有两种CPU占用率检测的方法。
第一种:通过spy工具利用辅助定时器产生中断,并且为每个任务维护一个计数器。然后记下被中断的任务,并且将该任务的计数器加一。经过一段时间后,每个任务的计数器反映了该任务占用CPU利用率的情况。很明显,这是利用抽样技术。并且得到的cpu利用率的准确程度取决于任务的持续性和周期性。
第二种:通过创建两个特殊的任务,一个优先级别最高的任务和一个优先级别最低的任务,在这个优先级别最高的任务里运行一个循环次数很大的循环用于占用所有的CPU时间,记录一段时间内计数值;然后再设置一个优先级别最低的任务,当所有任务都停止时CPU才会调度此任务,此任务记下在无其他任务占用CPU的情况下计数,最后通过算法CPU占用率 = (total -idle)% total。
但这两种算法都需要硬件系统配备相应高精度的辅助时钟,为了节约成本,通常没有这样的时钟,相对第一种方法来说,精确计算各任务CPU占用率没有必要,作为报警需要,计算系统总的CPU占用率即可;第二种虽然是计算整个系统的占用率,但必须需要硬件时钟的中断才能实现。
发明内容
为了克服现有技术的缺陷,本发明分别提出了一种用于vxWorks的CPU占用率检测方法和系统,以在不需要精度相当高的硬件时钟下计算系统的总的CPU占用率。
为了实现上述目的,根据本发明的采用以下的技术方案:
根据本发明的一个方面,提出了一种用于vxWorks的CPU占用率检测方法,其包括步骤:
S1:在VxWorks系统任务启动后,用户任务启动前,启动一最低优先级的任务,同时设置一统计时间,以从统计时间开始对一静态变量进行递加并记录其计数值,直至该统计时间结束;
S2:对应该最低优先级的任务的统计时间结束时,将记录的静态变量的计数值保存至一比较基数中,以及将静态变量清零;
S3:在一统计时间内,该最低优先级的任务在VxWorks系统空闲时对静态变量进行递加并记录其计数值;
S4:启动一较高优先级的任务,以计算每一统计时间内的静态变量的增量值;
S5:利用记录的静态变量的增量值与比较基数之比,计算出CPU占用率。
优选地,所述统计时间由一延时函数提供。
优选地,在步骤S5中,CPU占用率=100-增量值/比较基数。
优选地,在步骤S2中,在将静态变量的计数值保存至一比较基数之前,先将静态变量整除100。
优选地,在步骤S3中,最低优先级的任务仅在无其他任务占用CPU时执行,以在统计时间内CPU空闲时对静态变量进行递加。
根据本发明的另一个方面,提出了一种用于vxWorks的CPU占用率检测系统,包括:
统计计数模块,在VxWorks系统任务启动后,用户任务启动前,启动一最低优先级的任务,同时设置一统计时间,以从统计时间开始对一静态变量进行递加并记录其计数值,直至该统计时间结束;
比较基数获取模块,对应该最低优先级的任务的统计时间结束时,将记录的静态变量的计数值保存至一比较基数中,以及将静态变量清零;
空闲计数模块,在一统计时间内,该最低优先级的任务在VxWorks系统空闲时对静态变量进行递加并记录其计数值;
增量计算模块,启动一较高优先级的任务,以计算每一统计时间内的静态变量的增量值;
占用率计算模块:利用记录的静态变量的增量值与比较基数之比,计算出CPU占用率。
优选地,所述统计时间由一延时函数提供。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市邦彦信息技术有限公司;,未经深圳市邦彦信息技术有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410807463.9/2.html,转载请声明来源钻瓜专利网。





