【base】调度时机

调度时机

单核模式下,RTOS允许高优先级任务被唤醒的时候立即得到执行

我们之前在Linux的时候得到的结论是,高优先级任务挂到就绪队列上了,但是并不一定能够马上得到执行的,还是要等到tick到了,在内核模式下切换任务

这里我们换个角度想想,什么情况下,高优先级任务会挂就绪队列上?释放信号量、发消息队列了、解锁了,这种“系统调用服务”进入到内核态的时候,就会把等待这些东西的任务挂到就绪队列上,而这也正是可以产生调度的时机(进入内核态了嘛),于是就有了这句话:高优先级任务被唤醒的时候立即得到执行,而不需要等到tick来临时的那个调度点

这句话看起来是异步行为,但实际上是同步的,因为释放信号量、发消息队列了、解锁等行为就是主动进行的

RTOS调度策略组合

  • A:可抢占+时间片轮转+空闲任务让步

  • B:可抢占+时间片轮转+空闲任务不让步

  • C:可抢占+非时间片轮转+空闲任务让步

  • D:可抢占+非时间片轮转+空闲任务不让步

  • E:合作调度

posted on 2022-09-20 17:58  甲鱼写代码  阅读(33)  评论(0)    收藏  举报

导航