进程前驱图控制原理解析
题目:
进程P1、P2、P3、P4和P5的前趋图如图所示。
若用PV操作控制进程P1~P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在图1-4中的边上,且信号量S1~S5的初值都等于零,初始状态下进程P1开始执行。图1-5中a、b和c处应分别填写 (2) ;d和e处应分别填写 (3) ,f和g处应分别填写(4) .
(2)A.V(S1) V(S2)、P(S1)和V(S3) V(S4)
B.P(S1) V(S2)、P(S1)和P(S2) V(S1)
C.V(S1) V(S2)、P(S1)和P(S3) P(S4)
D.P(S1) P(S2)、V(S1)和P(S3) V(S2)
(3)A.P(S1) 和V(S5) B.V(S1) 和P(S5)
C.P(S2) 和V(S5) D.V(S2) 和P(S5)
(4)A.P(S3)和V(S4) V(S5) B.P(S3)和P(S4) P(S5)
C.V(S3)和V(S4) V(S5) D.V(S3)和P(S4) P(S5)
解题思路:
首先得明确下几个概念:
信号量(Si):信号量相当于是进程之间共享的一个变量,且只能进行P操作或者V操作。初始值为0;
P: 信号量减1操作。P(S1) = --S1 等价于S1 = S1-1; 相当于需要申请一个单位的资源;
V:信号量加1操作。V(S1) = ++S1 等价于S1 = S1+1; 相当于生成一个单位的资源;
这种操作看似很简单,但是如果多个组合起来,就能很好的控制进程的执行顺序,且进程可以并行操作。
上图中P1是作业的开头,没有限制,所以无关PV操作。
P2依赖P1操作,P1操作完成后,会操作信号量S1通知P2.所以P2执行的前提是S1有资源,也就是P(S1)>0.否则只能等待;
后面的类似,能够得到如下关系:
热门相关:首席的独宠新娘 天启预报 名门天后:重生国民千金 夫人,你马甲又掉了! 横行霸道