一种测量多任务操作系统任务CPU占用率的方法技术方案

技术编号:2918268 阅读:570 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种测量多任务操作系统任务CPU占用率的方法,包含如下步骤:(a)创建一个高优先级定时统计任务,对所有的统计量清零,设定统计间隔;(b)记录中断处理例程入口以及出口的时间点,二者差值为中断处理例程一次执行时长,对其进行累加;(c)任务切换时,分别记录切换入任务的任务开始时间点和切换出任务的任务结束时间点,同一任务的任务结束时间点和任务开始时间点之差,再减去该任务执行过程中所包含的中断处理例程执行时长,即为该任务的一次执行时长,对其进行累加;(d)统计间隔到时,将累加得到各任务的总执行时长和中断处理例程的总执行时长相加,得到该统计间隔内系统的总执行时长,从而计算各任务和中断的CPU占用率。

【技术实现步骤摘要】

本专利技术涉及多任务操作系统,特别涉及一种测量多任务操作系统任务CPU占用率的方法
技术介绍
在计算机软件系统中,基本上都采用了某种形式的多任务操作系统,所 有的应用和功能都是通过任务承载,并在多任务协作下完成的。由于系统应 用日益复杂,多任务操作系统的任务数越来越多,任务的运行状态在多任务的协作中起着越来越重要的作用,而任务的CPU占用率是任务运行状态的 一个很重要组成部分。如果可以实时精确测量系统中各个任务的CPU占用率,则可用于确定整个系统的设计是否是正常的,各个任务的设计是否是正 确的、是否存在执行效率的问题。在目前的操作系统中,对任务CPU占用率的测量方法有两类1. 专利号CN02132247.3中描述的硬件测量方法。该方法描述了一种用于测量实时系统中任务的CPU占用率的装置,包 括用于在标志位中注册待测任务的任务注册单元;用于在设置的标志位中 选择具有高优先级的标志位的地址的任务选择模块;用于处理由任务选择模 块输入的位地址并生成计数信号的计数信号发生单元;用于根据计数信号来 计数任务执行时长的计数单元;以及用于在任务执行时设定标志位并根据由 计数单元生成的计数值计算执行次数和任务的CPU占用率的CPU。该专利 是使用硬件计数器来计时的,应该是实时精确的,但没有说明计时精度。这 种方法存在的缺陷主要有需要有专利的硬件装置,如果配置,则将提高成 本。2. 软件方法,比如嵌入式操作系统VXWORKS提供的SPY工具。该工具在系统中使用了定时间隔的硬件辅助时钟中断,中断到达时即进行采样;额外增加一个高优先级的任务,用于上报采样后的统计数据。这个方法 有两个缺陷该方法认为,当采样时间点到时,就认为当前运行的任务运行了一个采 样间隔。 一般来说,在一个采样间隔内,可发生多次任务切换,即多个任务 都运行过,但采样的做法只会认为采样时的当前任务运行过。特别是如果采 样时间点处于操作系统内核任务切换过程刚结束不久时,则当前任务运行到 这个采样时间点的实际运行的时长是远小于一个采样间隔,而该方法也只能 认为当前任务运行了一个采样间隔。在这种情况下,任务的CPU占用率值 与其它情况下的值相差很大。该方法只有在一次采样间隔内基本不发生任务 切换才是较准确的,而这4叉仅是假设,实际运行的系统,特别是复杂的电信 级系统,常常不是如此。如果要更准确地检测,则必须减少采样间隔,即提高硬件辅助时钟率。 但这样会使检测方法本身所占用的系统开销增大,影响系统的应用功能,造 成矛盾。故该方法默认配置的硬件辅助时钟中断仅为10ms,如果是性能较 强的CPU,可人为改为lms。该方法的计时精度为毫秒级,精度不足。该方法在不同的情况下,存在的误差是不同的,有时还存在很大的误差, 并且计时精度不足。因而一般用于筒单的调试,而不用于实际系统运行。由上述可知,现有方法存在不少缺点有待改进。
技术实现思路
本专利技术的目的是提供一种实现多任务操作系统任务CPU占用率的实时精确测量的方法。本专利技术提出一种测量多任务操作系统任务CPU占用率的方法,包含如 下步骤(a) 创建一个定时统计任务,其优先级高于要统计的任务。对所有的 统计量清零,设定一统计间隔,启动统计流程;(b) 记录任务到中断处理例程的入口以及中断处理例程到任务的出口 的时间点,二者差值为中断处理例程一次执行时长,对其进行累加;(c) 发生任务切换时,对切换入的任务,记录此次调度的任务开始时 间点,对切换出的任务,记录此次调度的任务结束时间点,同一任务的任务 结束时间点和任务开始时间点之差,再减去该任务执行过程中所包含的中断 处理例程执行时长,即为该任务的一次执行时长,对其进行累加;(d) 设定的统计间隔到时,将累加得到各任务的总执行时长和中断处 理例程的总执行时长相加,得到该统计间隔内系统的总执行时长,则各任务 的CPU占用率=该任务总执行时长/系统的总执行时长,中断的CPU占用率 -中断处理例程总执行时长/系统的总执行时长。在步骤(a)中,需要结合具体操作系统的任务切换过程挂接一个任务 切换钩子,该任务切换钩子执行步骤(c)中流程。所述流程中时间点的记录是通过读取硬件计时器计时值得到的,所述统 计间隔不得大于硬件定时器的最大计时长度。所述硬件计时器的精度等于或 高于微秒级。所述统计变量为4字节长。所述步骤(b)是在所有中断处理例程的共同入口的开始处读取硬件计 时器值为Tib,结束处读取硬件计时器值为Tie,将其差值Tie-Tib即为中断 处理例程的此次执行时长Di,在一次任务执行过程中对Di进行累计Dits = Dits + Di, Dits即为在一次任务执行过程中的中断处理例程执行时长。Dits是在任务切换钩子中清零的,即其表示的是在一次任务执行过程中的 中断处理例程执行时长,而从上次的统计点到本次的调度结束点之间,中断 处理例程的累计执行时长Dit = Dit + Dits。所述步骤(d)中统计完成后,对所有统计量清零。与现有技术相比,本专利技术采用的硬件计时器在目前的硬件配置上均具 备,且为微秒级以上,不需要额外的硬件设备,具有成本节省,计时精度高 的优点;另外,设定较短的统计间隔时,可以实时的对不同的任务和中断, 进行精确的CPU占用率测量。由于本专利技术不是一种采样方法,而是在任务切换时,记录切换出任务的运行时长,记录切换入任务开始运行的时间点。 因此可以准确地测量任务的运行时长。附图说明图1是本专利技术实施例用于测量多任务操作系统任务CPU占用率装置的 结构方框图;图2是本专利技术实施例系统任务运行示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步详细的说明。3G系统由多个嵌入式系统組成,这里以其中一个单板嵌入式系统为例 说明,这个系统使用PPC755 CPU和VXWORKS操作系统。图1是本专利技术实施例用于测量多任务操作系统任务CPU占用率的装置 的结构方框图。包括硬件计时器101, PPC755CPU和VXWORKS搡作系统 102,中断计数器103和PC显示设备104。本实例中硬件计时器是PPC755 CPU BSP提供的纳秒级的硬件计时器, PPC755 CPU所有中断的共同入口是500号异常向量处理例程,所有的统计 量都是4字节长的变量。本专利技术提出的多任务操作系统任务CPU占用率的测量方法中,首先假 定系统有X个任务,编号为1至X, m, n分别为其中的某一个任务编号。 系统运行如图2所示。其中,任务和中断所对应的横线表示占用CPU运行时长,由于在进入 中断服务时并不产生任务切换,则任务的运行时长包含了中断的运行时长, 每个横线都有开始和结束的时间点记录,具体详见下面的步骤。本专利技术提出的方法其主要步骤如下第一步使用VXWORKS的接口挂接一个任务切换钩子。创建一个优 先级30的定时统计任务,统计间隔设为20s,该任务刚启动时,对所有的记 录和统计量做清零操作,启动统计流程。第二步在所有中断处理例;艮的共同入口,即500号异常向量处理例程 的开始处读取硬件计时器值为Tib,结束处读取^^件计时器值为Tie,其差 值Tie-Tib即为中断处理例程的此次执行时长Di,这个时长也可能包含了中 断处理例程嵌套了其它的中断处理例程的情况,本实施例只记录任务到中断 处理例程的本文档来自技高网
...

【技术保护点】
一种测量多任务操作系统任务CPU占用率的方法,其特征在于包含如下步骤:(a)创建一个定时统计任务,其优先级高于要统计的任务。对所有的统计量清零,设定一统计间隔,启动统计流程;(b)记录任务到中断处理例程的入口以及中断处理例程 到任务的出口的时间点,二者差值为中断处理例程一次执行时长,对其进行累加;(c)发生任务切换时,对切换入的任务,记录此次调度的任务开始时间点,对切换出的任务,记录此次调度的任务结束时间点,同一任务的任务结束时间点和任务开始时间点之差, 再减去该任务执行过程中所包含的中断处理例程执行时长,即为该任务的一次执行时长,对其进行累加;(d)设定的统计间隔到时,将累加得到各任务的总执行时长和中断处理例程的总执行时长相加,得到该统计间隔内系统的总执行时长,则各任务的CPU占用 率=该任务总执行时长/系统的总执行时长,中断的CPU占用率=中断处理例程总执行时长/系统的总执行时长。

【技术特征摘要】

【专利技术属性】
技术研发人员:傅仁武
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1