嵌入式linux操作系统任务性能测试研究.pdf

嵌入式linux操作系统任务性能测试研究.pdf

ID:51506035

大小:317.96 KB

页数:4页

时间:2020-03-25

嵌入式linux操作系统任务性能测试研究.pdf_第1页
嵌入式linux操作系统任务性能测试研究.pdf_第2页
嵌入式linux操作系统任务性能测试研究.pdf_第3页
嵌入式linux操作系统任务性能测试研究.pdf_第4页
资源描述:

《嵌入式linux操作系统任务性能测试研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据I辉等:嵌入式linux操锋系统任务性能测试研究嵌入式linux操作系统任务性能测试研究ResearchofTaskPerformanceTestingUndertheEmbeddedLinuxOperationSystem王辉王毅刚冯亚楠(军械工程学院维修工程研究所,河北石家庄050003)摘要:在嵌入式系统软件测试中,由于嵌入式系统具有内存资源不丰富、JO通道少、实对性等特征,使得嵌入式软件测试难度较大;尤其是针对系统中任务性能等时间响应的测试。仅仅通过软件插桩,更难以体现运行环境的真实性。本文研究了利用软件插桩的原理方法,并通过硬件采集数据的方式,

2、针对嵌入式Unu操作系统中任务性能的测试是行之有效的。关键词:插桩;嵌入式系统;性能;总线;进程调度l前言所谓实时性,即必须满足时间约束的特性。实时软件的处理速度并不一定非常快,重要的是需要准时和及肘,实时软件的时间约束主要表现为软件或其中的进程的时间约束。进程也叫做任务,在多进程的操作系统中,进程调度是一个全局性、关键性的问题,它对系统的总体设计、系统的实现、功能设置以及各个方面的性能都有着决定性的影响。任务性能测试的对象是操作系统中任务上下文切换时间、任务切换时间、任务抢占时间、中断延迟时间、中断响应时间等。2嵌入式软件测试方法嵌入式软件测试与普通软件测试不

3、同的是嵌入式软件的测试方法。嵌入式系统的开发模式是基于host—target的方式,也就是主机宿主机的方式。这决定了它的测试方式。嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试要消耗较多的经费和时间,而基于宿主机的测试代价较小,但毕竟是在全模拟的环境中进行的。低级别的软件集成在宿主机平台上完成有很大优势,级别越高,基层越依赖于目标环境。确认测试最终也必须在目标环境中进行,因为系统的确认必须在真实系统之下完成,不能在宿主机环境下模拟。操作系统下的任务性能测试必须是建立在真实的目标系统运行环境下的测试,而且很大程度上,系统

4、还要和外部环境频繁的交互。在目标系统上进行的交叉测试,行之有效的方式是找到一种合适的插桩技术和数据采集的手段。2.1插桩技术插桩,是借助向被测程序中插入操作来实现测试目的的方法,通常对测试工具的分类包括纯软件测试工具和纯硬件测试工具,纯软件测试工具对源程序进行插桩对程序的运行造成一定的影响,通过插桩造成了代码膨胀,源程序和桩模块都要占用处理器,以及系统其它资源。并且,系统还要解决插桩数据的收集和输出,结果导致系统不能够在真实环境下运行,影响到系统的性能。在实时系统中直接会导致系统错误。纯硬件的测试工具一般用在系统的硬件开发阶段,例如逻辑分析仪和仿真器。逻辑分析仪

5、是基于总线信号采样的方式,并且只能工作在关闭缓存的状态下,否则代码可能只送到缓存,而并没有被命中。纯硬件工具的采样方式造成数据丢失,而且几乎无法进行覆盖率等分析。汲取纯软件插桩技术的代码膨胀问题,和纯硬件测试工具的数据采集方式。我们可以采用硬件插桩技术进行测试数据的分析。硬件插桩技术,就是利用纯软件的插桩技术给源代码做影响系统最小的数据标记,2.2数据采集硬件辅助的数据采集,是通过在系统的物理地址空间预先定义好一个空闲的地址。源代码的硬件插桩就是在程序运行到标记点的时候,向指定的这个物理地址发送这一标记数据。数据采集部件只当做是目标系统的外部只写设备。当数据发送

6、到总线上的时候,有写信号电平去触发采集设备。目标系统只完成数据的发送,而不用判断发送的状态。数据采集部件会自动实时进行采集。如图1所示:圈l总线数据采集示意图3任务性能测试为了获取精确的任务性能分析,必须获取进程的切换信息。获得进程切换信息,使用操作系统下的任务钩子函数插桩。任务钩子函数,是当任务切换、任务创建或者任务删除的时候从操作系统中需要调用的一些功能函唧回哥万方数据《计量与溺试技术溯10年第37卷第’1期数。这些钩子函数能够及时向系统总线发送代表特定任务事件的数据标记到特定物理地址。这些任务事件都发生在任务调度的时机。3.1进程调度时机要获取任务性能的事

7、件信息,还必须能够找到任务切换、创建和删除发生时的进程调度时机。Linux的进程调度是由名为schedule()的调度程序完成的,执行该函数的过程就是进程调度的过程。在系统中,进程调度函数schedule()的执行频率很高,从总体上看可以分为两种情况,一是在某些系统调用函数中直接调用schedule(),另一种是系统在运行过程中通过检查调度标志而执行该函数。Linux主要在下列时机下执行进程调度:(1)进程状态变化时一个进程通常处于就绪、运行或等待状态之一。当一个进程从运行状态进人等待状态或准备退出时,另外一个进程就应当占有CPU,此时就会发生进程切换。(2)当

8、前进程的时间片用完时当前

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。