问题
问答题
有一个仓库,可以存放A和B两种产品,但要求: (1) 每次只能存入一种产品(A或B); (2) -N<A产品的数量-B产品的数量<M。 其中,N和M是正整数。试用P,V操作描述产品A与产品B的入库过程。
答案
参考答案:
解析:首先设置一个初值为1的互斥信号量mutex,以保证每次只存入一种产品。为了保证“-N<A产品的数量-B产品的数量<M”,还需设置信号量SA,保证目前可再存放的A产品数量,其初值为M-1;SB,表示目前还可以再存放的B产品数量,其初值为N-1。 A产品入库的过程可描述为: while(ture) { P(SA);//还可再存放一个A产品吗 P(mutex); 将A产品放入仓库; V(mutex); V(SB);//可存放的B产品数量增1 } B产品入库的过程可描述为: while(ture) { P(SB);//还可再存放一个B产品吗 P(mutex); 将B产品放入仓库; V(mutex): V(SA);//可存放的A产品数量增1 }