uCOS-II中任务的优先级翻转现象

  优先级翻转是RTOS内核所要面临和解决的问题,再继续源码阅读之前需要先了解一番。本文参照网上以及相关书籍,对优先级翻转扼要介绍。

1. 什么是优先级翻转

  什么是可剥夺型内核?若当前进程只是在进程执行结束,或者因某种原因而自动放弃CPU的使用权,导致其他的就绪任务获得CPU的使用权,这种方式实现的处理器使用权转移的内核属于不可剥夺型内核,反之,若当前进程并未执行完毕,它又不愿放弃CPU的使用权,而被强制终止执行,使得CPU的使用权归其他进程,这种内核属于可剥夺型内核。

  uCOS-II的内核属于可剥夺型内核。任务优先级反转则出现于可剥夺型的内核中:当任务以独占方式使用共享资源,会出现优先级低的任务先于高优先级的任务执行的现象。RTOS要求任务的响应时间必须是个常数:

任务的响应时间 = 寻找最高优先级任务的时间 + 任务的切换时间

  寻找目标任务的操作是通过查表的形式得到,这个时间是一定的,由于每个任务需要保存的数据也是一致的,所以这个时间也是一定的。那就可以得到结论:在uCOS-II中任务调度所花的时间是常数,它和应用程序以及任务个数无关。

  但是当涉及到共享资源的访问时,多任务实时操作系统往往会出现优先级翻转问题,即有可能出现低优先级的任务先于高优先级的任务执行,不能保证高优先级的任务的响应时间。

  例如,系统中有优先级为A、B和C的三个任务,其优先级为A > B > C࿰

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值