003_时间片轮转调度及中断函数

Posted luxiaoguogege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了003_时间片轮转调度及中断函数相关的知识,希望对你有一定的参考价值。

(一)使用时间片轮转调度功能条件

技术分享图片

(二)在os_cfg.h头文件中将OS_CFG_SCHED_ROUND_ROBIN_EN置一

#define OS_CFG_SCHED_ROUND_ROBIN_EN     1u  

(三)调用OSSchedRoundRobinCfg函数,在start中调用这个函数

#if    OS_CFG_SCHED_ROUND_ROBIN_EN  //当使用时间片轮转的时候
     //使能时间片轮转调度功能,时间片长度为1个系统时钟节拍,既1*5=5ms
                  /*使能  时间片长度  错误返回码*/
    OSSchedRoundRobinCfg(DEF_ENABLED,1,&err);  
#endif        

(四)在创建任务时候确定使用多少个任务时间片

技术分享图片

(五)注意时间片调用时间

 

(六)中断函数在使用

void XXX_Handler(void)  (1)
{ 
OSIntEnter(); //进入中断  (2)
用户自行编写的中断服务程序;  //这部分就是我们的中断服务程序  (3)
OSIntExit(); //触发任务切换软中断 (4)
}

 

以上是关于003_时间片轮转调度及中断函数的主要内容,如果未能解决你的问题,请参考以下文章

UCOIII时间片轮转调度

《操作系统_时间片轮转RR进程调度算法》

进程调度算法时间片轮转调度算法多级反馈队列调度算法(Java实现)

第二周:一个简单的时间片轮转多道程序内核代码及分析

调度算法:时间片轮转优先级多级反馈队列

时间片轮转算法和优先级调度算法模拟实现