μC/OS II 任务调度详解(一)

来源:互联网 发布:mac pro 2016 发布时间 编辑:程序博客网 时间:2024/05/17 05:00

      UC/OS II 是一个多任务操作系统,从宏观角度来看,当前系统中可以有多个任务同时运行;但从微观角度来看,某一个时刻只能有一个任务处于运行状态(单CPU情况,事实上在单核时是不存在多任务的),所有其它任务都处于其他状态,这些任务在什么时候,哪种情况下进行状态切换,是由该任伤自身的属性和操作系统调度算法来决定的。

     当一个正在执行的任务因某个事件发生需要转入其他状态时,需要停止该任务的运行,转而执行其它的任务(或中断),此时就需要操作系统执行调度功能。因此,调度是指操作系统在管理多任务时选择当前系统中需要立即执行的任务的过程。而从就绪任务中挑选需要立即执行的任务的策略被称为调度算法,从某个任务切换到另一个任务的过程被称为Context Switch(实际上CPU寄存器切换)。

     μC/OS II 操作系统采用基于优先级的调度算法,而且只采用了这种调度算法。

     其原理如下:给每一个任务分配一个惟一的优先级,各优先级用一个整形数值标识。某优先级的值越大,其优先级越低;某优先级的值越小,其优先级越高。也就是说,如果当前操作系统准备进行调度,当有两个任务处于就绪状态时,系统将优先执行优先级别高的任务。

     μC/OS II  操作系统有两种调度方式:任务级的调度和中断级的调度。     μC/OS II  操作系统在完成中断后允许执行“新的调度”(注意!不是一定接着执行被中断的任务),因此它是抢占式强实时性操作系统,这是μC/OS II  操作系统内核的重要特性。