关于mutex 锁

mutex的出现是为了解决优先级反转的问题,由于优先级反转对实时性影响太大,所以mutex 的稳定性直接影响了实时性。纵观目前多种实时操作系统mutex 的设计原理是多多少少有一点问题的,raw os 的mutex 模块成功弥补了其它实时系统在这方面的不足。

raw os 的mutex同时支持优先级置顶和优先级继承的方式来解决优先级反转的问题。

raw os 的mutex比较其它实时系统,比如ucos, ecos, freertos 等占尽了优势,因为当一个任务经历两次以上的优先级提升时,其它系统基本都不支持优先级的逐步还原,那样带来的后果是不能解决优先级反转带来的问题。而且像ucos系统去改变一个优先级被提升之后的任务的优先级的话,整个逻辑都会出错。而且rawos 的mutex 同时支持优先级置顶和优先级反转的策略,增加了用户使用的策略,显得更为灵活强大。

当有一个临界区资源同时存在不同优先级的任务抢占时,推荐使用mutex而不是semaphore, 因为优先级反转的问题对实时性伤害太大。


你可能感兴趣的:(锁)