码迷,mamicode.com
首页 > 其他好文 > 详细

RTOS优先级翻转

时间:2020-05-05 10:48:42      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:需要   cpu   导致   信号   资源   出现   一个   提升   互斥信号量   

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

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

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

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

 

RTOS优先级翻转

标签:需要   cpu   导致   信号   资源   出现   一个   提升   互斥信号量   

原文地址:https://www.cnblogs.com/qingyunboke/p/12829400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!