zoukankan      html  css  js  c++  java
  • RTOS优先级翻转

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

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

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

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

  • 相关阅读:
    字符串转换成整数
    回文字符串判断
    字符串包含
    翻转单词顺序VS左旋转字符串
    穷举子集合
    求S=a+aa+aaa+aaaa+aa...a的值
    数组元素去重
    找最长等差数列的长度
    Git pull and push
    Google 开发console查找元素或方法
  • 原文地址:https://www.cnblogs.com/qingyunboke/p/12829400.html
Copyright © 2011-2022 走看看