实时系统性能测试指标

上传人:壹****1 文档编号:505305574 上传时间:2023-02-04 格式:DOC 页数:7 大小:114KB
返回 下载 相关 举报
实时系统性能测试指标_第1页
第1页 / 共7页
实时系统性能测试指标_第2页
第2页 / 共7页
实时系统性能测试指标_第3页
第3页 / 共7页
实时系统性能测试指标_第4页
第4页 / 共7页
实时系统性能测试指标_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实时系统性能测试指标》由会员分享,可在线阅读,更多相关《实时系统性能测试指标(7页珍藏版)》请在金锄头文库上搜索。

1、一、RhealstoneRhealstone是系统实时性的测量基准之一,Rhealstone方法对ERTOS中六个关键操作的时间量进行测量,并将它们的加权和称为Rhealstone数。这六个时间量如下:1 .任务切换时间(task switching time),也称上下文切换时间,定义为系统在两个独立的、处于就绪态并具有相同优先级的任务之间切换所需要的时间。它包括三个部分,即保存当前任务上下文的时间、调度程序选中新任务的时间和恢复新任务上下文的时间。切换所需的时间主要取决于保存任务上下文所用的数据结构以及操作系统采用的调度算法的效率2 .抢占时间(preemption time ),即系统将

2、控制从低优先级的任务转移到高优先级任务所花费的时间。为了对任务进行抢占,系统必须首先识别引起高优先级任务就绪的事件,比较两个任务的优先级,最后进行任务的切换,所以抢占时间中包括了任务切换时间。3. 中断延退时间(interrupt latency time ),指从中断第一条指令所持续的时间间隔.它由 四部分组成,即硬件延退部分(通常可以忽略不计)、ERTOS的关中断时间、处理器完成当 前指令的时间以及中断响应周期的时间。4. 信号量混洗时间(semaphore shuffling time),指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延退。在ERTOS中,通常有许多任务同时

3、竞争某一共享资源,基于信号量的互斥访问保证了任一时刻只有一个任务能够访问公共资源。信号量混洗时间反映了与互斥有关的时间开销,因此也是衡量ERTOS实时性能的一个重要指标。5. 死锁解除时间(deadlock breaking time),即系统解开处于死锁状态的多个任务所需花费的时间。死锁解除时间反映了RTOS解决死锁的算法的效率。6. 数据包吞吐率(datagram throuShput time),指一个任务通过调用ERTOS的原语,把数 据传送到另一个任务去时,每秒可以传送的字节数。二、关键的性能指标分析一个实时操作系统的实时性能的主要评测指标包括上下文切换时间,抢占时间,中断延退时间,

4、信号量混洗时间。具体含义如下:1. 上下文切换时间上下文切换时间也称任务切换时间(task switching time),定义为系统在两个独立的、处于就绪态并且具有相同优先级的任务之间切换所需要的时间。它包括三个部分,即保存当前任务上下文的时间、调度程序选中新任务的时间和恢复新任务上下文的时间。切换所需的时间主要取决于保存任务上下文所用的数据结构以及操作系统采用的调度算法的效率。产生任务切换的原因可以是资源可得,信号量的获取等。任务切换是任一多任务系统中基本效率的测量点,它是同步的,非抢占的,实时控制软件实现了一种基于同等优先级任务的时间片轮转算法。影响任务切换的因素有:主机 CPU的结构,

5、指令集以及 CPU特性。任务切换过程增加了应用程序的额外负荷。CPU的内部寄存器越多,额外负荷就越重。任务切换所需要的时间取决于 CPU有多少寄存器要入栈。实时内核的性能不应该以每秒钟能做多少次任务切换来评价,RTOS中通常是1微秒左右。Figure 。 1.: Context Switch TimeT1 = TIME START FOR FUNCTION “OS_TASK_SW。(任务切换宏)T2 = TIME END FOR FUNCTION “OS_TASK_SW。CST= T2-T12. 抢占时间(preemption time )抢占时间即系统将控制权从低优先级的任务转移到高优先级任

6、务所花费的时间。为了对任务进行抢占,系统必须首先识别引起高优先级任务就绪的事件,比较两个任务的优先级, 最后进行任务的切换,所以抢占时间中包括了任务切换时间。它和任务切换有些类似,但是抢占时间通常花费时间更长。这是因为执行中首先要确认唤醒事件,并评估正在运行的任务和请求运行的任务的优先级高低,然后才决定是否切换任务。实质上,所有的多处理任务可以在执行期间动态分配优先级,所以,抢占时间也是衡量实时性能的重要指标。TASK1TASK;TUTTT7Figure 2.2: Preemption TimePT = T2 - TO3. 中断延退(Interrupt Latency)中断延退时间是指从接收到

7、中断信号到操作系统做出响应,并完成进入中断服务例程所需要的时间。多任务操作系统中,中断处理首先进入一个中断服务的总控程序,然后才进入驱动程序的ISR。中断延退时间=最大关中断时间+硬件开始处理中断到开始执行中断服务例程第一条指令之间的时间。所以,中硬件开始处理中断到开始执行中断服务例程的第一条指令之间的时间由硬件决定,断延退时间的长短主要取决于最大关中断的时间。硬实时操作系统的关中断时间通常是几微秒,而Linux最坏可达几毫秒。OS_TASSW()Ta = T1-T0OSInlExiXITTc = T5-T4Figure 2.3: Interrupt LatencyIL= Max(Ta,Tb,

8、Tc)4 .信号量混洗时间信号量混洗时间(semaphore shuffling time),是指从一个任务释放信号量到另一个等待该信 号量的任务被激活的时间延退。在 RTOS中,通常有许多任务同时竞争某一共享资源,基 于信号量的互斥访问保证了任一时刻只有一个任务能够访问公共资源。信号量混洗时间反映了与互斥有关的时间开销,因此也是衡量ERTOS实时性能的一个重要指标。TAS* IFigure 2.4: Semaphore Shuffling TimeSST = T0-T1三、测试方法1. 任务切换时间测试测试设计说明:测试项为协同式的任务调度时间,它是指具有相同优先级并且相互独立的两个就绪状态

