qinyunti 发表于 2024-6-29 14:57

《嵌入式软件的时间分析》-第四章分享 时间参数相关概念分享

<div class='showpostmsg'><p>本章介绍了软件时间理论相关概念。</p>

<p >&nbsp;</p>

<p >首先介绍了RTOS调度相关的时间参数</p>

<p >CET</p>

<p >GET</p>

<p >IPT</p>

<p >RT</p>

<p >&nbsp;</p>

<p >DT</p>

<p >PER</p>

<p >ST</p>

<p >NST</p>

<p >文中使用了一个比较清晰的图来说明</p>

<p > &nbsp;</p>

<p >&nbsp;</p>

<p >CET即核心执行时间 Core Execution Time 注意指的是核心执行代码时间,但是不包括CPU处理被抢占所花费的时间。而WCET表示最坏情况执行时间。一段时间内CET/该段时间即CPU使用率或者让负载。</p>

<p >&nbsp;</p>

<p >DT Delta Time 连续两次事件之间的时间间隔。比如有些GUI设置指定的刷新率进行刷频,一般要保证这个DT稳定,有些处理则可能不需要稳定但是会把实际时间间隔考虑进算法中,比如周期进行滤波运算等。</p>

<p >&nbsp;</p>

<p >PER Period周期,两次激活相同任务的时间差。一般会考虑添加一个偏移参数,这样可以错开各个周期任务,起到负载均衡的作用。</p>

<p >&nbsp;</p>

<p >JIT Jitter 抖动 DT于期望周期PER的派奶茶率 JIT=(DT-PER)/PER,抖动导致某些周期任务并不是严格按照期望周期执行的,比如本人公众号分享过的文章音视频流的断流问题(参考本人公众号&rdquo;嵌入式Lee&rdquo;).</p>

<p >&nbsp;</p>

<p >J Absolute Jitter绝对抖动指的事件标准时刻与实际时刻的关系,理论时刻是间隔固定的连续线段,而实际时刻会偏移这些线段的节点,这个偏移就是&Delta;,而&Delta;Max-&Delta;Min即J。</p>

<p >&nbsp;</p>

<p >RT Response Time响应时间 需要执行到执行完成的时间。响应也有最坏响应时间WCRT。Worst Case RT。</p>

<p >&nbsp;</p>

<p >DL DeadLine 截止时间,允许的最大RT响应时间。是一项需求,要求,规范。</p>

<p >比如要求定时器能周期执行,则其执行时间不能大于一个周期,否则会占用下一次执行时间。</p>

<p >&nbsp;</p>

<p >GET Cross Execution Time 总执行时间 在CET基础上不扣除中断抢占等时间。</p>

<p >&nbsp;</p>

<p >IPT Initial Pending Time 从激活到开始执行的时间,中断进入挂起到ISR执行的时间。</p>

<p >&nbsp;</p>

<p >ST Slack Time 间隔空闲时间, 即本任务执行完到下一次开始之间的间隔。 比如一个任务间隔100ms执行一次,但是只需要50ms就可以完成所有工作,则对于本任务而言还有50ms的间隔空闲时间,这个时间可以执行其他任务,其他任务执行时间不能超过这个时间。</p>

<p >&nbsp;</p>

<p >NST Net Slack Time 净间隔空闲时间,即本任务执行完到下一次开始之间的间隔,还要减去其他任务抢占中断抢占执行时间。 可以来表征可以完成本任务的充裕程度NST大说明完成本任务还有较多剩余时间,这样哪怕有小波动也保证足够了余量。</p>

<p >&nbsp;</p>

<p >PRE PReemption Time抢占时间,被打断的时间。</p>

<p >&nbsp;</p>

<p >NPR Number of Premptions 抢占次数 ,抢占次数较多说明执行上下文切换等较多,影响执行效率。</p>

<p >&nbsp;</p>

<p >然后介绍了Posix的相关时间参数。</p>

<p >&nbsp;</p>

<p >后面介绍了这些参数分析的统计学方法,由于记录所有参数在系统之可能无法实现,所以一般主要关注最小值,最大值,平均值,记录平均值有递归算法感兴趣的可以去搜索。</p>

<p >介绍了直方图,对于非定期事件使用激活模式的追踪图表进行分析。</p>

<p >&nbsp;</p>

<p >然后介绍了CPU负载和逻辑执行时间的概念,其中CPU负载是重中之重。在RTOS中一般也都有实现CPU负载的测量功能。</p>

<p >&nbsp;</p>

<p >&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2024-6-29 19:53

<p>软件时间理论相关概念,时序分析有助于发现潜在的时序问题,如数据丢失、延迟和抖动等。</p>

秦天qintian0303 发表于 2024-7-1 10:23

<p>《嵌入式软件的时间分析》根据会很偏向理论分析啊</p>
页: [1]
查看完整版本: 《嵌入式软件的时间分析》-第四章分享 时间参数相关概念分享