Cpu使用率分析系统及方法

文档序号:6586990阅读:143来源:国知局
专利名称:Cpu使用率分析系统及方法
技术领域
本发明涉及一种CPU使用率分析系统及方法,尤其涉及一种应用于移动装置中的 CPU使用率分析系统及方法。
背景技术
ARM (Advanced RISC Machines)架构之移动装置(如手机和PDA等)大部分采用 Nucleus操作系统,在Nucleus操作系统中并没有Windows操作系统所提供的工作管理员程 序,让用户可以查看CPU使用率,以便分析了解移动装置的性能。目前,部分移动装置可以通过软件定时器(如日志管理软件,Software Log)来模 拟CPU的使用率,但使用软件定时器模拟获得的结果不够精确。

发明内容
鉴于以上内容,有必要提供一种CPU使用率分析系统,其可精确计算出移动装置 的CPU使用率。此外,还有必要提供一种CPU使用率分析方法,其可精确计算出移动装置的CPU使用率。所述CPU使用率分析系统,应用于移动装置中,该移动装置配置有硬件定时器。所 述系统包括参数设置模块,用于设置CPU使用率分析周期和每次分析的时间长度;时间读 取模块,用于在每个CPU使用率分析周期内,当一个线程被挂起时,读取硬件定时器的当前 时间,并将该硬件定时器的值重设为最大值,同时,移动装置操作系统中的任务调度列表决 定下一个执行的线程;计算模块,用于根据所读取的硬件定时器的当前时间计算该被挂起 的线程占用CPU的时间,并将该计算的时间存储在一个数组元素中,该被挂起的线程占用 CPU的时间等于硬件定时器的最大值减去硬件定时器的当前时间;所述计算模块,还用于 当每次分析的时间长度到达时,根据该数组中所有元素的值计算出CPU的使用率。所述CPU使用率分析方法,应用于移动装置中,该移动装置配置有硬件定时器。该方 法包括如下步骤设置CPU使用率分析周期和每次分析的时间长度;在每个CPU使用率分析 周期内,当一个线程被挂起时,读取硬件定时器的当前时间,并将该硬件定时器的值重设为最 大值,同时,移动装置操作系统中的任务调度列表决定下一个执行的线程;根据所读取的硬 件定时器的当前时间计算该被挂起的线程占用CPU的时间,并将该计算的时间存储在一个数 组元素中,该被挂起的线程占用CPU的时间等于硬件定时器的最大值减去硬件定时器的当前 时间;当每次分析的时间长度到达时,根据该数组中所有元素的值计算出CPU的使用率。相较于现有技术,所述的CPU使用率分析系统及方法,应用于移动装置中,可以精 确计算出移动装置的CPU使用率。


