在实时系统中测量中央处理器任务占用率的方法和装置制造方法及图纸

技术编号:2878566 阅读:201 留言:0更新日期:2012-04-11 18:40
一种用于在实时系统中测量任务的CPU占用率的装置。该装置包括:用于在标志位中注册待测任务的任务注册单元,以及用于在设置的标志位中选择和输出具有高优先级的任务的位地址的任务选择模块。还包括用于处理由任务选择模块输入的位地址以生成计数信号的计数信号发生单元,以及根据计数信号计数任务执行时间的计数单元。CPU可以在任务执行时设定标志位并根据由计数单元生成的计数值计算执行次数和任务的CPU占用率。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及实时系统,特别涉及在实时系统中测量任务的CPU占用率的装置和方法。应用在实时系统中的调度机制分为根据相应任务优先级的速率单调(RM)调度、最早截止期优先(EDF)调度和加权整形队列(WFQ)调度,其根据调度比率共享CPU。附图说明图1显示了根据现有技术的采用速率单调调度的实时系统的示意结构图。如图1所示,实时系统10,即DCS包括用于存储与调度相关程序的ROM 11,用于下载由ROM 11读取的程序的RAM 12以及根据下载到RAM 12中的程序来执行多个任务的CPU 13。DCS与外部传输系统20实现了数据通信。在上述实时系统的操作中,CPU 13从ROM 11下载与速率单调调度相关的程序到RAM 12中,然后根据所下载相应程序来执行一项与速率单调调度系统相关联的任务。如果有多项任务与该速率单调调度系统相关,图2中所示的任务A、B和C的优先级由速率单调调度设定为任务A>任务B>任务C。CPU 13依次执行最高优先级的任务A,然后执行任务B,继而执行任务C。当正在执行任务C、但优先级高于任务C的任务B需要被执行时,CPU 13将中止执行任务C而先去执行任务B,然后执行任务C的剩余部分,即先前已经被处理但没被处理完的部分。同样,当有多个任务等待速率单调调度系统去执行时,实时系统应该设计成根据任务的优先级、周期以及其执行内容数量来平衡地执行所有的任务。比如说,参照图3,如果这些任务的执行周期被称为Ta、Tb和Tc,而其执行时间分别定为ta、tb和tc,这样任务A、B、C的CPU占用率就分别为ta/Ta、tb/Tb、tc/Tc。在这种情况下所有任务的CPU总占有率(ta/Ta+tb/Tb+tc/Tc)将小于1。然而,总的CPU占有率小于1就不能保证每一项任务在其周期内正确地执行。这是因为低优先级的任务不能在其周期内执行,而且如果拥有高优先级的任务占用了其相应周期,那么该任务就极可能被延迟。比如,如果拥有更高优先级的任务A和B已经占用了CPU 13,在图3所示的所有任务中具有最低优先级的任务C就不能在其周期Tc中被执行,而且这种失效是很难被检测到的。此外,即使在现有技术的实时系统中若干任务被正确地执行了,但要测量每一项任务的CPU占用率却是不可能的。在需要CPU执行许多工作或生成辅助例程时来测量CPU的占用率也是很困难的。这项任务通常不能和其它任务共享CPU。遗憾的是,现有技术的实时系统不能检测到是否根据调度正确地执行了每项任务或者探测到相应任务的CPU占用率是多少。因而,该实时系统就不能获得每一项任务的精确平衡,也不能用任务设计和调试来反映CPU的占用率。在此引用上述参考文献以帮助更好地理解附加或可选的细节、特征和/或技术背景。本专利技术的一个目的是提供一种能够在实时系统中测量CPU任务占用率的装置和方法。本专利技术的另一个目的是提供一种能够检测是否每一项任务都在各自执行周期内被正确执行了的装置和方法。为了全部或部分地实现至少上述目的,在此提供了一种在实时系统中测量CPU任务占用率的装置,包括用于在标志位中注册待测任务的任务注册单元,用于在标志位中选择和输出具有高优先级标志位的任务的位地址的任务选择模块,用于处理由任务选择模块输入的位地址从而生成计数信号的计数信号发生单元。该装置还包括根据计数信号来计数任务执行时间的计数单元,以及用于在任务执行时设置标志位并计算执行次数的CPU。CPU任务占用率可以根据计数单元的计数值计算出来。从本专利技术的另一方面来说,用于测量实时系统CPU任务占用率的装置包括用以在标志位中注册待测任务的任务注册单元,用于存储已注册任务位地址的寄存器单元,用于出在标志位中选择和输具有高优先级标志位的任务的位地址的任务选择模块,其中在任务注册单元中设置标志位。该装置还包括通过运算从寄存器单元输出的位地址与从任务选择模块输出的地址来生成计数信号的逻辑运算单元,根据计数信号来计算任务执行时间的计数单元,以及用于在任务执行时设置标志位并计算执行次数的CPU。CPU任务占用率可以根据计数单元的计数值计算出来。从本专利技术的下一方面来说,用于测量实时系统CPU任务占用率的装置包括用以在标志位中注册待测任务的任务注册单元,用于在标志位中选择和输出具有高优先级的标志位地址的任务选择模块,其中在任务注册单元中设置标志位。在此还提供了对由任务选择模块输出的位地址进行解码以生成计数信号的解码器,根据解码器的计数信号来计算任务执行时间的计数单元,以及用于在任务执行时设置标志位并计算执行次数的CPU。CPU任务占用率可以根据计数单元的计数值计算出来。从本专利技术的另一方面来说,一种用于测量实时系统CPU任务占用率的方法包括在标志位中注册任务,在任务执行时设置标志位,在至少一组标志位中的至少一个地址中输出更接近于最低有效位(LSB)的标志位的地址。该方法还包括通过对输出地址解码来生成计数信号,以及根据计数信号通过计算任务执行时间来计算CPU任务占用率。本专利技术的其它优点、目的和特征有一部分将在以下的说明书中进行阐述,有一部分则对于本领域的技术人员经过对以下内容的考察后会变得明了,或者通过本专利技术的实践而体验到。通过在说明书及其权利要求书以及附图具体指出的结构可以实现和获得本专利技术的目的和其它优点。附图为本专利技术提供了更深入的了解,并组成本申请的一部分,它们图示了本专利技术的优选实施例,并且和说明书一起解释本专利技术的原理。附图中图1是根据现有技术的RM调度的实时系统的示意结构图;图2是根据图1中优先级的所有任务的优选执行操作的时序图;图3是根据图2中任务执行周期的所有任务的非优选执行操作的时序图;图4是根据本专利技术第一优选实施例的用于测量实时系统CPU任务占用率的装置的结构方框图;图5是显示图4中测量实时系统CPU任务占用率操作的时序图;以及图6显示的是根据本专利技术第二个优选实施例的用于测量实时系统CPU任务占用率装置的结构方框图。优选实施例详细说明现在对本专利技术的优选实施例进行具体阐述,实例将结合附图进行说明。在实时系统中,每一项任务都应该在各自执行周期中执行。为了检测到每项任务是否在每个周期中均被执行,就必须每当一项任务在一个周期内被执行时,计数一个执行次数。比如说,如果任务A、B和C的周期分别是10ms、20ms和1s,那么在整个1000秒执行时间内任务A、B和C应该被执行100000、50000和1000次。因此本专利技术使用一个公共变量来计数任务执行次数并检测每一任务的执行次数。此外,本专利技术首先实际地测量每项任务的执行时间,并测量出被测执行时间和非执行时间之间的比例;然后计算出每项任务的系统执行占用率,即CPU占用率。图4是根据本专利技术的一个优选实施例的用于测量实时系统CPU任务占用率装置的结构方框图。如图4所示,用于测量实时系统中CPU任务占用率的装置包括用于注册待测任务的任务注册单元100,用于选择和输出任务位地址的任务选择模块110,其中的任务具有在任务注册单元100中由CPU 140设置的诸位中的高的优先级。该装置还包括用于处理由任务选择模块110输入的位地址以生成计数信号的计数信号发生单元120,用于根据计数信号发生单元110的计数信号来计数任务执行时间的计数单元130,以及用于设置任务注册单元100的任务注本文档来自技高网...

【技术保护点】
一种用于测量实时系统中任务的CPU占用率的装置,包括: 用于在标志位中注册待测任务的任务注册单元; 用于在设置的标志位中选择具有高优先级的标志位的地址的任务选择模块; 用于处理由任务选择模块输入的位地址并生成计数信号的计数信号发生单元; 用于根据计数信号来计数任务执行时间的计数单元;以及 用于在任务执行时设定标志位并根据由计数单元生成的计数值计算执行次数和任务的CPU占用率的CPU。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:李弘途廓荣璟
申请(专利权)人:LG电子株式会社
类型:发明
国别省市:KR[韩国]

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

1