ucos 原理 - 任务调度分析
上面说过了 uCOS-II 通过不断的在任务之间切换实现任务调度,这一个小节我们来分析 uCOS-II 到底是如何调度任务的。
首先我们要清楚,既然用户给定的任务是一个个无穷循环,所以操作系统肯定不能指望任务自己放弃 CPU 的使用权,让给其他的函数去执行;相反的,当一个任务执行一段时间之后,我们的 OS 就需要“强行的”从它手里拿到处理器的时间,这样的操作系统被称为 抢占式 的,相反那种不同任务之间 Co-operate 的,就叫做 非抢占式 的。
可我们的 OS 是怎么做到 “抢占” 的动作呢?