图1是本发明CPU使用率分析系统较佳实施例的硬件架构图。
图2是图1中CPU使用率分析单元的功能模块图。图3是本发明CPU使用率分析方法较佳实施例的流程图。
具体实施例方式如图1所示,是本发明CPU使用率分析系统较佳实施例的硬件架构图。该系统 应用于移动装置中(本实施例以手机为例进行说明),主要包括中央处理器(Central ProcessingUnit, CPU) 1、存储器2、输入/输出设备3及手机主板4。所述中央处理器1分 别与所述存储器2、输入/输出设备3和手机主板4相连,该存储器2与手机主板4相连。 输入/输出设备3包括LCD液晶显示屏和键盘等,用于显示资料及输入信息。其中,所述存 储器2包括操作系统21和CPU使用率分析单元20。所述操作系统21中包含有任务调度列表,该任务调度列表用于控制线程的执行。 例如,当一个线程被挂起后,任务调度列表将决定下一个执行的线程。所述中央处理器1用于调用所述CPU使用率分析单元20,并控制该CPU使用率分 析单元20的执行。该CPU使用率分析单元20用于利用手机主板4中的硬件定时器40模 拟CPU的使用率。所述硬件定时器40内嵌于手机主板4中,该硬件定时器40可以是Timel定时器、 Time2定时器和Watchdog定时器(看门狗定时器)等,本实施例中采用Time2定时器。硬 件定时器40可以精确到纳秒(ns),如Time2定时器的精确度可以达到2. 4623纳秒,而软件 定时器只能精确到毫秒(ms),一般为4. 615毫秒。如图2所示,是图1中所示CPU使用率分析单元20的功能模块图。所述CPU使用 率分析单元20包括参数设置模块201、线程设定模块202、时间读取模块203及计算模块 204。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计 算机中的执行过程,因此在本发明以下对软件描述中都以模块描述。所述参数设置模块201用于设置CPU使用率分析周期和每次分析的时间长度,其 中,每次分析的时间长度从每次CPU使用率分析周期到达的时刻开始计时,且每次分析的 时间长度小于或等于CPU使用率分析周期。假设CPU使用率分析周期为10分钟,每次分析 的时间长度为100秒,则每隔10分钟,分析当前CPU在100秒内的使用率。所述线程设定模块202用于设定一个优先级最低的线程作为空闲运转线程,并将 该空闲运转线程放置于一个无限循环中,以防止操作系统21进入休眠模式。该空闲运转线 程可以是新增的Idle(空闲)线程,或是将现有的一个线程设置成最低优先级以作为空闲 运转线程。所述时间读取模块203用于在每个CPU使用率分析周期内,当一个线程被挂起时, 读取硬件定时器40的当前时间。同时,操作系统21的任务调度列表将决定下一个执行的 线程。每次读取完硬件定时器40的当前时间后,时间读取模块203都将该硬件定时器40 的值重设为最大值。在本实施例中,硬件定时器40的最大值为0xFFFF。其中,一个线程被挂起的情形包括(1)该线程执行完毕;(2)当该线程运行时,操作系统21发出一个中断请求;(3)当该线程运行时,有其它更高优先级的线程需要执行,该线程主动释放一个信号量而被挂起。所述计算模块204用于根据硬件定时器40的当前时间计算该被挂起的线程占用 CPU的时间,并将其存储在一个数组元素中。其中,该被挂起的线程占用CPU的时间等于硬 件定时器40的最大值减去硬件定时器40的当前时间。所述计算模块204还用于当每次分析的时间长度到达时,根据该数组中所有元素 的值计算出CPU的使用率。具体而言,首先,计算模块204加总该数组中所有元素得到所有 线程占用CPU的时间之和,然后,计算出每个线程占用CPU的平均时间,该每个线程占用CPU 的平均时间为所有线程占用CPU的时间之和除以本次周期内执行的线程个数。最后,计算 出本次周期内CPU的使用率,该CPU的使用率等于每个线程占用CPU的平均时间除以每次 分析的时间长度。举例而言,假设每次分析的时间长度为100秒,本次周期内执行的线程有3个 (ThreadA、Thread B 和 Thread C),其中,Thread A 占用 CPU 的时间为 30 秒,Thread B 占 用CPU的时间为40秒,Thread C占用CPU的时间为50秒。则每个线程占用CPU的平均时 间为(30+40+50)/3秒,即40秒,本次周期内CPU的使用率为40/100,即40%。如图3所示,是本发明CPU使用率分析方法较佳实施例的流程图。步骤S1,利用参 数设置模块201设置CPU使用率分析周期和每次分析的时间长度。步骤S2,时间读取模块203在每个CPU使用率分析周期内,当一个线程被挂起时, 读取硬件定时器40的当前时间。同时,操作系统21的任务调度列表将决定下一个执行的 线程。每次读取完硬件定时器40的当前时间后,时间读取模块203都将该硬件定时器40 的值重设为最大值。在本实施例中,硬件定时器40的最大值为0xFFFF。其中,一个线程被挂起的情形包括(1)该线程执行完毕;(2)当该线程运行时,操作系统21发出一个中断请求;(3)当该线程运行时,有其它更高优先级的线程需要执行,该线程主动释放一个信 号量而被挂起。步骤S3,计算模块204根据所读取的硬件定时器40的当前时间计算该被挂起的线 程占用CPU的时间,并将其存储在一个数组元素中。其中,该被挂起的线程占用CPU的时间 等于硬件定时器40的最大值减去硬件定时器40的当前时间。步骤S4,计算模块204当每次分析的时间长度到达时,根据该数组中所有元素的 值计算出CPU的使用率。具体而言,首先,计算模块204加总该数组中所有元素得到所有线 程占用CPU的时间之和,然后,计算出每个线程占用CPU的平均时间,该每个线程占用CPU 的平均时间等于所有线程占用CPU的时间之和除以本次周期内执行的线程个数。最后,计 算出本次周期内CPU的使用率,该本次周期内CPU的使用率等于每个线程占用CPU的平均 时间除以每次分析的时间长度。在其它实施例中,所述方法还可以包括如下步骤在步骤S2之前,线程设定模块202设定一个优先级最低的线程作为空闲运转线 程,并将该空闲运转线程放置于一个无限循环中,以防止操作系统21进入休眠模式。该空 闲运转线程可以是新增的Idle线程,或是将现有的一个线程设置成最低优先级以作为空 闲运转线程。
本实施例中,所述移动装置可以为手机或PDA (Personal Digital Assistant,个 人数字助理)等具有资料处理功能的电子设备。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照 较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的 技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
一种CPU使用率分析方法,应用于移动装置中,其特征在于,该移动装置配置有硬件定时器,该方法包括如下步骤设置CPU使用率分析周期和每次分析的时间长度;在每个CPU使用率分析周期内,当一个线程被挂起时,读取硬件定时器的当前时间,并将该硬件定时器的值重设为最大值,同时,移动装置操作系统中的任务调度列表决定下一个执行的线程;根据所读取的硬件定时器的当前时间计算该被挂起的线程占用CPU的时间,并将该计算的时间存储在一个数组元素中,该被挂起的线程占用CPU的时间等于硬件定时器的最大值减去硬件定时器的当前时间;及当每次分析的时间长度到达时,根据该数组中所有元素的值计算出CPU的使用率。
2.如权利要求1所述的CPU使用率分析方法,其特征在于,在步骤读取硬件定时器的当 前时间之前还包括设定一个优先级最低的线程作为空闲运转线程,并将该空闲运转线程放置于一个无限 循环中。
3.如权利要求2所述的CPU使用率分析方法,其特征在于,所述空闲运转线程为新增的 空闲线程,或是将现有的一个线程设置成最低优先级以作为空闲运转线程。
4.如权利要求1所述的CPU使用率分析方法,其特征在于,所述线程被挂起的情形包括该线程执行完毕;当该线程运行时,移动装置的操作系统发出一个中断请求;当该线程运行时,有其它更高优先级的线程需要执行,该线程主动释放一个信号量而 被挂起。
5.如权利要求1所述的CPU使用率分析方法,其特征在于,所述步骤根据该数组中所有 元素的值计算出CPU的使用率包括加总该数组中所有元素得到所有线程占用CPU的时间之和;计算出每个线程占用CPU的平均时间,所述每个线程占用CPU的平均时间等于所有线 程占用CPU的时间之和除以本次周期内执行的线程个数;及计算出本次周期内CPU的使用率,所述本次周期内CPU的使用率等于每个线程占用CPU 的平均时间除以每次分析的时间长度。
6.一种CPU使用率分析系统,应用于移动装置中,其特征在于,该移动装置配置有硬件 定时器,所述系统包括参数设置模块,用于设置CPU使用率分析周期和每次分析的时间长度;时间读取模块,用于在每个CPU使用率分析周期内,当一个线程被挂起时,读取硬件定 时器的当前时间,并将该硬件定时器的值重设为最大值,同时,移动装置操作系统中的任务 调度列表决定下一个执行的线程;计算模块,用于根据所读取的硬件定时器的当前时间计算该被挂起的线程占用CPU的 时间,并将该计算的时间存储在一个数组元素中,该被挂起的线程占用CPU的时间等于硬 件定时器的最大值减去硬件定时器的当前时间;及所述计算模块,还用于当每次分析的时间长度到达时,根据该数组中所有元素的值计算出CPU的使用率。
7.如权利要求6所述的CPU使用率分析系统,其特征在于,所述系统还包括线程设定模块,用于设定一个优先级最低的线程作为空闲运转线程,并将该空闲运转 线程放置于一个无限循环中。
8.如权利要求6所述的CPU使用率分析系统,其特征在于,所述硬件定时器的最大值 为0xFFFF。
9.如权利要求6所述的CPU使用率分析系统,其特征在于,所述线程被挂起的情形包括该线程执行完毕;当该线程运行时,移动装置的操作系统发出一个中断请求;当该线程运行时,有其它更高优先级的线程需要执行,该线程主动释放一个信号量而 被挂起。
10.如权利要求6所述的CPU使用率分析系统,其特征在于,所述计算模块根据该数组 中所有元素的值计算出CPU的使用率包括加总该数组中所有元素得到所有线程占用CPU的时间之和;计算出每个线程占用CPU的平均时间,所述每个线程占用CPU的平均时间等于所有线 程占用CPU的时间之和除以本次周期内执行的线程个数;及计算出本次周期内CPU的使用率,所述本次周期内CPU的使用率等于每个线程占用CPU 的平均时间除以每次分析的时间长度。
全文摘要
一种CPU使用率分析方法,应用于移动装置中,包括如下步骤设置CPU使用率分析周期和每次分析的时间长度;当一个线程被挂起时,读取硬件定时器的当前时间;计算该被挂起的线程占用CPU的时间,并将其存储在一个数组元素中;当每次分析的时间长度到达时,计算出CPU的使用率。本发明还提供一种CPU使用率分析系统。利用本发明可精确计算出移动装置的CPU使用率。
文档编号G06F9/48GK101876933SQ200910301930
公开日2010年11月3日 申请日期2009年4月28日 优先权日2009年4月28日
发明者陈纪宪 申请人:深圳富泰宏精密工业有限公司;奇美通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1