一种获取CPU利用率的方法、装置及系统制造方法及图纸

技术编号:4939697 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种获取CPU利用率的方法及装置,所述方法包括:在一阈值时间内,统计CPU的轮询指令总数和业务指令总数;依据所述轮询指令总数和业务指令总数计算得到所述CPU的利用率。根据本发明专利技术实施例,就使得本发明专利技术实施例对于CPU的配置要求较低,无需操作系统支持,并且,进一步的,可以通过读物指令计数寄存器上的指令来获取轮询指令数和业务指令数,同时不会产生额外的系统资源消耗,使得计算结果的偏差较小。

【技术实现步骤摘要】

本专利技术涉及移动通信领域,尤其涉及一种获取CPU利用率的方法、装置及系统。
技术介绍
操作系统(Operating System, OS)是一管理计算机系统的全部资源, 包括硬件资源、软件资源及数据资源、控制程序运行等资源的程序,使计算 机系统所有资源最大限度地发挥作用。中央处理单元(Central Process Unit, CPU)的缩写,是计算机系统的核心,负责处理、运算计算机内部的所有数 据。CPU利用率是指一段时间内CPU实际处理数据的时间占实际运行时间 的百分比,即是CPU的使用效率。CPU利用率是反映CPU工作状态及处理 效率的技术经济指标。在一些CPU的应用场合中,有些CPU上需要运行操 作系统,以获取更强、更多的功能,例如,通用PC,网络服务器,智能手 机等。因为有了操作系统的支持,只需通过开发上层软件来优化,增加和扩 充CPU的功能。现有技术中,有一种利用进程获取CPU利用率的方法,该方法的实现 主要基于系统空闲(idle )进程,所述系统idle进程是在CPU空闲的时候, 发出一个idle命令,使CPU暂时停止工作,则该方法的实现过程具体为 在操作系统里创建一个idle进程,当操作系统处于空闲状态时,CPU就运行 该idle进程,然后统计idle进程运行的时间片,依据所述时间片的具体信息 就可以获取到CPU的空闲率,进而可以获取CPU的利用率。从上述过程可以看出,传统的CPU利用计算方法是基于系统idle进程 的,即是以idle进程为基础进行计算,通过统计idle的时间利用片从而得出 CPU的利用率,因此现有技术的应用场景需要操作系统的支持,即是只能应 用于在CPU上已经运行操:作系统的场景中,且该梯:作系统支持支持线程或 者进程;但是对于实际中一些没有操作系统(或者说是不需要操作系统)的 CPU来讲,因不存在系统idle进程,现有技术也就无法计算出该CPU的利5用率,使得现有技术中获取CPU利用率的方法的应用场景受到极大的限制。
技术实现思路
本专利技术实施例提供一种获取CPU利用率的方法及装置,以解决现有技术中的方法不能应用于没有操作系统支持的应用场景的问题。为解决上述技术问题,本专利技术实施例提供了一种获取CPU利用率的方 法,包括在一阈值时间内,统计CPU的轮询指令总数和业务指令总数; 依据所述轮询指令总数和业务指令总数计算得到所述CPU的利用率。优选的,所述在一阈值时间内,统计CPU的轮询指令数,具体包括 获取一阈值时间内每次轮询的单次轮询指令数和单次业务指令数; 分别累计所述单次轮询指令数和单次业务指令数,以获得所述轮询指令总数和业务指令总数。优选的,所述获取一阈值时间内每次轮询的单次轮询指令数和单次业务指令数,具体包括在每次轮询开始时,获取所述CPU的指令计数寄存器的第 一计数值; 在触发单次业务处理时,获取所述CPU的指令计数寄存器的第二计数值;在所述业务处理结束时,获取所述指令计数寄存器的第三计数值; 在该次轮询结束时,获取所述指令计数寄存器的第四计数值; 分别获取所述第四计数值和第 一 计数值的差,以及所述第三计数值 和第二计数值的差,则所述差值分别为所述单次轮询指令数和单次业务指令数。优选的,所述CPU为多核CPU,则所述统计多核CPU的轮询指令 总数和业务指令总数,具体包括获取所述多核CPU上各核相应的多个轮询指令总数和业务指令总数;分别累计所述多个轮询指令总数和多个业务指令总数,以获得多核 CPU的轮询指令数和业务指令数。6优选的,在所述多核CPU的任一核上设置定时器,所述定时器的预 置时间为所述一 阈值时间。优选的,所述依据所述轮询指令数和业务指令数计算得到所述CPU的利用率之后,还包括将所述轮询指令总数和业务指令总数的值清零。本专利技术实施例还提供了 一种获取CPU利用率的装置,包括统计模块,用于在一阈值时间内,统计CPU的轮询指令总数和业务指令总数;计算模块,用于依据所述轮询指令总数和业务指令总数计算得到所 述CPU的利用率。优选的,所述统计模块具体包括第一获取子模块,用于获取一阈值时间内每次轮询的单次轮询指令 数和单次业务指令数;第 一 累计子模块,用于分别累计所述单次轮询指令数和单次业务指 令数,以获得所述轮询指令总数和业务指令总数。优选的,所述第一获取子模块具体包括第二获取子模块,用于在每次轮询开始时,获取所述CPU的指令计 数寄存器的第一计数值;第三获取子模块,用于在触发单次业务处理时,获取所述CPU的指 令计数寄存器的第二计数值;第四获取子模块,用于在所述业务处理结束时,获取所述指令计数 寄存器的第三计数值;第五获取子模块,用于在该次轮询结束时,获取所述指令计数寄存 器的第四计数值;第六获取子模块,用于分别获取所述第四计数值和第一计数值的差, 以及所述第三计数值和第二计数值的差,则所述差值分别为所述单次轮 询指令数和单次业务指令数。优选的,所述统计模块具体包括第七获取子模块,用于获取所述多核CPU上各核相应的多个轮询指 令总数和业务指令总数;第二累计子模块,用于分别累计所述多个轮询指令总数和多个业务指令总数,以获得多核CPU的轮询指令数和业务指令数。 优选的,还包括设置模块,用于在所述多核CPU的任一核上设置定时器,所述定时 器的预置时间为所述一 阈值时间。 优选的,还包括初始化模块,用于将所述轮询指令总数和业务指令总数的值清零。 与现有技术相比,本专利技术实施例具有以下优点在本专利技术实施例中,首先通过在一阔值时间内,统计CPU的轮询指 令总数和业务指令总数;可以依据所述轮询指令总数和业务指令总数计 算得到所述CPU的利用率。运用本专利技术的方法,就使得本专利技术实施例对 于CPU的配置要求较低,无需操作系统支持,并且,进一步的,可以通 过读取CPU内部的指令计数寄存器上的指来获取轮询指令数和业务指令 数,同时不会产生额外的系统资源消耗,使得计算结果的偏差较小。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将 对实施例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见 地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技 术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获 得其他的附图。图1是本专利技术的获取CPU利用率的方法实施例一的流程图; 图2是本专利技术的获取CPU利用率的方法实施例二的流程图; 图3是本专利技术的获取CPU利用率的方法实施例三的流程图; 图4是本专利技术的获取CPU利用率的方法实施例三中,多核CPU设置 定时器的连接示意图5是本专利技术的获取CPU利用率的装置实施例 一 的结构示意图; 图6是本专利技术的获取CPU利用率的装置实施例二的结构示意图; 图7是本专利技术的获取CPU利用率的装置实施例三的结构示意图。8具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案 进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实 施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 专利技术保护的范围。为使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下 面结合附图和具体实施方式对本专利技术实施例作进一步详细的说明。参考图1本文档来自技高网
...

