关于uCOS-II的优先级问题

[复制链接]
 楼主| sanguankou 发表于 2009-8-20 20:59 | 显示全部楼层 |阅读模式
假如有三个任务ABC,优先级分别是7 8 9,A肯定先执行,然后B执行,B执行完后要调度,但问题是如果此时A又就绪,A是不是又要执行了?假如A又执行,在执行完了B又就绪,就去执行B,B执行完了A又就绪,又去执行A。。。。。。如此循环,C岂不是永远无法执行?急盼高人解答,谢谢
wangyan1217 发表于 2009-8-23 16:17 | 显示全部楼层
可以用信号量来同步啊。或者任务A的OSTimeDly()时间长点
xumingyu 发表于 2009-12-30 18:20 | 显示全部楼层
任务C 是可以执行的,应为有OSTimeDly().因为每一个任务执行以后需要等待OSTimeDly(),这时高优先级等待,低优先级就绪的任务就可以执行了。正如2楼所说。
Fe_ARM 发表于 2010-1-3 17:47 | 显示全部楼层
任务A的OSTimeDly()的时间超过任务B的执行时间,C就可以执行
伍笛 发表于 2010-1-7 09:44 | 显示全部楼层
理论上是这样的,除非高优先级的任务你调用系统服务函数。
hgjinwei 发表于 2010-1-10 11:00 | 显示全部楼层
假如你的A任务完全没有调用系统服务的话, 那么BC任务永远都不会执行. uC总是执行当前就绪的最高优先级任务.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部