一种嵌入式实时操作系统的性能测试平台的构建.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:350KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

一种嵌入式实时操作系统的性能测试平台的构建.pdf

一种嵌入式实时操作系统的性能测试平台的构建.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.paper.edu.cn一种嵌入式实时操作系统的性能测试平台的构建王劲松孙文生北京邮电大学电信工程学院,北京(100876)E-mail:urika.bupt@gmail.com摘要:本文提出一种基于Thread-Metric测试套件和ARM平台的RTOS性能测试平台的构建方案。该测试平台实现原理比较简洁,能有效地测量实时操作系统的运行速度等实时特性。本文以针对μC/OSII的移植和配置为例,详细阐述了平台的搭建和配置过程。关键词:Thread-Metric,ARM,嵌入式操作系统测试平台1.引言RTOS的应用中,对于其评价可以从很多角度来进行[1],如体系结构、API的丰富程度、网络支持、可靠性等。其中,实时性是RTOS评价的最重要的指标之一,实时性的优劣是用户选择操作系统的一个重要参考。评价一个操作系统的实时性应该着重考察它的哪些指标,以及如何进行测试,是本文着重讨论的问题。本文提出了使用Thread-Metric测试套件在ARM电路板上搭建测试平台的一种方案[2][3]。该方案没有采用昂贵的硬件设备,成本不高,能相对有效地衡量不同操作系统技术之间的相对性能。2.RTOS简介Thread-Metric是一个开源且免费的测试套件,同时Thread-Metric还提供了ThreadX的测试结果供使用者进行比较参考。ThreadX本身是一个非常优秀的商业化实时内核,在行业里有着许多非常成功的应用,通过与ThreadX测试结果的比较,我们可以对自己所测试的RTOS有个更加直观的了解。2.1Thread-Metric的测试原理整个Thread-Metric测试套件由几个独立的测试项目组成,每个项目分别用于测试实时内核中的某一基本功能(如任务切换、中断处理、信号量处理等等)。测试的基本原理是通过计算一定周期时间长度里内核反复处理某一事务的次数,并将结果通过“printf”函数输出给PC终端获取。Thread-Metric中的第一个测试项目为“基准测试(BasicProcessingTest)”,该测试用于获取一个称之为“校准值(Calibration)”的数据,校准值的大小反映的是测试中所使用的硬件平台的能力,它的引入是为了屏蔽硬件平台对测试结果的影响,因为我们所需要评估的是RTOS的性能,而并非整个系统的性能。除第一个测试项目(基准测试)外,在其它测试项目中,我们将会获取到一个称之为“迭代值(Iteration)”数据,迭代值的就是在一个测试周期长度里内核所处理的这一事务的次数,于是我们使用公式:得分=迭代值÷校准值即可得到实时内核在这一测试项目的得分。-1-http://www.paper.edu.cn2.2Thread-Metric的文件结构Thread-Metric测试套件全部由C语言编写,因此它适用于绝大部分实时内核,使用Thread-Metric也需要一个移植过程,不过Thread-Metric的移植非常简单,其移植过程只是一些API的重映射操作。Thread-Metric测试套件的源文件的组成如表1所示:文件“tm_porting_layer_threadx.c”是Thread-Metric提供的一个已经完成的基于ThreadX的移植文件,它只是用来帮助我们快速的将Thread-Metric移植到其它实时内核,在我们实际利用Thread-Metric测试其它RTOS时,它是不需要使用的。表1Thread-Metric中的文件Tab.1ListofeachfileintheThread-MetricSuit文件名功能描述tm_api.hAPI声明和宏定义常量tm_basic_processing_test.c基准测试tm_cooperative_scheduling_test.c协同式的任务调度测试tm_preemptive_scheduling_test.c抢占式的任务调度测试tm_interrupt_processing_test.c中断处理测试tm_interrupt_preemption_processing_test.c中断当中的任务抢占处理测试tm_synchronization_processing_test.c任务同步处理测试tm_message_processing_test.c消息处理测试tm_memory_allocation_test.c内存分配测试tm_porting_layer.cThread-Metric移植相关文件tm_porting_layer_threadx.cThread-Metric移植于ThreadX内核的参考实例