这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ucosII [求助]关于ucosII中的例子1的疑问请教

共2条 1/1 1 跳转至

ucosII [求助]关于ucosII中的例子1的疑问请教

院士
2006-09-17 18:14:16     打赏
ucosII [求助]关于ucosII中的例子1的疑问请教



关键词: ucosII     求助     关于     中的     例子     疑问     请教    

院士
2006-12-22 22:43:00     打赏
2楼
问 各位大侠,小弟现有一个问题请教,是关于任务调度的:

在邵贝贝的书里面例子一,main函数建立了一个优先级为0级的任务TaskStart(),在TaskStart函数里面又建立了10个优先级从1-11的任务,然后TaskStart任务在显示了一些状态信息后遍调用了OSTimeDlyHMSM(0, 0, 1, 0);函数使自己延时一秒钟,这个时候系统进行任务调度,这个时候优先级最高的就是任务为1的Task1,Task1在屏幕上显示了自己的任务号后调用 OSTimeDly(1)延时一个时钟节拍,这个时候系统调度到了优先级最高的Task2,Task2在屏幕上显示了自己的任务号后调用 OSTimeDly(1)延时一个时钟节拍,这个时候系统调度到了优先级最高的Task3。。。。如果这个时候当Task5运行到一定的时候,OSTimeDly(1)的延时时间已经到了,可是这个时候Task1,Task2到Task4这些任务都是处于OSTimeDly(1)这个等待的时候,请问这个时候系统会把Task1到Task4这些任务全部从休眠队列里面搬到就绪队列里面,然后调用Task1呢,还是只会把Task1从休眠队列里面搬到就绪队列里面然后再调度Task1?这样虽然调度的都是Task1,但是在下一次调度的时候会有区别,因为如果使第一种情况,系统下次调度的就是Task2了,而后一种情况,下次调度的是Task6了。

请大哥们指点一二。谢谢。
1: 谁的等待时间被减到了0那么,就在同一个时间tick被调到就绪态 2: 不要意思,刚才有点事情出去了一下.delay后的任务,在每个tick中,delay的值减去1,而在TickISR的处理中,如果大家同时完成延时,那么是同时就绪的.任务优先等级高的先运行 3: 受益匪浅

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]