一种检测任务运行性能的方法和系统的制作方法

文档序号:6537301阅读:177来源:国知局
一种检测任务运行性能的方法和系统的制作方法
【专利摘要】本申请提供一种检测任务运行性能的方法,应用于嵌入式实时操作系统中,操作系统中有至少一个任务,包括:在预设检测周期内,检测操作系统中的各个任务状态,当检测到操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,任务状态转换记录包括:任务的识别信息、转换类型以及转换时刻的计时值;统计记录得到统计结果;基于统计结果,分析检测周期内操作系统的任务运行性能。本方法中,通过对操作系统中所有任务的状态转换以及状态转换发生的时间点进行记录统计,根据该统计的结果可得到在本检测周期中操作系统的所有任务运行情况,依据该统计结果对检测周期中任务运行性能进行分析,能够实现对操作系统中任务运行性能进行全面检测。
【专利说明】一种检测任务运行性能的方法和系统
【技术领域】
[0001]本发明属于操作系统领域,尤其涉及一种检测任务运行性能的方法和系统。
【背景技术】
[0002]嵌入式实时操作系统(EmbeddedReal-time Operation System, RTOS)对实时性的要求很高,而任务作为操作系统中的主要执行对象,其时间特性也直接影响到整个系统的实时性。任务的时间特性主要包括了任务执行的时间长度,对于周期性任务还包括执行周期的准确性。因此,监测整个系统中任务运行性能对于衡量操作系统的实时性、以及对于任务划分架构都具有重要的意义。
[0003]现有技术中,对嵌入式实时操作系统中任务运行性能的检测,主要包括两种,第一种是对系统CPU占用率的测试,第二种是对系统中调度性能的测试。对系统CPU占用率的测试,是通过统计一段时间内的任务和中断时间来计算这段时间内的CPU占用率,但是无法得到测试时间内所有任务的运行情况。而采用对系统中调度性能的测试时,不能衡量当前系统中任务运行的情况。所以,无论采用哪种检测方式,都不能对系统中各个任务的运行时间、任务被强占的情况、任务执行周期等运行情况进行全部掌握。
[0004]因此,提供一种能够全面检测操作系统中任务运行性能的方法和系统,是本领域技术人员亟待解决的问题。

【发明内容】

