一种基于MIPS分析线程占用CPU的方法技术

技术编号:21771341 阅读:55 留言:0更新日期:2019-08-03 21:28
本申请公开了一种基于MIPS分析线程占用CPU的方法,本申请采用的技术方案是:按照指定优先级,确定正常任务的启动时间、中断进入时间和重新调度正常任务的时间;根据所述正常任务的启动时间、所述中断进入时间和所述重新调度正常任务的时间分别计算任务执行时间和中断执行时间;根据所述任务执行时间或所述中断执行时间,计算任务或中断的CPU占用率。采用本发明专利技术的技术方案能够达到软件实现分析线程占用CPU的目的,减少了使用硬件的成本,更加方便快捷的对线程进行调控,实用性更强。

A Method of Analyzing Threads'CPU Occupancy Based on MIPS

【技术实现步骤摘要】
一种基于MIPS分析线程占用CPU的方法
本专利技术涉及CPU使用率分析方法,尤其涉及一种基于MIPS分析线程占用CPU的方法。
技术介绍
MIPS(MillionInstructionsPerSecond),即每秒处理的百万级的机器语言指令数,是衡量CPU性能的指标。在选定uC/OS-II操作系统后,每秒处理指令的数量是固定的,如何分析各线程、中断的利用率是性能优化的重要途径。开发过程中时常会遇到性能优化的任务,我们首先需要了解程序中各个线程调度的时间、中断处理程序的CPU占比情况,便于问题分析定位。虽然有非常强大的开发工具,比如SuperTrace分析工具,但是需要特定的硬件支持,且价格也是非常昂贵,实用性并不好,并不一定能够提供给我们想要了解到的调试信息。基于此,本专利技术应运而生。
技术实现思路
为了对CPU性能更加优化,本申请提供了一种基于MIPS分析线程占用CPU的方法。本申请采用的技术方案是:一种基于MIPS分析线程占用CPU的方法,包括:按照指定优先级,确定正常任务的启动时间、中断进入时间和重新调度正常任务的时间;根据所述正常任务的启动时间、所述中断进入时间和所述重新调度正常任务的时间分别计算任务执行时间和中断执行时间;根据所述任务执行时间或所述中断执行时间,计算任务或中断的CPU占用率。当正常任务启动时,进入正常任务调度入口,记录正常任务线程的类型以及正常任务启动时间;当发生中断时,进入中断程序入口,记录中断的类型以及中断进入时间;当中断结束重新开始调度正常任务线程时,记录重新调度的正常任务线程的类型以及重新调度正常任务时间。所述计算任务执行时间,具体包括:线程切换线程或中断切换线程;当程序运行为线程切换线程时,根据优先级确定先调度线程和后调度线程的启动时间,后调度线程的启动时间减去先调度线程的启动时间,即为先调度线程的执行时间;当程序运行为中断切换线程时,根据调度策略,后调度中断启动时间减去先调度线程进入时间,即为先调度线程的执行时间。所述计算中断执行时间,具体为当前重新调度正常任务的时间减去中断进入时间。所述计算任务或中断的CPU占用率,具体为:计算线程或中断的执行时间后,累计总运行时间,各任务或中断执行时间除以所述总运行时间,得到对应的任务或中断占用CPU的比例。所述方法还包括:在实际调用时,在需要分析的任务或中断的起始位置加上MIPS分析函数,其中,所述MIPS分析函数的第一形参用来标识操作类型,包括正常任务的启动或中断进入或重新调度正常任务;第二形参标识中断类型或者线程优先级,用于区分具体的线程或中断类型。本专利技术取得的有益效果是:采用本专利技术的技术方案能够达到软件实现分析线程占用CPU的目的,减少了使用硬件的成本,更加方便快捷的对线程进行调控,实用性更强。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的提供了一种基于MIPS分析线程占用CPU的方法流程图;图2是本专利技术提供的任务或中断时序图。具体实施方式下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。uC/OS-II操作系统是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。uC/OS-II是一种基于优先级的可抢占的硬实时内核。uC/OS-II操作系统的执行策略和中断策略:大部分程序中存在多个线程,线程1,线程2,.....线程n,中断类型1,中断类型2,....中断类型n,每个线程或中断都分配了唯一的优先级,系统会按照优先级来调度各个线程或中断,因此通过优先级来区分要执行的是线程或中断。基于以上执行策略和中断策略,本实施例提供了一种基于MIPS分析线程占用CPU的方法,程序开发非常简便,而且可以详细的记录每个线程、中断的占用时间,如图1所示,具体方法如下:步骤S1:按照指定优先级,确定正常任务的启动时间、中断进入时间和重新调度正常任务的时间;当正常任务启动时,进入正常任务调度入口,记录正常任务线程的类型以及正常任务启动时间;当发生中断时,进入中断程序入口,记录中断的类型以及中断进入时间;当中断结束重新开始调度正常任务线程时,记录重新调度的正常任务线程的类型以及重新调度正常任务时间。预先定义一个二维数组,用于在程序运行时存储各个任务或中断进入的时间以及类型,定义的二维数组为:#defineOS_DBG_TBL_L100unsignedintindex=0;unsignedintMipsTracker[OS_DBG_TBL_L][2]。其中,记录各任务或中断的时间是通过调用GetCurrentTime(),来获取当前的时间作为对应的各任务或中断的进入或启动时间。参见图2,图中横轴为时间轴T,纵轴为优先级,随着优先级的顺序沿着时间轴执行任务或中断,其中,T0为任务A的起始时间、T1为中断A的进入时间、T2为重新调度正常任务B的起始时间或中断A的退出时间、T3为中断B的进入时间、T4为重新调度正常任务C的起始时间或中断B的退出时间。步骤S2:计算任务执行时间和中断执行时间,并保存至对应的任务或中断类型表中;中断执行时间:当前重新调度正常任务的时间减去中断进入时间,即为中断的执行时间;任务的执行时间:包括两种情况,即线程切换线程或中断切换线程;线程切换线程时间具体为,根据优先级确定先调度线程和后调度线程的启动时间,后调度线程的启动时间减去先调度线程的启动时间,即为先调度线程的执行时间;中断切换线程时间具体为,根据调度策略,后调度中断启动时间减去先调度线程进入时间,即为先调度线程的执行时间。例如,图2中,任务A的执行时间为中断A的进入时间T1减去任务A的起始时间T0;中断A的执行时间为调度正常任务B的起始时间T2减去中断A的进入时间T1;任务B的执行时间为中断B的进入时间T3减去调度正常任务B的起始时间T2;中断B的执行时间为调度正常任务C的起始时间T4减去中断B的进入时间T3,以此类推。预先定义两个一维数组,一个用于在程序运行过程中记录每个任务的执行时间,另一个用于在程序运行过程中记录每个中断的执行时间;定义的两个一维数组为:#defineMAX_TASK20#defineMAX_IRQ20UnsignedintTASK_Occupy[MAX_TASK];UnsignedintIRQ_Occupy[MAX_IRQ];UnsignedintTotalTime=0。步骤S3:根据任务执行时间和中断执行时间,计算任务和中断的CPU占用率并输出。具体的,在计算当前线程或中断的执行时间后,累计总运行时间,每个任务或中断执行时间除以总运行时间,就是这个任务和中断类型占用CPU的比例。本申请通过上述方本文档来自技高网...

