RTOS优先级翻转

Posted qingyunboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTOS优先级翻转相关的知识,希望对你有一定的参考价值。

  在使用二值信号量的时候,会出现低优先级任务获取二值信号量,但二值信号量还没释放时,高优先级任务需要获取二值信号量,这时二值信号量已经被低优先级任务获取,高优先级任务只能挂起,如果这时有一个中优先级任务响应,就会出现中优先级任务响应而高优先级任务不被响应。这种中优先级任务比高优先级任务先响应的现象就是优先级翻转。

  高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度。但其他中等优先级的任务却能抢到CPU资源。-- 从现象上来看,好像是中优先级的任务比高优先级任务具有更高的优先权。

  解决优先级翻转的方法是使用互斥信号量。

  互斥信号量中使用了优先级继承。也就是说在高优先级获取一个已经被低优先级获取了的互斥信号量时,会把低优先级的任务的优先级提升到和高优先级任务的优先级一个级别,这样低优先级就可以得到执行,等低优先级的任务执行完毕释放掉互斥信号量,高优先级就可以得到执行。

 

以上是关于RTOS优先级翻转的主要内容,如果未能解决你的问题,请参考以下文章

基于RTOS的软件开发理论

基于RTOS的软件开发理论

ESP8266 RTOS中的FreeRTOS相关函数

free rtos 任务切换的理解

free rtos 任务切换的理解

RTOS训练营任务调度(续)任务礼让调度总结队列和晚课提问