[0005]有鉴于此,本发明的目的在于提供一种检测任务运行性能的方法和系统,以实现对操作系统中任务运行性能进行全面检测。
[0006]一种检测任务运行性能的方法,所述方法应用于嵌入式实时操作系统中,所述操作系统中有至少一个任务,包括:
[0007]在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,所述任务状态转换记录包括:所述任务的识别信息、转换类型以及转换时刻的计时值;
[0008]统计所述记录得到统计结果;
[0009]基于所述统计结果,分析所述检测周期内操作系统的任务运行性能。
[0010]上述的方法,优选的,所述操作系统中设置有系统计数器和硬件定时器,统计在预设检测周期内操作系统中的各个任务状态转换记录之前,还包括:
[0011]接收检测指令,依据所述检测指令开始计时并实时检测操作系统中各个任务状态;
[0012]其中,所述开始计时包括:启动所述系统计数器和所述硬件定时器开始计时,所述系统计数器记录系统滴答次数,所述系统滴答次数为硬件定时器的执行循环次数,所述硬件定时器记录硬件定时器的当前值,所述系统计数器的计数值和所述硬件定时器的计数值用于计算计时值。[0013]上述的方法,优选的,任务状态的转换类型包括:任务启动或任务结束。
[0014]上述的方法,优选的,当所述操作系统提供了具有监视功能的程序时,所述任务状态发生转换时调用所述具有监视功能的程序,则实时检测操作系统中各个任务状态包括:检测所述具有监视功能的程序中的第一数据记录代码,分析所述第一数据记录代码判断得到任务发生状态转换并得到状态的转换类型;
[0015]当所述操作系统没有提供具有监视功能的程序时,所述任务的起始和结束处添加有第二数据记录代码,则实时检测操作系统中各个任务状态包括:检测所述任务起始或结束处的第二数据记录代码,分析所述第二数据记录代码判断得到所述任务发生状态转换并得到状态的转换类型。
[0016]上述的方法,优选的,所述统计结果以数组形式统计,所述数组中包含数组深度、所述任务的编号、所述任务的转换类型和任务状态转换时的当前计时值;
[0017]其中,当操作系统中没有非周期性任务时,所述数组深度是依据检测周期时长和操作系统中任务的运行周期计算得到的;当操作系统中存在非周期性任务时,所述数组深度是依据检测周期、操作系统中任务的运行周期结合非周期性任务的触发次数计算得到的。
[0018]上述的方法,优选的,基于所述统计结果,分析所述检测周期内各任务运行性能,包括:
[0019]根据所述统计结果中的任务状态转换记录和转换时刻的计时值,计算各个任务转换的时间点;
[0020]结合操作系统中的各个任务转换的时间点,分析所述检测周期内操作系统的任务运行性能。
[0021]一种检测任务运行性能的系统,所述系统应用于嵌入式实时操作系统中,所述操作系统中有至少一个任务,包括:
[0022]检测模块,用于在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,所述任务状态转换记录包括:所述任务的识别信息、转换类型以及转换时刻的计时值;
[0023]统计模块,用于统计所述记录得到统计结果;
[0024]分析模块,用于基于所述统计结果,分析所述检测周期内操作系统的任务运行性倉泛。
[0025]上述的系统,优选的,还包括:
[0026]接收模块,用于接收检测指令,并触发所述检测模块;
[0027]计时模块,用于依据所述检测指令开始计时;
[0028]其中,所述开始计时包括:启动系统计数器和硬件定时器开始计时,其中,所述系统计数器记录系统滴答次数,所述系统滴答次数为硬件定时器的执行循环次数,所述硬件定时器记录硬件定时器的当前值,所述系统计数器的计数值和所述硬件定时器的计数值用于计算计时值。
[0029]上述的系统,优选的,所述检测模块包括:第一检测单元和第一获取单元,或者,第二检测单元和第二获取单元;
[0030]其中,所述第一检测单元,用于当所述操作系统提供了具有监视功能的程序时,所述任务状态发生转换时调用所述具有监视功能的程序,检测所述具有监视功能的程序中的第一数据记录代码;
[0031]所述第一获取单元,用于分析所述第一数据记录代码判断得到任务发生状态转换,并得到状态的转换类型;
[0032]所述第二检测单元,用于当所述操作系统没有提供具有监视功能的程序时,所述任务的起始和结束处添加有第二数据记录代码,检测所述任务起始或结束处的第二数据记录代码;
[0033]所述第二获取单元,用于分析所述第二数据记录代码判断得到所述任务发生状态转换,并得到状态的转换类型。
[0034]上述的系统,优选的,所述分析模块包括:
[0035]计算单元,用于根据所述统计结果中的任务状态转换记录和转换时刻的计时值,计算各个任务转换的时间点;
[0036]分析单元,用于结合操作系统中的各个任务转换的时间点,分析所述检测周期内操作系统的任务运行性能。
[0037]经由上述的技术方案可知,本申请提供一种检测任务运行性能的方法,应用于嵌入式实时操作系统中,所述操作系统中有至少一个任务,包括:在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,所述任务状态转换记录包括:所述任务的识别信息、转换类型以及转换时刻的计时值;统计所述记录得到统计结果;基于所述统计结果,分析所述检测周期内操作系统的任务运行性能。。本方法中,通过对操作系统中所有任务的状态转换以及状态转换发生的时间点进行记录统计,根据该统计的结果可得到在本检测周期中操作系统的所有任务运行情况,依据该统计结果对检测周期中任务运行性能进行分析,能够实现对操作系统中任务运行性能进行全面检测。
【专利附图】

