转载地址:http://www.360doc.com/content/11/1112/22/1671317_163886854.shtml
实时系统的主要特点是必须保证处理结果的时间确定性。在实时系统(含嵌入式系统)中得到广泛应用的性能指标评估方法是基准程序法。通过对实时系统的性能评估,确认系统的时间确定性、可靠性、稳定性等指标。
实时系统性能指标评估基础
实时性
衡量实时操作系统实时性能的重要指标有:
1、任务切换时间
当多任务内核决定运行另外的任务时,它把正在运行任务的当前状态(即CPU 寄存器中的全部内容)保存到任务自己的栈区之中。然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU 的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。做任务切换所需要的时间取决于C P U 有多少寄存器要入栈。CPU 的寄存器越多,额外负荷就越重。
2、 中断响应时间(可屏蔽中断)
计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。对于占先式内核,要先调用一个特定的函数,该函数通知内核即将进行中断服务,使得内核可以跟踪中断的嵌套。占先式内核的中断响应时间由下式给出:
中断响应时间=关中断的最长时间+保护CPU 内部寄存器的时间+进入中断服务函数的执行时间+开始执行中断服务例程(ISR)的第一条指令时间
中断响应时间是系统在最坏情况下响应中断的时间,某系统100次中有99次在50ms之内响应中断,只有一次响应中断的时间是250 ms,只能认为中断响应时间是250ms。
时间确定性
时间确定性包含:
1 每种处理的开始时刻或者处理结果的提交时刻必须满足响应的时间要求,即在给定的时间内确实启动并完成相应的任务。
2各个不同任务之间必须按照确定的时间顺序进行。这部分涉及到对任务执行的优先级处理和调度问题。通过预设一系列的规范,确定任务执行的时间顺序。例如:将所有任务分配不同优先级,或各自评定优先级;高优先级任务确定先行执行;任务执行中不得被不高于其本身优先级的其他任务中断或抢占资源;建立任务队列,同等优先级任务按照队列先入先出规则获得资源或执行。
可靠性
一个可靠性指标达到预定要求的系统被称可靠系统。可靠性的定量表示称为可靠性指标。这类指标基于统计学原理,主要有可靠度、可用度、失效率、平均寿命、平均无故障时间(MTBF)等。
基准程序
性能基准程序是以单个良好定义的任务或一组任务形式出现的,用来度量实时系统性能的一个测试。这些任务被称为工作负载。在基准程序法中必须明确规定所选用的基准程序及其特性。
评估方法的运行方式规定了评估指标体系一般需要重复多次运行基准程序才能获得有意义的统计结果。
典型的工作负载有WhetStone、DhryStone和Tri-Dimensional。
- WhetStone是在对800个左右的常用ALGOL程序中所用的各种基本功能进行分析统计后而设计出来。该程序包含了常用程序中的各种功能,如三角函数、子程序调用等,一般用于评估系统的浮点处理能力。
- DhryStone一般用于评估系统的整数处理能力。
- Tri-Dimensional程序用来评估实时性能,它采用了3种性能度量:
中断处理能力(单位:每秒百万中断次数)和
IO 吞吐率(单位:每秒百万 IO 传输次数)。
专用于实时操作系统整体性能评估的性能基准程序的典型例子有RhealStone、进程分派延迟时间PDLT基准程序和HartStone。
RhealStone提供了6个关键操作的时间量。它们是任务切换时间、抢占时间、中断延迟时间、信号量混洗时间、死锁解除时间和数据吞吐时间。它们的加权和被称为RhealStone数。
l
l
l
l
l
l
PDLT基准程序给出的是系统接收到中断请求至相应的中断服务程序开始执行之间的时间间隔。
HartStone基准程序是用Ada语言编写的一个合成工作负载,用来度量实时系统的击穿点(Breakdown Point)。击穿点被定义为引起计算或调度负载违背确定性底线的位置。
不同实时系统的实时性指标
IntervalZero Pharlap ETS
以下给出的LabVIEW RT for IntervalZero Pharlap ETS的官方实时性指标。
Environment
Hardware ISR Time <1μs
ISR Time to Activate Thread - 5μs
Context Switch Up to Higher Priority Task - 1μs
Undirected Yield from Sleep() <1μs
WindRiver Vxworks
Environment
Task switching time 3.8us
Hardware ISR Time <3μs
QNX6
Environment
Task switching time 12.57us
Hardware ISR Time <7.54μs
uC OSII
Environment
Task switching time <9us
Hardware ISR Time <7.5μs
从这些指标中可以看出,不同的实时系统供应商处于技术和商业目的往往选择的描述指标均不一致,这些不同指标的测试获得环境、实时系统运行的硬件目标CPU/MPU等因素之间也存在差异,造成在两个实时系统的指标间很难做出比较。
同时,实时系统的指标并非仅依赖实时操作系统和运行目标的硬件性能。因为实时系统并非独立系统,需要通过IO和各类通讯接口与外部对象和环境进行交互。实时系统通过IO构成闭环控制或仿真系统时,整体系统的实时性就不得不考虑IO接口的输入输出与数据传递的性能,这部分性能又与IO硬件本身和硬件执行驱动有关。
再有,标准的基准程序测试专业性强、测试门槛高、耗时长;对于实际面向应用的需求而言,这类测试结果更多意味仅是提供了参考的价值;而这些指标在进行实时系统选择或性能验证中也很难作为充分依据。
因此大多数实际情况下,在评估实时系统性能时,会通过在实时系统上运行一些经验化程序,进行对比评估。
经验程序在不同实时系统上的对比
在实际评估实时系统运算能力与实时性时,通常在系统内运行某些经验的运算程序,如三角函数、子程序调用、加法和乘法。通过一定量的循环运算次数构造出经验化的工作负载。将相同的工作负载加载在不同的实时系统上,进而评估出不同实时系统各自间的性能差异。或者,将工作负载不断加大,用以考评实时系统在给定的预估运算周期内是否会出现超时等击穿现象。
例如,可以通过三角函数进行实时系统浮点运算能力的评估,在程序内设定计算多次三角函数,评估实时闭环的耗时是否超出预定的运算周期。以下为LabVIEW流程图。
其中设定实时系统运行1KHz周期的硬件定时循环;在循环中不断执行正弦三角函数的计算,每个周期内计算的次数跟随周期的索引不断累加;同时监视硬件定时闭环的执行状况,是否出现超时的击穿现象。当出现超时后,停止程序,并记录当前三角函数的运行次数。
这样就客观的得到一个评判的条件:1ms内该系统执行了几次三角函数运算,可以此条件与其他系统进行比对获得不同实时系统间的运算能力和 实时性评估。
更进一步的在结合外部硬件IO的基础上评估实时系统的整体的时钟稳定性、实时性能力和闭环响应能力。