RTOS常用任务调度策略

本文介绍RTOS常用任务调度策略。

RTOS考虑到任务的实时性,通常会有2种调度策略,基于优先级的抢占式调度和基于时间片的轮转调度策略,本文简要介绍其原理和适用场景。

1.基于优先级的抢占式调度

1)原理

每个任务都分配一个优先级,RTOS保证任何时候处于最高优先级的任务处于运行状态。涉及如下场合:

a)高优先级任务时间片耗尽。如在高优先级任务中存在sleep(2),其时间片耗尽后,调度器重新调度,选择高优先级任务运行。

b)低优先级任务唤醒高优先级任务。如低优先级任务给高优先级任务发信号量,消息等或高优先级任务获得临界资源,调度器重新调度,选择高优先级任务运行。

c)中断中唤醒高优先级任务。如在中断服务程序中给高优先级任务发信号量,消息等,在退出中断服务程序时,调度器重新调度,选择高优先级任务运行。

注意:调度器只能选择处于就绪状态的任务进行调度,因此,低优先级或中断唤醒高优先级任务时,高优先级任务先进入就绪状态,再由调度器进行调度。

2)适用场景

对实时性要求比较高的场合。

2.基于时间片的轮转调度

1)原理

每个或几个任务分配相同优先级,并设置一个时间片。RTOS按先进先出的方式,选择任务并执行一个时间片,将此任务放入队列的末尾(不管此任务是否执行完成),再选择另外一个任务并执行其时间片,如此循环。

2)适用场景

全部或某几个任务对实时性要求不高的场合。可以和基于优先级的抢占式调度混合使用,如任务1分配高优先级,任务2,任务3分配相同优先级,那么任务1可以抢占任务2和任务3,而任务2和任务3则采用基于时间片的轮转调度。

总结,本文介绍了RTOS常用任务调度策略。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值