疑问:信号量与优先级反转(100分)

lju1982   2007-9-12 23:24 楼主

信号量可以分三种:互斥信号量,二值信号量,计数信号量。
为什么有的书上讲,只有互斥信号量才会有优先级反转问题?

比如,现在有一个计数信号量S,数值为3,有三个低优先级的任务对其执行P(S)操作,此
时信号量的值为0.如果有一个高优先级的任务到来,并且执行P(S),那么此时也将产生优先
级反转问题。我觉得此时可以将三个低优先级任务中的一个提升到高优先级。

所以,我觉得信号量都会产生优先级反转问题,而不仅仅是互斥信号量,因为他们之间的区
别仅仅是初始值不同。不知我的理解是否有错误?

回复评论 (7)

如果没记错的话,互斥信号量应该就是二值信号量吧? 你的理解是没错的,只要一个信号量为0了,而有比占有它的那个任务的优先级更高的一个任务要使用它,那么就会发生优先级反转
点赞  2008-4-22 16:06
这“有的书”是不是明确表达了“计数信号量不会产生优先级反转”这个意思?
点赞  2008-4-27 15:01
学习学习学习。。。。。。。。。。。。。。。。。。。。。。。。。。。。
点赞  2008-4-27 22:00

5楼 yxc 

应该不是只有吧,只要为0了,就可能发生反转吧
点赞  2008-4-29 21:46
好像没那么简单,呵呵.
点赞  2008-4-30 18:50
不明白
点赞  2008-4-30 20:51
有点难度哦
点赞  2008-5-1 03:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复