本章介绍了软件时间理论相关概念。
首先介绍了RTOS调度相关的时间参数
CET
GET
IPT
RT
DT
PER
ST
NST
文中使用了一个比较清晰的图来说明
CET即核心执行时间 Core Execution Time 注意指的是核心执行代码时间,但是不包括CPU处理被抢占所花费的时间。而WCET表示最坏情况执行时间。一段时间内CET/该段时间即CPU使用率或者让负载。
DT Delta Time 连续两次事件之间的时间间隔。比如有些GUI设置指定的刷新率进行刷频,一般要保证这个DT稳定,有些处理则可能不需要稳定但是会把实际时间间隔考虑进算法中,比如周期进行滤波运算等。
PER Period周期,两次激活相同任务的时间差。一般会考虑添加一个偏移参数,这样可以错开各个周期任务,起到负载均衡的作用。
JIT Jitter 抖动 DT于期望周期PER的派奶茶率 JIT=(DT-PER)/PER,抖动导致某些周期任务并不是严格按照期望周期执行的,比如本人公众号分享过的文章音视频流的断流问题(参考本人公众号”嵌入式Lee”).
J Absolute Jitter绝对抖动指的事件标准时刻与实际时刻的关系,理论时刻是间隔固定的连续线段,而实际时刻会偏移这些线段的节点,这个偏移就是Δ,而ΔMax-ΔMin即J。
RT Response Time响应时间 需要执行到执行完成的时间。响应也有最坏响应时间WCRT。Worst Case RT。
DL DeadLine 截止时间,允许的最大RT响应时间。是一项需求,要求,规范。
比如要求定时器能周期执行,则其执行时间不能大于一个周期,否则会占用下一次执行时间。
GET Cross Execution Time 总执行时间 在CET基础上不扣除中断抢占等时间。
IPT Initial Pending Time 从激活到开始执行的时间,中断进入挂起到ISR执行的时间。
ST Slack Time 间隔空闲时间, 即本任务执行完到下一次开始之间的间隔。 比如一个任务间隔100ms执行一次,但是只需要50ms就可以完成所有工作,则对于本任务而言还有50ms的间隔空闲时间,这个时间可以执行其他任务,其他任务执行时间不能超过这个时间。
NST Net Slack Time 净间隔空闲时间,即本任务执行完到下一次开始之间的间隔,还要减去其他任务抢占中断抢占执行时间。 可以来表征可以完成本任务的充裕程度NST大说明完成本任务还有较多剩余时间,这样哪怕有小波动也保证足够了余量。
PRE PReemption Time抢占时间,被打断的时间。
NPR Number of Premptions 抢占次数 ,抢占次数较多说明执行上下文切换等较多,影响执行效率。
然后介绍了Posix的相关时间参数。
后面介绍了这些参数分析的统计学方法,由于记录所有参数在系统之可能无法实现,所以一般主要关注最小值,最大值,平均值,记录平均值有递归算法感兴趣的可以去搜索。
介绍了直方图,对于非定期事件使用激活模式的追踪图表进行分析。
然后介绍了CPU负载和逻辑执行时间的概念,其中CPU负载是重中之重。在RTOS中一般也都有实现CPU负载的测量功能。