9、的人物之间相互切换所花费的时间开销。它主要有保存当前任务上下文的时间,调度程序选中新任务的时间和恢复新任务上下文的时间这三部分组成。图 4.2给出了两个任务切换过程的示意图任务】等待同步信号切换任务发送侑垮st开刊计mH激活新任务Taskl:/获取新任务T网kl的激活时间:H挂起当前任务Task。;/进入循坏体更复执行K次;Task_Gefnmc(Tb(TASKO);/茯收任务Task。运行的时问:任务I图3.1两个任务切换过程的示意图这里假设测试任务用 TASK表示,TASKi表示第i个正在运行的任务,测试过程中为了 能够尽量减少系统的误差,这里我们采取给系统中设置多个任务,记为任务0到N-

10、1。同时各个任务间的切换是从 TASK0开始,到TASK1,这样一直切换下去,最后再从TASKN-1切换到最开始的任务TASK0。上述过程重复K次,就可以得到K个任务切换时间。在测试过程中,需要在任务的源代码中插入测试控制代码并记录时间。如下面代码1所示为任务TASK0插入测试控制代码后的伪代码执行流程。代码1/ 任务 TASKO/插入代码开始TaskRcsume(TASKl);Task GetTime(TASKl);Task S uspcnd( SELF);Save(Tb(TASK0Ta(TASKO);/ 保存 TaskO 与 Taskl 两任务网的切换时闾;TaskR esume(TAS

11、K 1 );Task_GetTime(Ta(TASK 1 );TaskSuspend(SELF);H激活任务Task I;H获取任务Taskl激活的时间:拜起当前任Taskl.-/捅入代码结束2. 任务抢占时间测试测试设计说明:测试项为抢占式的任务调度时间,大小取决于低优先级任务向高优先级任务切换所需要的时间开销。系统在进行任务抢占的时候,先区分出任务优先级的大小,找到优先级高的就绪事件,当发生任务切换时,高优先级的任务先被响应,这里抢占时间就已经把任务切换时间包含在内。该测试中包含 5个由高到低不同优先级的任务,各个任务在执行过程中会将自己的计 数器加1。在测试开始时,只有优先级最低的任务处

12、于就绪,其它任务都被挂起。优先级最 低的任务先唤醒优先级次低的任务被抢占,这样依次抢占下去后,最高优先级的任务获的 CPU使用权后又将自己挂起, 次高优先级的任务也将自己挂起,到最后优先级最低任务又获得CPU使用权,一个新的循环又开始。图 3.2是测试3的运行示意图:countLCountCountLCountICountnResunenResumeResumeResumeSuspendLooprTaskOSuspendLoopTaskl Suspend L8prTask2SuspendLgpITa5k3Loop图3.2抢占式的任务调度测试3. 中断管理性能测试测试设计说明:定义中断处理延退时

13、间是系统中断发生到中断服务程序中首条指令开始 运行之间的间隔所花费的时间。在测试过程中,为了能够测试系统中断延退时间的最差结果,可以选择一些如系统调用等对中断延退有比较大影响作用的一系列因素,并使中断服务程序绑定其对应的中断号,最后在程序的适当位置插入测量控制代码。如下面代码 2所示为一个 用于测量中断延退的测试负载的伪代码示例。代码2/中断服务程序TasGetlLmeTb); /获取开始执行中断服务程序的时间 t -Tb-Ta;计算中断延瑕的大小,用表示save(i);保存中断延退时间任* TASKi的开始 插入代码开始Task GctTime(Ta; /获取中断服备请求的时间/产生一次中断

14、H插入代码始束代码说明:代码2中函数call_init是用于生成系统中断, 实际过程中通常也采用软中断的方式。 这里我们假设Ta是系统中断请求开始的时间,Tb是系统中断服务程序被调用进行的时间,从而Tb-Ta的时间差就是中断延退。4 .信号混洗时间测试测试说明:IPC机制性能测试主要测试以下时间:创建一个同步/互斥对象的时间,删除一个同步/互斥对象的时间,获取一个同步 /互斥对象的时间,释放一个同步/互斥对象的时间。获取/释放信号量通常指从释放信号量到等待该信号量被重新激活所需要的时间间隔。测试 过程中,设计一个任务TASK1 ,该任务通过不断获取和释放信号量来模拟信号量的任务同步 功能。具体测试流程如下图 3.3所示。一一始厂开始_二X 任&TASKI ?任务TASK! JII-|Tid时SEMI_T1ME_O获取信号量SEMI :靖束 任务TASK】1)图3.3信号量获取与释放流程流程说明:获取信号量的时间=SEM_TIME_1-SEM_TIME_0(1)释放信号量的时间 =SEM_TIME_1-SEM_TIME_0(2)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号