为什么RTOSes没有任何实现来防止信号量的优先级反转,即使它存在于互斥锁中。
信号量不需要防止优先级反转吗?
同样的情况也发生在uC/OS和GreenHills实时操作系统上。
提前谢谢。
发布于 2013-04-02 11:00:06
当低优先级任务拥有信号量,而高优先级任务被强制等待信号量,直到低优先级任务释放它时,就会发生
优先级反转。如果在释放信号量之前,低优先级任务被一个或多个中优先级任务抢占,则由于高优先级任务的延迟不再可预测,所以发生了无界优先级反转。这击败了截止日期单调分析(DMA),因为无法预测高优先级任务是否会满足其截止日期。
在高优先级和低优先级任务之间共享关键资源不是理想的设计实践。最好仅在相同优先级的任务之间共享资源,或者限制对单个资源服务器任务的资源访问。例如,打印服务器任务和文件服务器任务。我们长期以来一直提倡这种做法。然而,随着RTOS上日益多样化和复杂的中间件的层次化,实施这种简单的策略变得不切实际。因此,为了安全起见,最好实现一些防止无界优先级反转的方法。
在http://www.smxrtos.com/articles/techppr/mutex.htm上检查完整链接
致以敬意,
奥塔康
https://stackoverflow.com/questions/15755080
复制相似问题