测量嵌入式操作系统实时性能参数的新方法.pdf
《测量嵌入式操作系统实时性能参数的新方法.pdf》由会员分享,可在线阅读,更多相关《测量嵌入式操作系统实时性能参数的新方法.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、收稿日期:2007-09-15基金项目:国家“八六三”高技术研究发展计划资助项目(2007AA01Z142);上海市科学技术委员会重点科技攻关计划资助项目(04DZ15032,06DZ15003)作者简介:江建慧(1964),男,教授,博士生导师,工学博士,主要研究方向为容错计算、软件可靠性工程、处理器体系结构、计算机辅助设计/测试/评估.E2mail:jhjiang .测量嵌入式操作系统实时性能参数的新方法江建慧,唐智杰(同济大学 计算机科学与技术系,上海201804)摘要:提出了一种改进的基于基准程序的嵌入式操作系统的实时性能测量方法.工作负载由一组实际应用程序的核心程序组成,在这些核心程
2、序中插入了产生所需要的测试行为的代码,以获得更准确的测量结果.通过对一款类VxWorks嵌入式操作系统实时性能参数(包括上下文切换时间、抢占时间、中断延迟、信号量混洗时间、死锁解除时间和消息传递延迟)的测量和分析,表明所提出的方法比LMbench方法更准确.在ARM和MIPS两个硬件平台上,对Linux操作系统的实时性能参数进行了测量,进一步证实了新方法的有效性.通过测量,获得了一批有价值的嵌入式操作系统的实时性能数据.关键词:嵌入式操作系统;性能测量;实时性能;基准程序中图分类号:TP 316.2 文献标识码:A文章编号:0253-374X(2008)09-1260-07A Novel Me
3、thod to Measure Real2Time PerformanceParameters of Embedded Operating SystemsJIAN G Jianhui,TAN G Zhijie(Department of Computer Science and Technology,Tongji University,Shanghai 201804,China)Abstract:This paper presents an improved benchmarking2based real2time performance parameters mea2surement met
4、hod for embedded operating systems.A set of kernel codes of some common2usedembedded application programs is selected as workload.Some special codes are inserted in the selectedprograms to control the generation of the expected test behavior.Six real2time performance parametersincluding context swit
5、ch time,preemption time,interrupt latency,semaphore shuffling time,dead2lock breaking time,and message transfer latency of a VxWorks2like embedded operating system aremeasured by the proposed method.The obtained results are compared with that of LMbench.Thecomparison result shows that the proposed m
6、ethod is more precise.By the method,the real2time per2formance of Linux running on ARM and MIPS architectures is also measured.Therefore,the correct2ness and effectiveness of the proposed method are further verified.Key words:embedded operating system;performance measurement;real2time performance;be
7、nch2mark program第36卷第9期2008年9月同 济 大 学 学 报(自 然 科 学 版)JOURNAL OF TONG J I UNIVERSITY(NATURAL SCIENCE)Vol.36 No.9Sep.2008 操作系统的实时能力主要体现在任务调度、任务间通信、外界异步中断、死锁处理等方面,通常用时间来衡量其性能.一般认为,处理时间越短,操作时序正确且稳定,则实时性能就越强.1989年,Kar提出了实时操作系统的六个关键操作的时间量,即上下文切换时间、抢占时间、中断延迟、信号量混洗时间、死锁解除时间、消息传递延迟1.目前,这些时间参数已成为普遍使用的操作系统实时性能指
8、标.在测量方法上,基准程序方法已广泛用于计算机系统的性能评价2.测量系统实时性能参数的典型基准程序方法有Rhealstone1和LMbench3.Rhealstone方法是先建立n个没有任何实际操作的进程,使这些进程相互之间切换,然后测量切换时间.此方法的主要缺点是测量条件简单,与操作系统真实运行环境相差甚远,测量所得到的数据往往是系统最佳情况下的值,无法真实反映操作系统的实时性能.LMbench只对任务切换时间直接测量,而且数据结果为单一均值.该方法在不同的任务之间通过管道传递控制令牌,实现任务间的切换并测量.它可以设置进程数量及进程空间的大小,从而增加结果的真实性.国内外很多研究在对操作系
9、统的实时性能测量时,往往使用LMbench程序4.实时性能测量的其他基准程序 方 法 还 有Hartstone方法5、L Abeni等人提出的方法6.Hart2stone性能基准程序是由Carnegie Mellon大学的研究人员用Ada语言编写的测量硬实时系统实时性能的基准程序.该基准程序定义五种测试序列,并选择特定的合成负载按这些序列测试,通过判断其是否超出时间死限来测量系统的实时性能.此方法测量的主要对象是包括软硬件在内的整个系统,并非操作系统本身.L Abeni等人编写了一组微型基准程序,用来测量影响操作系统延迟的几个重要因素,包括计时器引起的延迟、不可抢占区域的延迟和调度抖动延迟.此
10、方法所测试的指标反映了操作系统调度及抢占方面的性能,与Rhealstone指标一致.由于实时性能参数值一般为微秒级甚至更小,因此,测量时间的工具及其精度十分重要.测量时间的工具主要有两类:软件测量和基于硬件仪器的测量.软件测量可以通过系统调用或汇编语言读取系统时钟所提供的时间.例如,Andrew Morton编写的专门针对Linux操作系统的Timepegs补丁,可以测量内核中任意两处代码间的执行时间7.该方法的缺点是有的系统可能无法提供足够精度的时钟进行测量,而且存在着一定的误差.基于硬件仪器的测量方法通常可以测试外部中断响应时间,通过设置系统管脚的输入和相应的输出,可以用示波器或者计数器来
11、获得中断响应时间8.缺点是需要昂贵的测量仪器.笔者以Rhealstone方法所定义的六个关键操作的时间量作为测量参数,对现有的基于基准程序的嵌入式操作系统实时性能参数测量方法进行改进.其基本思想是选择一组实际应用程序的核心程序作为工作负载,将它们加载到操作系统上,并在其中插入代码控制被测试行为的产生.以类VxWorks和Linux两个不同的嵌入式操作系统为对象的对比实际测量数据表明,采用本方法所获得的测量结果,更加真实和准确.1 基于基准程序方法的实时性能测量本节主要以上下文切换时间、死锁解除时间、中断延迟为例,阐述新的测量方法的原理和实施过程.因抢占时间、消息传递延迟的测量与上下文切换时间测
12、量的方法类似,而信号量混洗时间与死锁解除时间的测量方法类似,故不再赘述.1.1 工作负载选取嵌入式性能基准程序Mibench由美国密西根大学的研究人员所设计,包含了6组共35个嵌入式应用程序,每一特定的组代表相应的嵌入式应用.它们是:工业控制与自动化类,个人消费品类,办公自动化类,网络类,信息安全类与通信类9.所有程序均为开放源码的C语言程序,具有较好的可移植性.根据测量需求,选择了Mibench中不同类别的应用程序作为工作负载.比如,当测量的对象系统是PDA应用时,可以更多地选择个人消费品类和办公自动化类的程序作为负载.1.2 上下文切换时间测量引起上下文切换的因素很多,如正在运行的任务执行
13、了“自我终止”或“睡眠”系统调用.为了测量上下文切换时间,需要人为地制造任务之间的切换事件.在非抢占情况下,一种方案是让当前正在执行的任务激活另一个指定标识符(ID)的任务,然后自身挂起,那么,被激活的任务将处于就绪状态,从而引起调度.切换过程包含了一系列的操作,如当前任务上下文的保存、新任务上下文的恢复等,这一过程所需要的时间开销就是上下文切换时间TCS.设当前正在运行的任务的ID为TaskIDi,将要运 行 的 新 任 务 的ID为TaskID i+1.用1621 第9期江建慧,等:测量嵌入式操作系统实时性能参数的新方法t1(TaskIDi+1)表 示 新 任 务 的 激 活 时 刻,t2
14、(TaskIDi+1)表示新任务开始运行的时刻,那么,在用户层面上,可以用t2(TaskID i+1)-t1(TaskID i+1)来近似地表示两个任务之间的切换时间.图1给出了两个任务切换过程的示意图.图1 任务切换过程示意图Fig.1Process of task switching为了减少误差,选取n个任务,其任务ID从TaskID0到TaskIDn-1.任务之间的切换顺序是按单向环排列的,即TaskID 0 任务切换到TaskID1任务,TaskID1切换到TaskID2,依此类推,最后一个任务(TaskID n-1)切换到TaskID0任务.然后,通过测量n个任务的开始运行时刻和激活
15、时刻后,根据下式来计算上下文切换时间的算术平均值:TCS=1nn-1i=0(t2(TaskID(i+1)modn)-t1(TaskID(i+1)modn)(1)上述过程重复K次,就可以得到K个上下文切换时间.为了实现任务切换,需要在每个任务源代码的适当位置插入测试控制代码和计时.图2显示了n个任务插入测试控制代码后的伪代码示例.其中,gettime()表示获取系统当前时间函数,可以根据不同的 体 系 结 构 或 操 作 系 统 编 写 相 应 的 函 数.TaskResume()和TaskSuspend()分别表示任务激活和任务挂起的操作,其参数为任务的ID号,通常为操作系统中的线程号或进程号
16、.Save()用来保存当前计算数据.测量前,先 运 行TaskID 1 TaskIDn-1任务,等待所有任务均挂起后,运行TaskID0任务,开始测量上下文切换时间.图2 用于测量上下文切换时间的工作负载示例Fig.2An example of workload for context switching time measurement 在每个任务的不同阶段,其CPU和内存等资源的使用率各不相同,因此,需要分析每个任务的代码,在程序的多个不同阶段插入代码,以获得更多、更真实的数据.代码插入的位置可选择程序运行的初始段、中间段或结束段等.1.3 死锁解除时间测量处理优先级反转问题的能力是操作系
17、统解决死锁能力的一个重要体现.因此,测量操作系统解决优先级反转这一问题的能力或所需的时间,可以从很大程度上反映出操作系统解决死锁的能力.图3表示死锁解除时间的测量流程.TaskID0 任务首先运行并进入临界区,随后激活TaskID1.此时,由于TaskID1优先级最高,会抢占TaskID0运行.但其进入临界区时,由于临界资源被TaskID1 所占,只能挂起并等待临界资源被释放.TaskID0继续被调度执行,并激活TaskID2.此时,TaskID2优先级也比TaskID0高,会抢占TaskID0运行.此时,就会产生中优先级的TaskID2一直运行,而高优先级的TaskID1 被挂起的死锁情况.
18、在这种情况下,操作系统可以采用合理的方法(如优先级继承、优先级天 花 板 等)来 解 除 死 锁.设ta表 示TaskID1试 图 进 入 临 界 区 的 时 刻,tb表 示TaskID1成功进入临界区的时刻,因此,tb-ta即为所测得的死锁解除时间.2621同 济 大 学 学 报(自 然 科 学 版)第36卷 图3 死锁解除时间测量流程图Fig.3The flowchart for deadlock breakingtime measurement 类似地,各个任务的代码也需相应修改.图4给出了一个用于测量死锁解除时间的工作负载示例,其中,SemTake()和SemGive()分别表示对一个
19、信号量的获取和释放操作,即一对P,V操作.1.4 中断延迟测量中断延迟是指从CPU接受中断请求到开始执行中断服务程序的第一条指令之间的时间.测量前,先编写一个简单的中断服务程序,并将其绑定至对应的中断号.为了尽可能测量出最坏情况下的中断延迟,挑选的工作负载应包括磁盘读写、数据处理、系统调用等可能会影响中断延迟的操作,并在这些程序的不同位置插入测量控制代码.中断延迟测量的控制代码相对比较简单,图5是一个用于测量中断延迟的工作负载示例,其中,call-int()表示产生中断的函数,也可以用软件中断来代替.设ta表示发出中断请求的时刻,tb表示开始执行中断服务程序的时刻,因此,tb-ta可视作中断延
20、迟.图4 用于测量死锁解除时间的工作负载示例Fig.4An example of workload for deadlock breaking time measurement图5 用于测量中断延迟的工作负载示例Fig.5An example of workload for interruptlatency measurement2 测量方法的验证以上下文切换时间测量为例来说明方法的有效性.测量对象是一个类VxWorks嵌入式操作系统,对比测量采用LMbench方法.两种方法最主要的区别在于本方法为了尽量使运行环境接近真实,所运行的任务都是一些常用应用程序的核心程序.通过代码插入技术,控制这些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测量 嵌入式 操作系统 实时 性能参数 新方法
限制150内