基于源码详谈FreeRTOS机制之互斥量

优先级反转与继承

假设我们有ABC三个任务,优先级由低到高,当A执行时获得信号量,此时B也需要执行,因为B的优先级比A高,所以B会抢占A先执行,突然来了个优先级比B高的C,且要和A获取到同一个信号量,但假设任务B一直在允许,导致A无法运行然后释放信号量,也导致优先级比B高的C无法运行,此时就违背了优先级高的先运行的原则,这时候互斥量的作用就体现出来了,它可以来解决这个问题。

 

 互斥量的本质也就是信号量,此时应该是让A获取互斥量mutex,当出现上诉问题时互斥量会临时,把自己的优先级复制给A,使得A的优先级比B高,让A执行完后再把mutex释放,然后C再去执行任务。

高优先级的任务,被低优先级的任务延迟,这被称为"优先级反转。

高优先级的任务把自身的优先级赋值给低优先级,这叫优先级继承。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值