freertos移植教程_freertos任务调度原理http://www.elecfans.com/emb/xitong/202004161204612.html
/************************************************************************
* FreeRTOS基础配置配置选项
*********************************************************************/
/* 置1:RTOS使用抢占式调度器;置0:RTOS使用协作式调度器(时间片)
*
* 注:在多任务管理机制上,操作系统可以分为抢占式和协作式两种。
* 协作式操作系统是任务主动释放CPU后,切换到下一个任务。
* 任务切换的时机完全取决于正在运行的任务。
*/
#define configUSE_PREEMPTION 1
//1使能时间片调度(默认式使能的)
#define configUSE_TIME_SLICING 1
=================================================================
https://blog.csdn.net/dashanque/article/details/106210887
Fixed Priority:任务优先级,任务优先级可在运行时修改。
Pre-emptive:抢占,比当前运行任务优先级更高的任务进入ready态时,将当前运行任务切换到ready状态并且执行高优先级任务。
Time Slicing:时间分片,在抢占模式、开启时间片配置下多个任务拥有相同优先级,多个任务共享处理器时间。在每个时间片用完后调度器选择一个该优先级下处于ready状态的任务运行,不用等待运行任务主动放弃cpu。
1、抢占式调度( Prioritized Pre-emptive Scheduling)
a. 带时间片配置 (with Time Slicing)
具有同优先级的任务运行时只占用一个time slice,当time slice 用完后切换到下一个ready任务。如果在当前的 time slice 发生高优先级抢占现象,再次返回该优先级时则选择下一个ready任务执行,不会再执行上一个任务。
b. 不带时间片配置 (without Time Slicing)
任务会一直运行下去,同优先级的其它任务不会被执行,直到该运行任务主动放弃cpu或者更高优先级任务抢占并返回当前优先级。
2、合作调度( Co-operative Scheduling)
调度器被配置为非抢占式,选择任务运行时调度器会考虑优先级。多个优先级不同的任务集中的一个运行态任务会一直运行下去,直到该运行任务主动放弃cpu时,处于ready态的最高优先级任务才回被执行
————————————————
版权声明:本文为CSDN博主「dashanque」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dashanque/article/details/106210887