信号量优先级反转



为什么rtos没有任何实现来防止信号量的优先级反转,即使它存在于互斥锁中。

信号量不需要防止优先级反转?

同样的情况发生在uC/OS和GreenHills RTOS上。

优先级反转发生在低优先级任务拥有信号量时,而高优先级的任务则被迫等待信号量,直到低优先级任务释放它。如果在释放信号量之前,低优先级任务被一个或多个中等优先级任务抢占,的延时导致了无界优先级反转高优先级的任务不再是可预测的。这打败了最后期限单调分析(DMA),因为它是不可能预测如果高优先级的任务将在截止日期前完成。

不允许高优先级和低优先级任务共享关键资源理想的设计实践。最好只共享一个资源在同等优先级的任务之间或将资源访问限制为单个资源服务器任务。例如打印服务器任务和文件服务器的任务。我们一直提倡这种做法。然而,随着日益多样化和复杂的中间件的分层在RTOSs中,执行这样简单的策略变得不切实际。因此,为了安全起见,最好实现一些方法防止无界优先级反转。

查看完整链接http://www.smxrtos.com/articles/techppr/mutex.htm

问候,

Otacon

相关内容

  • 没有找到相关文章

最新更新