优先级反转一般出现在二值信号量中,比如abc三个任务,优先级从高到低排列,先运行c,会获取一个二值信号量,此时运行b打断c,然后运行a(但是a运行不了了,因为c没有释放信号量,b能运行是没有用到信号量,直接靠任务优先级抢占的)
优先级继承出现在互斥信号量中,还是abc三个任务,优先级从高到低排列,先运行c,会获取一个互斥信号量,此时运行b发现无法运行,因为此时c已经发生了优先级继承,任务优先级和a一样了(注意:优先级继承不能完全避免优先级反转)
以及如果在使用多个互斥信号量的时候一定要避免死锁
优先级反转一般出现在二值信号量中,比如abc三个任务,优先级从高到低排列,先运行c,会获取一个二值信号量,此时运行b打断c,然后运行a(但是a运行不了了,因为c没有释放信号量,b能运行是没有用到信号量,直接靠任务优先级抢占的)
优先级继承出现在互斥信号量中,还是abc三个任务,优先级从高到低排列,先运行c,会获取一个互斥信号量,此时运行b发现无法运行,因为此时c已经发生了优先级继承,任务优先级和a一样了(注意:优先级继承不能完全避免优先级反转)
以及如果在使用多个互斥信号量的时候一定要避免死锁
339

被折叠的 条评论
为什么被折叠?