<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 意得法电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=386 </link><title>嵌入式实时操作系统性能测试方法研究</title><author>男人海洋</author><pubDate>2009-12-14 8:48:00</pubDate><description><![CDATA[引 言 [/b] 随着计算机技术的迅速发展和芯片制造工艺的不断进步，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所示。 <img border="0" src="/info/images/dpj/200508/4/4a.jpg" alt="" /> 不同操作系统中，PDLT差异的主要部分是内核延迟部分。目前绝大多数ERTOS为了减少内核延迟，采用可抢占式的内核，有效地提高了系统对外部事件的响应速度。 3 三维表示法 有人将实时系统定义为能够从外部进程获取输入，处理所获得的数据，并能在足够快的时间内将正确的响应返回给外部进程的系统。由这个定义，可以将ER丁OS的工作分为三个阶段： ◆响应传感器或者其他输入设备的请求，并获取数据； ◆对获得的数据进行处理(主要由应用程序进行处理)； ◆输出处理结果。 相应地，ERTOS的性能可以用对应的三个特性来描述： ◆CPU的计算能力，其度量单位为MIPSl(Millions of Instructions Per Second)； ◆中断处理能力，其度量单位为MIPS2(Millions of Interrupts Per Second)； ◆I／O吞吐率，其度量单位为MIPS3(Millions of I／O Per Second)。 上述三个特性的最大值可分别单独测得，但这三个特性之间并不是相互独立的。为了直观地表现ERTOS的实时性能，可以用一个三维的图形来表达三个特性之间的依赖关系，如图2所示。 <img border="0" src="/info/images/dpj/200508/4/4b.jpg" alt="" /> 图2中用曲面来表现ER70S三个特性之间的依赖关系。如果随着一个特性的增加，另外两个特性下降的速度比较缓慢，可以认为该曲面所表现的系统是ERTOS；反之，如果随着一个特性的增加，另外两个特性下降的速度超过了一定的范围，就可以认为该系统非ERTOS，如图2中的阴影部分所示。 4 系统实时性能测试实验平台 为了对RTOS的实时性能进行测试，我们设计并实现了一套测试实验平台。实验平台由两块开发板(被测系统)构成，便于对不同的ERTOS进行对比。由于实验平台的主要设计目标是对相同硬件架构下的不同操作系统及操作系统的不同层次进行比较，所以两块开发板均采用了研华的PCM 7230。其主要硬件特性如下： CPU：Intel Xscale PXA255 400MHz SDRAM：64 MB LCD：10.4&rdquo; I／O接口：CompactFlash、PCMCIA、RS232、RS485、 USB、Ethernet等。 实验平台的整体结构如图3所示。 <img border="0" src="/info/images/dpj/200508/4/4c.jpg" alt="" /> 4.1 实验平台功能 (1)实时性能测试 由于大多数ERTOS的内核是不可更改的，所以对其实时性能的测试主要在用户层实现。开发者可以将现有的用于测量Rhealstone性能指标和PDLT延迟时间的benchmark程序方便地移植到PCM 7230开发板与不同RTOS组合的平台上，也可以根据应用需要自己编写测试程序，对感兴趣的延迟时间进行测量。 除此之外，PCM7230开发板从CPU引脚上引出了一个120针的扩展接口AMI-120(<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_02.html" target="_blank" jquery1260751353095="35">ARM</a> Module Interface)。将这120针引脚引出至实验平台上的两个测试端口1和2，可以通过示波器或逻辑分析仪对引脚上的信号进行分析；配合benchmark测试，可以得出更加精确和可信的测试结果。另外，对引脚中的部分控制信号通过CPLD单独引出至一个测试端口3，便于对不同的系统进行对比测试。 (2)负荷发生 由三维表示法得知，ERTOS的实时性能可以用三个特性来表示。相应地，实验平台可以产生三种类型的负荷；计算负荷(CPU负荷)、I／O负荷以及中断负荷。 计算负荷由I)hrystone或Whetstone改编的进程实现，每秒钟消耗一定的MIPS数。 I／0负荷由系统时钟控制，通过PCM 7230开发板上丰富的I／O接口产生流量。另外，通过配置不同的I／O接口，还可以测试不同存储介质对ERTOS性能的影响。 中断负荷的产生可以用CPLD进行控制．通过DIP开关设置中断发生的频率，在CPLD中实现一个分频器用于产生中断信号，并将中断信号通过AMI-120接口中的GPIO引脚传送给CPU。 在进行ERTOS实时性能的测试时，这三类负荷可以模拟应用的真实环境。另外，通过指定三种负荷的变化，可以获得它们在三维图中的一系列坐标点，由此也可以绘制ERTOS的三维表示曲面。 此外，由于CPLD为可编程器件，方便对其再编程以重新定义与其相连的各种器件的功能，使得测试平台有很大的灵活性和扩展性。 4.2 计时方法 评价ERTOS实时性能的具体指标多数是用延迟时间来表示的，比如Rhealstone方法中的前五个指标和PDLT方法。可以将这些对时间的测量过程简化为图4所示的流程。 <img border="0" src="/info/images/dpj/200508/4/4d.jpg" alt="" /> 图4中对t1、t2的计时可以用以下三种方法实现。 (1)系统调用 ERTOS一般有用于计时的系统调用，例如RTLlnux的系统调用gettimeofday()，其精度可以达到&mu;s级，可以满足多数延迟时间的计时。但是，由于系统调用时有一个压栈、出栈的过程，以及从用户空间到系统空间的转换，这个过程对计时会产生一定的影响。 (2)OS时钟寄存器 PXA 255处理器内包含一个32位的OS时钟寄存器，由一个3.6864 MHz的晶振驱动。可以在计时开始和结束时分别读取该寄存器的值，换算出对应的延迟时间。 (3)GPIO引脚 AMI-120接口上有许多GPIO引脚，可以考虑在计时往一个空闲的GPIO引脚上写一个特定的信号，利用CPLD中实现的计数器对两个信号间的时间间隔进行计数。驱动CPLD的时钟是可以更换的，其最大允许频率为200 MHz。这样，考虑到CPLD的引脚间延迟，用这种方法计时的精度可以达到数+ns。 5 ERTOS对比测试 操作系统是数字系统中进行资源管理的软件。狭义的操作系统只包括进行进程管理、内存管理、中断管理等基本功能的内核部分；而广义上讲，操作系统除了内核外，还包括GUI、API、大量的驱动程序，甚至一些应用程序也可以认为是操作系统的一部分。现代操作系统在其内部提供了丰富的功能模块，而<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1260751353095="36">嵌入式</a>操作系统的一个显著的特点就是，可以根据需要对这些功能模块进行裁剪。典型的ERTOS层次结构如图5所示。 <img border="0" src="/info/images/dpj/200508/4/4e.jpg" alt="" /> 操作系统提供的功能模块一方面扩展了系统的功能，方便了用户的使用；另一方面，又在一定程度上会影响系统的性能。ERTOS在对系统的功能进行选择和剪裁时，就需要在功能和性能之间选择一个折中点，使得系统能够提供尽可能多的功能，同时又能满足其实时性的需要。这就要求在进行系统的设计、选择或者裁剪时，对操作系统增减或替换不同模块时的性能进行对比分析。 利用上文中的测试实验平台，可以在两块开发板上分别配置有／无某个功能模块的系统，将测试方法分别应用于两个系统上。由于被测的系统采用的是相同的硬件架构，消除了硬件对系统性能的影响。对得到的测量结果进行对比分析，就可以比较精确和客观地得出该功能模块对整个系统性能影响的大小。 同样，该实验平台也可以用于测试分析不同ERTOS系统的性能。 6 总 结 本文对三种ERTOS性能测试方法进行了研究，对一些指标和特性进行了分析。文章的后半部分给出了一个测试实验平台的结构及其功能说明，并针对实验平台给出了系统计时的三种方法。文中提供的测试方法和手段对ERTOS的选择和开发有一定的参考价值。
<script type="text/javascript">
function ImgZoom(Id)//重新设置图片大小 防止撑破表格
{
var w = $(Id).width;
var m = 650;
if(w < m){return;}
else{
var h = $(Id).height;
$(Id).height = parseInt(h*m/w);
$(Id).width = m;
}
}
window.onload = function()
{
var Imgs = $("content").getElementsByTagName("img");
var i=0;
for(;i<Imgs.length;i++)
{
ImgZoom(Imgs[i]);
}
}
       </script>]]></description></item></channel></rss>