引 言
随着计算机技术的迅速发展和芯片制造工艺的不断进步,ERTOS的研究和应用日益广泛,从民用的手机、电子书等手持移动设备到航空航天、医学设备、工业控制等各个领域都有它的身影。然而,在设计和选择ERTOS时,如何确定其是否能够满足所需的应用成为一个棘手的问题,必须用一种有效的方法对它们的各个方面进行对比测试,以选择符合要求的系统。本文首先分析三种常用的系统实时性能测试方法,接着介绍一套测试实验平台,对于ERTOS的测试和分析有一定的指导意义。
1 Rheaostone方法
Rhealstone方法对ERTOS中六个关键操作的时间量进行测量,并将它们的加权和称为Rhealstone数。这六个时间量如下:
◆任务切换时间(task switching time),也称上下文切换时间,定义为系统在两个独立的、处于就绪态并具有相同优先级的任务之间切换所需要的时间。它包括三个部分,即保存当前任务上下文的时间、调度程序选中新任务的时间和恢复新任务上下文的时间。切换所需的时间主要取决于保存任务上下文所用的数据结构以及操作系统采用的调度算法的效率。
◆抢占时间(preemption time),即系统将控制从低优先级的任务转移到高优先级任务所花费的时间。为了对任务进行抢占,系统必须首先识别引起高优先级任务就绪的事件,比较两个任务的优先级,最后进行任务的切换,所以抢占时间中包括了任务切换时间。
◆中断延迟时间(interrupt latency time),指从中断第一条指令所持续的时间间隔.它由四部分组成,即硬件延迟部分(通常可以忽略不计)、ERTOS的关中断时间、处理器完成当前指令的时间以及中断响应周期的时间。
◆信号量混洗时间(semaphore shuffling time),指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟。在ERTOS中,通常有许多任务同时竞争某一共享资源,基于信号量的互斥访问保证了任一时刻只有一个任务能够访问公共资源。信号量混洗时间反映了与互斥有关的时间开销,因此也是衡量ERTOS实时性能的一个重要指标。
◆死锁解除时间(deadlock breaking time),即系统解开处于死锁状态的多个任务所需花费的时间。死锁解除时间反映了RTOS解决死锁的算法的效率。
◆数据包吞吐率(datagram throuShput time),指一个任务通过调用ERTOS的原语,把数据传送到另一个任务去时,每秒可以传送的字节数。
2 进程分派延迟时间法
进程分派延迟时间PDLT(Process Dispatcb LatencyTime)是另一个常用的测量ERTOS性能的方法。在实时系统中,实时任务总是等待外部事件引发的中断来激活它。当一个中断产生后,系统必须迅速停止当前运行的低优先级任务,将控制权交给被激活的实时任务。PDLT定义为从中断的产生到由中断激活的实时任务开始执行之间的时间间隔。这段间隔由几个部分组成,如图1所示。
不同操作系统中,PDLT差异的主要部分是内核延迟部分。目前绝大多数ERTOS为了减少内核延迟,采用可抢占式的内核,有效地提高了系统对外部事件的响应速度。
文章来源于领测软件测试网 https://www.ltesting.net/