有一个仓库,可以存放A和B两种产品,但要求: (1)每次只能存入一种产品(A或B); (2)-N<A产品的数量-B产品的数量<M。其中,N和M是正整数。试用P,V操作描述产品A与产品B的入库过程。

admin2012-06-21  70

问题 有一个仓库,可以存放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(true) { P(SA);//还可再存放一个A产品吗? P(mutex); 将A产品放入仓库; V(mutex); V(SB);//可存放的B产品数量增1 } B产品入库的过程可描述为: while(true) { P(SB);//还可再存放一个B产品吗? P(mutex); 将B产品放入仓库; V(mutex): V(SA);//可存放的A产品数量增1 }

解析
转载请注明原文地址:https://kaotiyun.com/show/qAxi777K
0

最新回复(0)