参考答案:A、B表示两个方向;
countA,countB表示A、B方向上已在独木桥上行人数,初值为0;
SA用来实现对countA的互斥访问,初值为1;
SB用来实现对countB的互斥访问,初值为1;
mutex用来实现两个方向的行人对独木桥的互斥使用。
A方向的行人:
wait(SA);
f(countA=0)then wait(mutex):
countA=countA+1
signal(SA);
通过独木桥;
wait(SA):
countA=countA-1:
if(countA=0)then signal(mutex);
signal(SA);
B方向的行人:
wait(SB);
if(countB=0)then wait(mutex);
countB=countB+1
signal(SB);
通过独木桥;
wait(SB);
countB=countB-1:
if(countB=0)then signal(mutex);
signal(SB);
我来回答:
最新试题