关于vxworks任务调度的问题!由于刚刚学习,有些问题不明白:
1。任务之间调度,在哪里发生?
比如刚开始运行任务a,是不是只有运行taskDelay()函数之后
才能进入任务调度?如果不运行这个函数应该无法调度吧?
2。消息队列的问题:比如任务b先运行msgQReceive(),结果
没取到消息进入堵塞状态,过若干时间,任务a运行msgQSend()
进入队列消息,按理任务b应该恢复运行状态(因为它在排在队列最前面),
现在问题是:任务b是不是立刻运行还是等任务a把任务运行完,
到了taskDelay()处才开始运行任务b,
比如任务a:
taska()
{
msgQSend();
printf("hello");
taskDelay();
}
如上,是在msgQSend()处直接运行任务b,还是等运行完printf语句,
然后进入taskDelay()时运行任务b?????
谢谢指点!万分感谢!