卓胜微嵌入式面试题及参考答案(2万字长文)

freeRTOS 任务是怎么调度的?

在 freeRTOS 中,任务调度主要是基于优先级的抢占式调度。每个任务都有一个优先级,系统会根据任务的优先级来决定哪个任务获得 CPU 的使用权。

当一个高优先级的任务准备运行,并且当前运行的任务优先级较低时,高优先级任务会抢占 CPU。例如,假设有任务 A 优先级为 3,任务 B 优先级为 2,当任务 B 正在运行,任务 A 进入就绪状态时,任务 A 会立即抢占 CPU 开始运行。

同时,freeRTOS 也支持时间片轮转调度。对于优先级相同的任务,系统会为每个任务分配一个时间片。当一个任务的时间片用完后,会暂停该任务,将 CPU 的使用权交给同优先级的下一个任务。

任务的状态转换在调度过程中也很关键。任务可能处于就绪、运行、阻塞等状态。处于阻塞状态的任务通常是在等待某些事件,比如等待一个信号量或者等待一段时间过去。当等待的事件满足后,任务会进入就绪状态,等待调度器调度。

调度器会在系统滴答定时器(SysTick)的中断服务程序中检查任务的状态和优先级。每次滴答定时器中断,调度器都会决定是否需要进行任务切换,以保证系统的高效运行。

freeRTOS 可以裁剪吗࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值