【技术保护点】
一种获取CPU利用率的方法,其特征在于,包括: 在一阈值时间内,统计CPU的轮询指令总数和业务指令总数; 依据所述轮询指令总数和业务指令总数计算得到所述CPU的利用率。

【技术特征摘要】
1、一种获取CPU利用率的方法,其特征在于,包括在一阈值时间内,统计CPU的轮询指令总数和业务指令总数;依据所述轮询指令总数和业务指令总数计算得到所述CPU的利用率。2、 根据权利要求1所述的方法,其特征在于,所述在一阈值时间内, 统计CPU的轮询指令数,具体包括获取一 阈值时间内每次轮询的单次轮询指令数和单次业务指令数; 分别累计所述单次轮询指令数和单次业务指令数,以获得所述轮询 指令总数和业务指令总数。3、 根据权利要求2所述的方法,其特征在于,所述获取一阈值时间 内每次轮询的单次轮询指令数和单次业务指令数,具体包括在每次轮询开始时,获取所述CPU的指令计数寄存器的第一计数值; 在触发单次业务处理时,获取所述CPU的指令计数寄存器的第二计 数值;在所述业务处理结束时,获取所述指令计数寄存器的第三计数值; 在该次轮询结束时,获取所述指令计数寄存器的第四计数值; 分别获取所述第四计数值和第一计数值的差,以及所述第三计数值和第二计数值的差,则所述差值分别为所述单次轮询指令数和单次业务指令数。4、 根据权利要求1所述的方法,其特征在于,所述CPU为多核CPU, 则所述统计多核CPU的轮询指令总数和业务指令总数,具体包括获取所述多核CPU上各核相应的多个轮询指令总数和业务指令总数;分别累计所述多个轮询指令总数和多个业务指令总数,以获得多核 CPU的轮询指令数和业务指令数。5、 根据权利要求4所述的方法,其特征在于,在所述多核CPU的任 一核上设置定时器,所述定时器的预置时间为所述一 阈值时间。6、 根据权利要求1所述的方法,其特征在于,所述依据所述轮询指 令数和业务指令数计算得到所述CPU的利用率之后,还包括将所述轮询指令总数和业务指令总数的值清零。7、 一种获取CPU利用率的装置...

【专利技术属性】
技术研发人员:何志福
申请(专利权)人:北京网御星云信息技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1