嵌入式学习小组
直播中

孙灿

7年用户 204经验值
私信 关注

运行OSTimeDlyHMSM后原来任务进入等待态

任务函数中运行OStimeDlyHMSM后,任务释放CPU使用权,产生任务调度。原来的任务进入等待态。OSTimeDlyHMSM运行结束以后,接着运行优先级最高的任务。那么原来的那个任务怎么变成就绪态的了?如果这样子例程里UCOSIII时间片轮转调度实验中,在OSTimeDlyHMSM切换时,为什么会有两个就绪的任务(原来的那个进入等待态)。

回帖(3)

李小雯

2020-4-15 10:06:54
帮顶
举报

张蕾

2020-4-15 10:16:41
时钟心跳~  每心跳一次 就遍历所有的任务的 对延时做-1操作. 如果 为0 就把状态弄成就绪...
等待有 任务调度(会引发任务调度的命令 延时 挂起 等待信号量/消息队列 之类的挺多)  就会 执行就绪中 优先级最高的
为什么会有两个 就绪....不知道.... 可能答非所问..因为没看明白你想问什么
举报

江皎

2020-4-15 10:21:49
等待有任务调度,等待自身那个任务是会挂起,变为等待态。轮转调度实验是两个就绪态的任务在轮转。剩下那个任务是就绪态的,但是任务一不是啊,他是等待态,不是只有等待运行结束了,才开始就绪态吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分