若有一个仓库,可以存放P1,P2两种产品,但是每次只能存放一种产品。要求: ①w=P1的数量-P2的数量 ②-i 若用P-V操作实现P1和P2产品的入库过程,至少需要(49)个同步信号量及 (50)个互斥信号量,其中,同步信号量的初

admin2019-03-04  19

问题 若有一个仓库,可以存放P1,P2两种产品,但是每次只能存放一种产品。要求:
   ①w=P1的数量-P2的数量
   ②-i    若用P-V操作实现P1和P2产品的入库过程,至少需要(49)个同步信号量及
   (50)个互斥信号量,其中,同步信号量的初值分别为(51),互斥信号量的初值分别为(52)。

选项 A、1
B、1,1
C、1,1,1
D、i,k

答案A

解析 同步和互斥可以这样来理解:互斥是指在使用临界资源的时候,多个进程不能同时使用临界资源,如果进程A在使用,B需要等待,待A用完之后,才能让B用。这种信号量的初值一般为1,表示只有一个资源可用,如果已经有一个进程占用了这个资源,其他进程要使用,则须等待。同步是指进程间共同完成一项任务时直接发生相互作用的关系,即具有伙伴关系的进程在执行时间次序上必须遵循的规律。通俗一点说就是要步伐一致,即保证差距不是很远。例如:A和B两人约定去C家里玩,A开车,B骑自行车,他们的速度肯定不一样。他们同时出发,车开一段距离,A就停下来等B,当B快追上A时,A再前进,这就是一个同步的过程。
   同步和互斥的思想引入到存货取货的进程A,B中。A存货,B取货,他们在同一个货仓作业,所以不能同时工作。要么A存货,要么B取货。这样他们之间就要设定一个互斥信号量,信号量初值为1。假设货仓能存n件货物,我们光控制不让A,B同时在货仓工作是不够的,还要进行同步控制,当货仓装了n件货物之后,A就不能再向货仓存货了,而要等到B取出一些货,才能再存入货物,这就是同步过程,是A在等 B完成他的工作。
   本题最大的难点,是如何把题目中给出的两个式子,转化成为我们能够用上的条件。题目中有说明:
   ①w=P1的数量-P2的数量
   ②-i<w<k(i,k为正整数)
   这样看条件很抽象,我们把它们转化一下就清楚了:
   P1的数量-P2的数量<k
P2的数量-P1的数量<i
   这也就是说,如果我们先不存P2,则P1的数量-O<k,也就是说P1最多可以存k-1个,就不能存了,要等到有P2产品存入时,才能再次存入P1产品;同样,如果我们先不存P1,则P2的数量-0<i,也就是说P2最多可以存i-1个,就不能存了,要等到有 P1产品存入时,才能再次存入P2产品。有了这个关系,题目的答案也就得出了。本题需要一个互斥信号量和两个同步信号量,互斥信号量的初值为1,而同步信号量的初值为:k-1,i-1。把此问题用P-V原语描述为:
   mute=1//互斥信号量
   P1=k-1,P2=i-1//同步信号量
   P1产品:
   P(P1)
   P(mute)
   P1入库
   V(mute)
   V(P2)
   P2产品:
   P(P2)
   P(mute)
   P2入库
   V(mute)
   V(P1)
转载请注明原文地址:https://kaotiyun.com/show/XXTZ777K
0

相关试题推荐
最新回复(0)