文档介绍:假定有如下独木桥问题:过桥时,同一方向的行人可连续过桥,当某一方有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。试用信号量机制解决。答案:(1)将独木桥的两个方向分别标记为A和B。用整型变量countA和countB分别表示A、B方向上已在独木桥上的行人数。初值为0。需要设置三个初值都为1的互斥信号量:SA用来实现对countA的互斥访问,SB用来实现对countB的互斥访问,mutex用来实现对独木桥的互斥使用。(2)A方向行人过桥:BeginP(SA);countA=countA+1;if(countA==1)P(mutex);V(SA);过桥;P(SA);countA=countA-1;if(countA==0)V(mutex);V(SA);EndB方向行人过桥:BeginP(SB);countB=countB+1;if(countB==1)P(mutex);V(SB);过桥;P(SB);countB=countB-1;if(countB==0)V(mutex);V(SB);End定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;empty控制生产者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下: