关于uCOS-II的优先级问题
假如有三个任务ABC,优先级分别是7 8 9,A肯定先执行,然后B执行,B执行完后要调度,但问题是如果此时A又就绪,A是不是又要执行了?假如A又执行,在执行完了B又就绪,就去执行B,B执行完了A又就绪,又去执行A。。。。。。如此循环,C岂不是永远无法执行?急盼高人解答,谢谢 可以用信号量来同步啊。或者任务A的OSTimeDly()时间长点 任务C 是可以执行的,应为有OSTimeDly().因为每一个任务执行以后需要等待OSTimeDly(),这时高优先级等待,低优先级就绪的任务就可以执行了。正如2楼所说。 任务A的OSTimeDly()的时间超过任务B的执行时间,C就可以执行 理论上是这样的,除非高优先级的任务你调用系统服务函数。 假如你的A任务完全没有调用系统服务的话, 那么BC任务永远都不会执行. uC总是执行当前就绪的最高优先级任务.
页:
[1]