信号量优先级倒置

时间:2013-04-02 02:30:18

标签: mutex semaphore rtos ucos priority-inversion

为什么RTOS没有任何实现来阻止信号量的优先级倒置,即使它存在于互斥锁中。

信号量不需要阻止优先级倒置?

在uC / OS和GreenHills RTOS上都会出现同样的情况。

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

当低优先级任务拥有信号量时发生优先级倒置,   并且一个高优先级的任务被迫等待信号量直到   低优先级任务释放它。如果,在释放信号量之前,   低优先级任务被一个或多个中优先级任务抢占,   然后由于延迟而发生了无限制的优先级倒置   高优先级任务不再可预测。这击败了截止日期   单调分析(DMA)因为无法预测是否存在   高优先级的任务将在截止日期前完成。

     

在高优先级和低优先级任务之间共享关键资源不是   一个理想的设计实践。最好只共享资源   在优先级相同的任务中或限制对单个资源的访问   资源服务器任务。示例是打印服务器任务和文件   服务器任务。我们一直倡导这种做法。但是,随着   将越来越多样化和复杂的中间件分层   RTOS,实施这样简单的策略变得不切实际。   因此,为了安全起见,最好采用某种方法   防止无限优先级倒置。

检查http://www.smxrtos.com/articles/techppr/mutex.htm

处的完整链接

此致

Otacon