自学内容网 自学内容网

FreeRTOS篇4:任务调度

1.什么是任务调度?

调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。

FreeRTOS中开启任务调度的函数是 vTaskStartScheduler() ,但在 CubeMX 中被封装为

osKernelStart() 。

2.FreeRTOS的任务调度规则是怎样的?

FreeRTOS 是一个实时操作系统,它所奉行的调度规则:

1) 高优先级抢占低优先级任务,系统永远执行最高优先级的任务(即抢占式调度)

2) 同等优先级的任务轮转调度(即时间片调度) 还有一种调度规则是协程式调度,但官方已明确表示不更新,主要是用在小容量的芯片上,用得 也不多。

3.抢占式调度运行过程

Task 1:玩游戏

Task 2:老妈喊你吃饭

Task 3:女朋友喊你看电视 总结:

1)高优先级任务,优先执行;

2)高优先级任务不停止,低优先级任务无法执行;

3)被抢占的任务将会进入就绪态

4.时间片调度运行过程

总结:

1)同等优先级任务,轮流执行,时间片流转;

2)一个时间片大小,取决为滴答定时器中断周期;

3)注意没有用完的时间片不会再使用,下次任务 Task3 得到执行,还是按照一个时间片的时钟 节拍运行


原文地址:https://blog.csdn.net/2401_83811921/article/details/142682671

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!