【技术保护点】
1.一种基于MIPS分析线程占用CPU的方法,其特征在于,包括:按照指定优先级,确定正常任务的启动时间、中断进入时间和重新调度正常任务的时间;根据所述正常任务的启动时间、所述中断进入时间和所述重新调度正常任务的时间分别计算任务执行时间和中断执行时间;根据所述任务执行时间或所述中断执行时间,计算任务或中断的CPU占用率。

【技术特征摘要】
1.一种基于MIPS分析线程占用CPU的方法,其特征在于,包括:按照指定优先级,确定正常任务的启动时间、中断进入时间和重新调度正常任务的时间;根据所述正常任务的启动时间、所述中断进入时间和所述重新调度正常任务的时间分别计算任务执行时间和中断执行时间;根据所述任务执行时间或所述中断执行时间,计算任务或中断的CPU占用率。2.如权利要求1所述的方法,其特征在于,当正常任务启动时,进入正常任务调度入口,记录正常任务线程的类型以及正常任务启动时间;当发生中断时,进入中断程序入口,记录中断的类型以及中断进入时间;当中断结束重新开始调度正常任务线程时,记录重新调度的正常任务线程的类型以及重新调度正常任务时间。3.如权利要求1所述的方法,其特征在于,所述计算任务执行时间,具体包括:线程切换线程或中断切换线程;当程序运行为线程切换线程时,根据优先级确定先调度线程和后调度线程的启动时间,后调...

【专利技术属性】
技术研发人员:游谊张小琴鲍东山
申请(专利权)人:上海新岸线电子技术有限公司
类型:发明
国别省市:上海,31

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

1