为什么RTOS没有任何实现来阻止信号量的优先级倒置,即使它存在于互斥锁中。
信号量不需要阻止优先级倒置?
在uC / OS和GreenHills RTOS上都会出现同样的情况。
提前致谢。
答案 0 :(得分:0)
当低优先级任务拥有信号量时发生优先级倒置, 并且一个高优先级的任务被迫等待信号量直到 低优先级任务释放它。如果,在释放信号量之前, 低优先级任务被一个或多个中优先级任务抢占, 然后由于延迟而发生了无限制的优先级倒置 高优先级任务不再可预测。这击败了截止日期 单调分析(DMA)因为无法预测是否存在 高优先级的任务将在截止日期前完成。
在高优先级和低优先级任务之间共享关键资源不是 一个理想的设计实践。最好只共享资源 在优先级相同的任务中或限制对单个资源的访问 资源服务器任务。示例是打印服务器任务和文件 服务器任务。我们一直倡导这种做法。但是,随着 将越来越多样化和复杂的中间件分层 RTOS,实施这样简单的策略变得不切实际。 因此,为了安全起见,最好采用某种方法 防止无限优先级倒置。
检查http://www.smxrtos.com/articles/techppr/mutex.htm
处的完整链接此致
Otacon