尽管自己看了书,老师讲了课,以为对PV操作理解了,但是遇到题的时候还是不会思考。下面这道题,花了很长时间才弄明白,现在把思路写出来,大家共同探讨下。
大家都来思考:
信号量S1、S2、S3、S4分别代表什么含义?
误区:
把S1、S2、S3、S4当成是P1、P2、P3、P4的信号量
关键点:
1.P1执行不需要信号量的制约
2.信号量初始值为0
3.结合前驱图
4.从简单入手(P4)
我的思路:
根据图中P2执行完后V(S3),P3执行完后V(S4),结合前驱图,P2在P3之前,P3在P4之前,可以容易得出,d处应为P(S4);
那么c呢,从前驱图可以看到,P1和P2均有一个指向P3的箭头,所以c处不仅含有P(S3),还有另一个P操作,是P1执行后V的;
而P2的前驱是P1,故P1执行完后需要V一个供P2执行P操作。
答案:
a:V(S1)V(S2) b:P(S1) c:P(S2)P(S3) d:P(S4)
感受:
思路不清晰,思维局限,打不开,总觉得欠缺一点东西。审题的时候一定仔细,看懂每一句的含义。如果不会做,可以根据现有知识去推测,考场上不必弄明白每一道题的原理。
原文地址:http://blog.csdn.net/augus3344/article/details/40040377