#1楼主:关于任务调度
文章发表于:2008-06-19 09:55
任务中经常遇到延时1s的函数,那么问下,在延时的过程中系统是不是把这个任务挂起让低优先级的任务运行啊?
新手,谢谢回答!
#3
文章发表于:2008-07-09 15:36
我也正在学习,肯定是别的任务运行啊,
要不多任务就没有实时性了
#4
文章发表于:2008-07-09 18:40
延时1s,CPU调度的事情是肯定发生的,否则CPU的效率将变得很低,很多以前单片机单任务的设计思想不能放在这个地方了。ucos的delay都是按照心跳来实现的,其中有一个OSTimeDly,实现按心跳为基准的延时。
当需要延时时,设置当前任务进入睡眠,设置TCB中的闹表OSTCBDly,然后从当前的任务schedule走,将CPU交给其他任务。这样的话CPU的利用率将大大提高了~~
#6
文章发表于:2008-07-23 10:16
延时时UCOS有做任务调度,在挂起当前任务的同时,取优先级最高的就绪任务运行,如果没有,则运行IDLE任务了