【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1是本申请提供的一种检测任务运行性能的方法实施例1的流程图;
[0040]图2是本申请提供的一种检测任务运行性能的方法实施例2的流程图;
[0041]图3是本申请提供的一种检测任务运行性能的方法实施例2中任务运行时间检测执行图;
[0042]图4是本申请提供的一种检测任务运行性能的方法实施例3的部分流程图;
[0043]图5是本申请提供的一种检测任务运行性能的方法实施例3中系统计数器的计数值与硬件定时器的计数值的获取方式图;
[0044]图6是本申请提供的一种检测任务运行性能的方法实施例3中检测分析图;
[0045]图7是本申请提供的一种检测任务运行性能的系统实施例1的结构示意图;
[0046]图8是本申请提供的一种检测任务运行性能的系统实施例2的结构示意图;[0047]图9是本申请提供的一种检测任务运行性能的系统实施例2的部分结构示意图;
[0048]图10是本申请提供的一种检测任务运行性能的系统实施例3的部分结构示意图。
【具体实施方式】
[0049]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]本申请中提供的一种检测任务运行性能的方法和系统,应用于嵌入式实时操作系统中,该操作系统包括:U Tenux、DJYOS> Vxfforks> μ C/0S-11、μ Clinux (micro-controlLinux,微控制 Linux)、eCos (embedded Configurable operating system,嵌入式可配置操作系统)、RTXC (Real 一 Time executive in C,C语言的实时执行体),该操作系统中有多个任务。
[0051]参见图1,示出了本申请提供的一种检测任务运行性能的方法实施例1的流程图,包括:
[0052]步骤SlOl:在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录;
[0053]操作系统中有多个任务,可以为运行状态也可以为停止状态。
[0054]预设检测周期,在该检测周期内对操作系统中的各个任务的运行状态转换的情况进行检测并记录,得到任务状态转换记录。
[0055]其中,所述任务状态转换记录包括:当检测到所述操作系统中任一任务状态发生转换时,该任务的识别信息、转换类型以及转换时刻的计时值;
[0056]每个任务均有识别信息,任意一个任务的状态发生转换时,记录该任务的识别信息、状态转换的类型和本次转换时刻的计时值。
[0057]步骤S102:统计所述记录得到统计结果;
[0058]对检测周期中的各个任务的记转换录进行统计,得到统计结果。
[0059]步骤S103:基于所述统计结果,分析所述检测周期内操作系统的任务运行性能。
[0060]该统计的结果中包含操作系统中,在该检测周期内的所有的任务发生状态转换的情况,根据该统计的结果可得到在本检测周期中操作系统的所有任务运行情况,因此,依据该统计结果对检测周期中任务运行性能进行分析,能够实现对操作系统中任务运行性能进行全面检测。
[0061]综上,本申请实施例1提供的一种检测任务运行性能的方法,通过对操作系统中所有任务的状态转换进行记录统计,根据该统计的结果可得到在本检测周期中操作系统的所有任务运行情况,依据该统计结果对检测周期中任务运行性能进行分析,能够实现对操作系统中任务运行性能进行全面检测。
[0062]操作系统中,设置有系统计数器和硬件定时器,用于对任务转换的时间进行记录。
[0063]参见图2,示出了本申请提供的一种检测任务运行性能的方法实施例2的流程图,图1所示流程中,步骤SlOl之前,还包括:
[0064]步骤S201:接收检测指令,依据所述检测指令开始计时并实时检测操作系统中各个任务状态。
[0065]其中,该检测指令可以为预先设置完成,操作系统启动时发送的检测指令,也可为操作系统启动后才设置发送的检测指令,本实施例中不做限制。
[0066]其中,所述开始计时包括:启动系统计数器和硬件定时器开始计时,其中,所述系统计数器记录系统滴答次数,该系统滴答次数就是硬件定时器的循环次数,所述硬件定时器记录硬件定时器的当前值,即当前循环周期内的时间点,该硬件定时器记录的为系统循环次数。
[0067]根据该系统计数器的计数值和硬件定时器的计数值可计算计时值,即任务发生状态转换时,根据系统计数器的计数值和硬件定时器的计数值就能够得到任务状态转换的时刻。
[0068]由于硬件定时器的测量精度为微秒级别,则本申请实施例中对任务状态检测时的检测精度也为微秒级。
[0069]实时检测操作系统中各个任务状态可以有两种方式:一种为操作系统提供了具有监视功能的程序,利用该程序对操作系统中的任务进行检测,另一种为操作系统没有在任务状态转换时提供具有监视功能的程序,则利用任务的程序本身进行检测。
[0070]当所述操作系统提供了具有监视功能的程序时,所述任务状态发生转换时调用所述具有监视功能的程序,实时检测操作系统中各个任务状态包括:检测所述具有监视功能的程序中的第一数据记录代码,分析所述第一数据记录代码判断得到任务发生状态转换并得到状态的转换类型;在任务状态转换时,记录该任务、转换类型以及转换时刻的计时值。
[0071]该具有监视功能的程序可以为hook(钩子)函数应用程序,通过该hook函数应用程序可以安装一个钩子函数来监视系统中消息的往来,如OSEK/VDX OS (Operatimg System,操作系统)中当任务由Ready变成Running时提供PreTaskHook,当任务离开Running时提供PostTaskHook,在该监视功能的程序中添加第一数据记录代码,检测该第一数据记录代码就可得知任务运行时的状态转换情况。
[0072]如图3所示,为利用hook函数检测任务状态的任务运行时间检测执行图,图中Test Time表示预设检测周期,Task ID为当前检测的任务编号,TaskState为任务的状态,用“0”表示任务启动,用“255”表示任务结束,System Tick为当前系统计数器内的滴答值,Timer Value表示当前硬件定时器内的值。
[0073]当然,该hook函数应用程序只是具有监视功能的程序中的一种,具体实施中,也可根据实际情况设置其他的具有监视功能的程序,此处不再赘述。
[0074]当所述操作系统没有提供具有监视功能的程序时,所述任务的起始和结束处添加有第二数据记录代码,实时检测操作系统中各个任务状态包括:检测所述任务起始或结束处的第二数据记录代码,分析所述第二数据记录代码判断得到所述任务发生状态转换并得到状态的转换类型。
[0075]其中,该第一数据记录代码和第二数据记录代码可以为相同的数据记录代码,为了使操作系统中提供具有监视功能的程序和未提供具有监视功能的程序时,均不影响测试过程。
[0076]在实际实施中,可在监视程序中实时的将记录的检测数据上传到上位机,在上位机进行数据的收集及分析。[0077]若所使用的芯片内存容量较大,可将所测数据统一存到指定的数组中,而不是实时的上传到上位机或其他检测工具,这样可尽量减少因为时间检测程序的加入对原工程的影响,同时减少因数据的实时上传带来额外的时间延迟。具体的,可在操作系统中设置最高优先级的任务。该任务专门用于检测任务结束后,将检测得到的任务状态转换记录上传到上位机中。
[0078]例如OSEK/VDX 0S中,可将该上传的任务设置为报警激活的任务,该报警时长为预设检测周期时长,当检测时间到达后,会激活该任务,将检测任务状态转换记录或者统计结果上传到上位机中。
[0079]以数组的形式对检测得到的任务状态转换记录进行统计。
[0080]如表1所示,统计结果的数组中包含数组深度Test Count、所述任务的识别信息Task ID、所述任务的转换类型Task State和任务状态转换时的当前计时值,该任务状态转换时的当前计时值包括:系统计数器的计数值System Tick和硬件定时器的计数值TimerValue。
【权利要求】
1.一种检测任务运行性能的方法,其特征在于,所述方法应用于嵌入式实时操作系统中,所述操作系统中有至少一个任务,包括:在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,所述任务状态转换记录包括:所述任务的识别信息、转换类型以及转换时刻的计时值;统计所述记录得到统计结果;基于所述统计结果,分析所述检测周期内操作系统的任务运行性能。
2.根据权利要求1所述的方法,其特征在于,所述操作系统中设置有系统计数器和硬件定时器,统计在预设检测周期内操作系统中的各个任务状态转换记录之前,还包括:接收检测指令,依据所述检测指令开始计时并实时检测操作系统中各个任务状态;其中,所述开始计时包括:启动所述系统计数器和所述硬件定时器开始计时,所述系统计数器记录系统滴答次数,所述系统滴答次数为硬件定时器的执行循环次数,所述硬件定时器记录硬件定时器的当前值,所述系统计数器的计数值和所述硬件定时器的计数值用于计算计时值。
3.根据权利要求1所述的方法,其特征在于,任务状态的转换类型包括:任务启动或任务结束。
4.根据权利要求2所述的方法,其特征在于,当所述操作系统提供了具有监视功能的程序时,所述任务状态发生转换时调用所述具有监视功能的程序,则实时检测操作系统中各个任务状态包括:检测所述具有监视功能的程序中的第一数据记录代码,分析所述第一数据记录代码判断得到任务发生状态转换并得到状态的转换类型;`当所述操作系统没有提供具有监视功能的程序时,所述任务的起始和结束处添加有第二数据记录代码,则实时检测操作系统中各个任务状态包括:检测所述任务起始或结束处的第二数据记录代码,分析所述第二数据记录代码判断得到所述任务发生状态转换并得到状态的转换类型。
5.根据权利要求1所述的方法,其特征在于,所述统计结果以数组形式统计,所述数组中包含数组深度、所述任务的编号、所述任务的转换类型和任务状态转换时的当前计时值;其中,当操作系统中没有非周期性任务时,所述数组深度是依据检测周期时长和操作系统中任务的运行周期计算得到的;当操作系统中存在非周期性任务时,所述数组深度是依据检测周期、操作系统中任务的运行周期结合非周期性任务的触发次数计算得到的。
6.根据权利要求2所述的方法,其特征在于,基于所述统计结果,分析所述检测周期内各任务运行性能,包括:根据所述统计结果中的任务状态转换记录和转换时刻的计时值,计算各个任务转换的时间点;结合操作系统中的各个任务转换的时间点,分析所述检测周期内操作系统的任务运行性能。
7.—种检测任务运行性能的系统,其特征在于,所述系统应用于嵌入式实时操作系统中,所述操作系统中有至少一个任务,包括:检测模块,用于在预设检测周期内,检测所述操作系统中的各个任务状态,当检测到所述操作系统中任一任务状态发生转换时,生成任务状态转换记录,其中,所述任务状态转换记录包括:所述任务的识别信息、转换类型以及转换时刻的计时值; 统计模块,用于统计所述记录得到统计结果; 分析模块,用于基于所述统计结果,分析所述检测周期内操作系统的任务运行性能。
8.根据权利要求7所述的系统,其特征在于,还包括: 接收模块,用于接收检测指令,并触发所述检测模块; 计时模块,用于依据所述检测指令开始计时; 其中,所述开始计时包括:启动系统计数器和硬件定时器开始计时,其中,所述系统计数器记录系统滴答次数,所述系统滴答次数为硬件定时器的执行循环次数,所述硬件定时器记录硬件定时器的当前值,所述系统计数器的计数值和所述硬件定时器的计数值用于计算计时值。
9.根据权利要求7所述的系统,其特征在于,所述检测模块包括:第一检测单元和第一获取单元,或者,第二检测单元和第二获取单元; 其中,所述第一检测单元,用于当所述操作系统提供了具有监视功能的程序时,所述任务状态发生转换时调用所述具有监视功能的程序,检测所述具有监视功能的程序中的第一数据记录代码; 所述第一获取单 元,用于分析所述第一数据记录代码判断得到任务发生状态转换,并得到状态的转换类型; 所述第二检测单元,用于当所述操作系统没有提供具有监视功能的程序时,所述任务的起始和结束处添加有第二数据记录代码,检测所述任务起始或结束处的第二数据记录代码; 所述第二获取单元,用于分析所述第二数据记录代码判断得到所述任务发生状态转换,并得到状态的转换类型。
10.根据权利要求7所述的系统,其特征在于,所述分析模块包括: 计算单元,用于根据所述统计结果中的任务状态转换记录和转换时刻的计时值,计算各个任务转换的时间点; 分析单元,用于结合操作系统中的各个任务转换的时间点,分析所述检测周期内操作系统的任务运行性能。
【文档编号】G06F11/34GK103744772SQ201410042181
【公开日】2014年4月23日 申请日期:2014年1月28日 优先权日:2014年1月28日
【发明者】王载琼, 张阳, 刘博
申请人:北京经纬恒润科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1