嵌入式系统定时优化策略
1. 调度级定时优化
1.1 调度中断与负载平衡
在可见时间片内,不同的任务配置所需的调度中断数量不同。例如,图 88 所示的配置中,所有任务激活仅需六个调度中断,这与 Task_1ms 实例的数量相对应。而之前图 87 所示的配置则需要十一个调度中断,几乎是前者的两倍。不过,图 88 的负载分布仍可接受。对于仅包含三个任务的小示例,无偏移配置和为 Task_5ms 设置偏移的优化配置之间的计算负载分布差异不大。但随着任务数量的增加,这种差异会迅速增大。
1.2 任务拆分
任务拆分是一种简单的负载分配方法。假设一个应用程序通过后台任务提供大部分功能,同时有较大部分功能位于周期为 5 ms 的循环任务中,这会导致较长的运行时间。在循环任务执行期间,后台任务的代码可能无法执行,这可能会带来问题。
解决方法是将循环任务拆分为两个周期为 5 ms 但偏移不同的循环任务。例如,将 Task_5ms 拆分为偏移为 1 毫秒的 TaskA_5ms 和偏移为 3 毫秒的 TaskB_5ms,这样可以在两个任务之间留出间隙,使后台任务更频繁地被使用。不过,任务拆分是否适用于某个项目,很大程度上取决于项目本身,因为额外的任务会消耗额外的资源。
1.3 功能迁移至执行频率较低的任务
这种优化方法看似简单,但在实践中可能非常有效。其核心是考虑是否可以降低所有循环执行代码段的执行频率。例如,如果确定一个可运行体可以每 10 毫秒执行一次,而不是每毫秒执行一次,且不影响功能,那么该可运行体的运行时需求可以降低 90%。
控制算法通常以 10 毫秒为周期运行,因为在许多情况下,这也是应用程序大部
超级会员免费看
订阅专栏 解锁全文
2018

被折叠的 条评论
为什么被折叠?



