ucosIII 任务调度
uC/OS-III是一个可抢占的, 基 于优先级的内核。根据其重要性每个任务都被分配了一个优先级。
uC/OS-III支持多个任务拥有相同的优先级.
μCOS-III中的任务切换主要分为两部分:
一个是中断级任务切换;另一个是任务级中断切换。
可抢占的调度---- 意味当事件发生时,如果事件让高优先级任务被就 绪, uC/OS-III马上将CPU的控制权交给高优先级任务。
当一 个任务提交信号量、 发送消息给一个高优先级的任务 ( 若该任务被就绪了), 当前的任务就会被停止, 更高优先级的任务获得CPU的控制 权。
当ISR提交信号量或发送消息给一更高优先级的任务(若 该任务被就绪了),那么中断返SR提交信号量或发送消息给一更高优先级的任回的时候不会返回到原任务,而
是高 优先级任务。
循环轮转调度---- 当多个任务有相同的优先级时,uC/OS-III允许每个任务运行规定的时间片。当任务没有用完分配给它的时间片时,它可以自愿地放弃CPU。
uC/OS-III允许任务在运行时开启或者关闭循环轮转调度。uC/OS-III允许用户为每个任务设置不同的时间片。不同的任务可以有不同的时间片。
当任务被创建时, 其时间片长度被设置。 可以在运行时调用OSTaskTimeQuantaSet()修改时间片。 |