一种嵌入式实时操作系统的性能测试平台的构建.pdf
《一种嵌入式实时操作系统的性能测试平台的构建.pdf》由会员分享,可在线阅读,更多相关《一种嵌入式实时操作系统的性能测试平台的构建.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/-1-一种嵌入式实时操作系统的性能测试平台的构建 王劲松 孙文生 北京邮电大学电信工程学院,北京(100876)E-mail: 摘摘 要:要:本文提出一种基于 Thread-Metric 测试套件和 ARM 平台的 RTOS 性能测试平台的构建方案。该测试平台实现原理比较简洁,能有效地测量实时操作系统的运行速度等实时特性。本文以针对C/OS II 的移植和配置为例,详细阐述了平台的搭建和配置过程。关键词:关键词:Thread-Metric,ARM,嵌入式操作系统测试平台 1.引言引言 RTOS 的应用中,对于其评价可以从很多角度来进行1,如体系结构、API 的丰富程度、网络支持、可
2、靠性等。其中,实时性是 RTOS 评价的最重要的指标之一,实时性的优劣是用户选择操作系统的一个重要参考。评价一个操作系统的实时性应该着重考察它的哪些指标,以及如何进行测试,是本文着重讨论的问题。本文提出了使用Thread-Metric测试套件在ARM电路板上搭建测试平台的一种方案2 3。该方案没有采用昂贵的硬件设备,成本不高,能相对有效地衡量不同操作系统技术之间的相对性能。2.RTOS 简介简介 Thread-Metric 是一个开源且免费的测试套件,同时 Thread-Metric 还提供了 ThreadX 的测试结果供使用者进行比较参考。ThreadX 本身是一个非常优秀的商业化实时内核,
3、在行业里有着许多非常成功的应用,通过与 ThreadX 测试结果的比较,我们可以对自己所测试的RTOS 有个更加直观的了解。2.1 Thread-Metric 的测试原理的测试原理 整个 Thread-Metric 测试套件由几个独立的测试项目组成,每个项目分别用于测试实时内核中的某一基本功能(如任务切换、中断处理、信号量处理等等)。测试的基本原理是通过计算一定周期时间长度里内核反复处理某一事务的次数,并将结果通过“printf”函数输出给 PC 终端获取。Thread-Metric 中的第一个测试项目为“基准测试(Basic Processing Test)”,该测试用于获取一个称之为“校准
4、值(Calibration)”的数据,校准值的大小反映的是测试中所使用的硬件平台的能力,它的引入是为了屏蔽硬件平台对测试结果的影响,因为我们所需要评估的是RTOS 的性能,而并非整个系统的性能。除第一个测试项目(基准测试)外,在其它测试项目中,我们将会获取到一个称之为“迭代值(Iteration)”数据,迭代值的就是在一个测试周期长度里内核所处理的这一事务的次数,于是我们使用公式:得分=迭代值校准值 即可得到实时内核在这一测试项目的得分。-2-2.2 Thread-Metric 的文件结构的文件结构 Thread-Metric 测试套件全部由 C 语言编写,因此它适用于绝大部分实时内核,使用T
5、hread-Metric 也需要一个移植过程,不过 Thread-Metric 的移植非常简单,其移植过程只是一些 API 的重映射操作。Thread-Metric 测试套件的源文件的组成如表 1 所示:文件“tm_porting_layer_threadx.c”是 Thread-Metric 提供的一个已经完成的基于 ThreadX的移植文件,它只是用来帮助我们快速的将 Thread-Metric 移植到其它实时内核,在我们实际利用 Thread-Metric 测试其它 RTOS 时,它是不需要使用的。表 1 Thread-Metric 中的文件 Tab.1 List of each fil
6、e in the Thread-Metric Suit 文件名 功能描述 tm_api.h API 声明和宏定义常量 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_processin
7、g_test.c 任务同步处理测试 tm_message_processing_test.c 消息处理测试 tm_memory_allocation_test.c 内存分配测试 tm_porting_layer.c Thread-Metric 移植相关文件 tm_porting_layer_threadx.c Thread-Metric 移植于 ThreadX 内核的参考实例 2.3 Thread-Metric 的使用要求的使用要求 在使用 Thread-Metric 测试套件时,为了得到一个客观公正的测试结果,我们应当遵循Thread-Metric 建议的几点要求,一、测试周期长度应至少大于
8、 30 秒。越大的测试周期长度越有利于消除调用“printf”函数输出测试结果时对于测试结果本身的影响;二、关闭所有编译器优化选项,不允许将代码缓存在处理器的任何高速 Cache 中运行;三、在移植 Thread-Metric 的过程中,API 的重映射不能采用宏定义的方式;四、内核的时钟节拍周期应设置为 10 毫秒;3.Thread-Metric 中的测试项目中的测试项目 当前版本的 Thread-Metric 总共包含 8 个测试项目,这些测试项目基本覆盖了实时操作系统最重要的核心功能4。测试 1:基准测试(Basic Processing Test)测试 1 的主要目的就是获取硬件平台的
9、性能校准值,校准值越大说明硬件平台的性能越强。在这个测试中将只创建一个运行任务。测试 2:协同式的任务调度测试(Cooperative Scheduling Test)该测试中包含 5 个相同优先级的任务,各个任务在在执行过程中会先将自己的计数器加1,然后通过调有“relinquish”函数主动将 CPU 使用权交给下一个任务。图 1 是测试 2 的运行示意图:http:/-3-图 1 协同式的任务调度测试 测试 3:抢占式的任务调度测试(Preemptive Scheduling Test)该测试中包含 5 个由高到低不同优先级的任务,各个任务在执行过程中会将自己的计数器加 1。在测试开始时
10、,只有优先级最低的任务处于就绪,其它任务都被挂起。优先级最低的任务先唤醒优先级次低的任务被抢占,这样依次抢占下去后,最高优先级的任务获的 CPU使用权后又将自己挂起,次高优先级的任务也将自己挂起,到最后优先级最低任务又获得CPU 使用权,一个新的循环又开始。图 2 是测试 3 的运行示意图:图 2 抢占式的任务调度测试 测试 4:中断处理测试(Interrupt Processing Test)该测试中只包含 1 个任务,该任务通过调用软中断(SWI)指令的方式来连续模拟中断的发生,中断服务程序会释放一个信号量,中断返回后,任务去获取该信号量。获取成功后再次调用软中断。图 4-3 是测试 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 嵌入式 实时 操作系统 性能 测试 平台 构建
限制150内