介绍
所谓调度算法,就是怎么确定哪个就绪态的任务可以切换为运行状态。
通过配置文件FreeRTOSConfig.h的三个配置项来配置调度算法:configUSE_PREEMPTION (是否抢占)
configUSE_TIME_SLICING (是否轮转)
configIDLE_SHOULD_YIELD (空闲任务是否让步)
调度算法的行为主要体现在两方面:高优先级的任务先运行、同优先级的就绪态任务如何被选中。调度算法要确保同优先级的就绪态任务,能"轮流"运行,策略是"轮转调度"(Round Robin Scheduling)。轮转调度并不保证任务的运行时间是公平分配的,我们还可以细化时间的分配方法。