FreeRTOS——时间片调度

时间片调度概述

时间片调度是 FreeRTOS 调度策略之一,在多个任务共享 CPU 时间时,时间片调度可以有效地管理每个任务的执行时间,从而实现任务之间的公平性。

时间片调度机制

时间片调度是一个简单且常见的调度策略,其基本思想是将 CPU 时间划分为固定长度的时间片,每个任务在一个时间片内运行。当一个任务的时间片用完时,调度器会自动将其切换出去,给下一个就绪任务分配 CPU 时间。
在这里插入图片描述
时间片调度的运行过程
三个任务的优先级是一样的,给每个任务都分配一个时间片,当第一个任务的时间片耗尽就切换到第二个任务,同样执行一个时间片的时间,当第二个任务的时间片耗尽就切换到第三个任务运行,第三个任务存在阻塞的情况,此时不管时间片有没有耗尽都直接切换到下一个任务,即第一个任务。
注意:

  1. 恢复执行位置:当任务的时间片耗尽,任务切换时,FreeRTOS 会保存任务的上下文信息,任务下次被调度时会从 上次执行的位置继续。任务不会从头开始执行。
  2. 时间片耗尽:当一个任务运行完成它的时间片后,调度器会检查其他同优先级的任务是否就绪。如果有其他任务就绪,调度器将进行任务切换。
  3. 出现阻塞:当有任务出现阻塞时,会直接切换到下一个任务去运行,不管此时的时间片是否用完,这个出现阻塞的任务下次运行还是按照一个时间片运行。

时间片调度运行条件

  1. 有多个就绪任务:时间片调度只在有多个任务处于就绪状态时起作用。
  2. 任务处于就绪状态:只有就绪的任务才会被调度执行,阻塞任务不参与调度。
  3. 存在明确的时间片大小:每个任务的执行是按固定的时间片大小分配的,时间片到期后会进行任务切换。
  4. 任务在时间片内没有完成时:如果任务在其时间片内没有完成,它会被挂起,调度器会选择下一个任务。
  5. 启用抢占式调度:时间片调度通常依赖于抢占式调度,任务在时间片结束或高优先级任务出现时会被中断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值