WCET学习(五)

飞行器控制、工业生产过程控制等式嵌入式实时系统运用的传统领域。

  • 嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
  • 嵌入式实时系统通过其相连接的外部传感器设备与外部环境交互,已达到控制环境的目的。
  • 时间可预测性是实时系统的基本特征。按照任务是否必须严格遵循截止期。实时系统又分为硬实时系统和软实时系统。对软实时系统,截止期的错过会导致性能的降低,如移动语音通信,延迟会导致通话质量下降。对于硬实时系统,截止期的错过会导致系统失败,甚至带来灾难性的后果,如卫星飞行轨道控制。
  • 实时系统通常都是事件驱动的。从事件的产生到系统对事件做出反馈的时间间隔由两部分构成(不考虑多任务调度的影响):中断延迟与事件处理时间。
  • 中断延迟:中断发生到系统处理器响应中断的时间间隔。中断延迟与系统体系结构相关,即与硬件相关,与事件的类型和事件输入参数无关。因此,对特定的目标处理器,中断延迟是确定的。
  • 事件处理时间:处理器响应事件后至响应结束的软件执行时间。对同一事件,不同的处理算法会导致时间不同。对同一处理算法,输入参数不同,处理的时间也会不同。因此事件处理时间与算法和输入参数相关,当然事件处理的绝对时间还和硬件体系结构有关。
  • 对于给定的一组实时任务的可调度性分析和调度方案的确定,都依赖于每一实时任务在任务提交时给出的程序执行时间和任务截止期。对任务执行时间估计过长,可能导致一组本可以调度的任务,不能通过可调度性分析。而过低的估计,可能导致任务因没有分配足够的处理器时间而错过截止期。
  • 对任意给定程序的执行时间进行估计是一项非常困难的任务,也是实时系统研究领域的焦点。程序执行时间取决于以下几个因素:
  • 源代码:经过仔细编写和优化的源代码所需的执行时间更少。
  • 编译器:编译器把源代码转换成机器代码程序。这种转换不是唯一的,实际的转换取决于特定编译器的实际执行,执行的时间取决于转换的性质。
  • 目标机器的体系结构:程序执行时需要在处理器核内存、I/O设备之间进行很多交互,缓存、流水线等硬件特性使得数据存取和指令执行时间并非一层不变。
  • 嵌入式实时操作系统:操作系统决定诸如任务调度和内存管理之类的问题。
  • 实时任务的WCET是实时系统正确性验证和实时任务调度的基础。
  • 程序实际的WCET值除了与程序自身因素相关外,还与程序实际执行时的上下文环境相关,因此WCET的实际值是无法确定的,只能获取一个估计值。
  • WCET的估计值必须是安全的(safety)和紧凑的(tightness)。
  • 安全:WCET估计值不得小于实际的WCET值。过高的估计实时任务的WCET,可能导致实时操作系统分配给任务的时间片不足以运行完实时任务,最终导致任务错过截止期,而使任务失败。
  • 紧凑:WCET的估计值必须尽可能接近实际的WCET值。过分悲观的WCET估计会造成一组实时任务无法通过可调度性分析或者为任务分配了过多的处理器时间,造成处理器资源的浪费。
  • 与WCET相对的是程序在最好情况下的执行时间(Best Case Execution Time),BCET.
  • 决定程序WCET的两方面因素:
  • 1.程序的所有可能指令执行序列。
  • 2.指令执行序列中每一条指令的执行时间。
  • 对给定的程序完全通过自动分析获取程序所有可能执行路径是不可行的,有人提出通过对程序的控制结构加以控制,导致了限制严格的实时编程语言Ada的产生;还有通过手工标记,但工作量大,容易出错。
  • 指令执行序列中单条指令的执行时间与目标执行环境相关。典型的现代硬件系统结构均采用硬件加速特征来提高处理能力,例如缓存(Cache)、分支预测(branch-prediction)、流水线(pipelines)技术等。这些硬件加速特性的引入使得程序执行的目标环境状态的不确定性增加。对基于这些硬件加速特征的现代处理器进行指令执行时间建模是极其困难的。
  • WCET分析技术总体上分为静态分析和动态测量。
  • 动态测量是指在目标环境中实际地运行任务,通过测量任务的执行时间,加以各种统计方法来估计程序的WCET。从理论上说,通过测量的方法获取程序的WCET,必须向任务输入所有可能的参数,保证程序运行完所有可能的执行路径,而实际程序的输入参数空间巨大,输入所有参数来运行程序通常不可能,即使可行也会耗费相当长的测量时间。因此动态测量往往仅选择部分可能覆盖程序各种情况的输入参数来测量,测量的完备性无法得到保证。
  • 静态WCET分析是指通过对程序源代码或目标代码以及程序实际执行目标环境特性来分析,当前静态WCET分析主要从三个方面展开研究:控制流、底层分析和计算方法。
  • 控制流分析从程序的源代码或目标代码出发,通过分析程序逻辑结构、语法、语义等信息来获取程序所有可能的执行路径(执行流)。控制流分析不考虑程序的执行环境的硬件特性,分析研究主要集中在程序控制流信息的提取、程序逻辑结构的表示、控制流信息的表示与转换、循环上下界的确定、不可行和隐藏路径发现等。
  • 控制流信息的提取主要依据源程序的各种语法结构,如if、switch、for、while等,而循环最大次数的确定,不可行路径的查找则需要更多的语义分析。
  • 控制流的描述主要有:语法树、域树、时间树、控制流图等。
  • 路径枚举和抽象解释是控制流分析的两种主要技术。
  • 流信息转换用于在高层和底层时间分析中映射时间约束和控制流信息,解决编译器编译程序时,改变程序的流程信息的问题。
  • 典型的方法是Co-transform,编译器在编译阶段产生一个转化轨迹和转化定义。
  • 底层分析,又称执行时间建模,主要考虑缓存、流水线等处理器体系结构特性对程序执行时间的影响。执行时间建模是对目标处理器的各种加速特性进行建模。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值