已解决
OSEK-任务调度机制
来自网友在路上 173873提问 提问时间:2023-10-31 15:21:28阅读次数: 73
最佳答案 问答题库738位专家为你答疑解惑
如下图所示,在调度表中有很多 Expiry Points,下面是一个20ms的调度表。有每2.5ms触发一次2.5ms的TASK,以及等等其他按照时间的TASK触发;并且根据配置也可以看出,所有的任务都是基于全抢占模式触发的,也就是说,如果任务没有执行完,但是又更高优先级的任务进来了,此时,旧的任务将挂起,先执行新来的高优先级任务,等到高优先级任务执行完,再去执行旧的低优先级任务;但是这样触发有一个前提,第一个是两个任务都是在同一个Expiry Points点触发,此时按照全抢占模式处理。还有一个就是在达到期点 Expiry Points 时,旧的任务没有执行完,但是新的任务优先级又比较低,此时依旧会处理旧的高优先级任务,直到完成,新任务会等待下一个调度周期才会获得执行机会。除此之外,如果新的任务优先级比旧的任务的优先级高,会执行高优先级任务,旧的低优先级任务会等到下一个周期再去执行。
理解一个概念,调度表的周期性任务与alarm周期性任务,假设调度表任务的周期性与alarm任务的周期性是一致的,并且在各个周期性任务执行后,有更高优先级的周期性任务。如果到了触发时间,有高优先级的任务抢占了低优先级的任务,调度表触发的任务会将任务挂起,之后等到下一个周期在重新执行(前提条件是达到了Expiry Points),而alarm触发的任务是等高优先级任务执行完,就立即执行低优先级任务。
调度策略:
全抢占式:
非抢占式:
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"OSEK-任务调度机制":http://eshow365.cn/6-28758-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: HTTPS协议:保障网络安全的加密通信协议
- 下一篇: 连续分析:提高应用效率和成本效益的关键