【软考|软件设计师】进程p1,p2,p3,p4,p5和p6的前趋图
目录
题目:
进程p1,p2,p3,p4,p5和p6的前趋图如下图所示。用PV操作控制这6个进程之间同步与互斥
的程序如下,程序中的空(1)和空(2)处应分别为________,空(3)和空(4)处分别为________,
空(5)和空(6)处应分别为________.
begin
S1 , S2, S3, S4, S5, S6: semaphore; //定义信号量
S1:=0; S2:=0; S3:=0; S4:=0; S5:=0; S6:=0;
Cobegin
process P1 process P2 process P3 process P4 process P5 process P6
begin begin begin begin begin begin
P1执行; (1); P(S2) (4) P(S4); (6)
V(S1); P2执行 P3执行 P4执行 P5执行 P(S6)
end; (2); (3); V(S5) (5) P6执行
Coend; end; end; end; end; end;
end;
答:
PV操作中的P代表通过,V代表释放
从图可知,P1是第一个进程,P6是最后一个进程,
因此P1只有V操作,信号量是S1,即V(S1),
而P6只有P操作,信号量是S5和S6,结果为P(S5)和P(S6)
中间进程P2,P3,P4,P5不仅有P操作也有V操作:
P2: P(S1) , V(S2),V(S3)
P3: P(S2), V(S4)
P4: P(S3), V(S5)
P5: P(S4), V(S6)
综上:
空(1): P(S1)
空(2): V(S2) V(S3)
空(3): V(S4)
空(4): P(S3)
空(5) : V(S6)
空(6):p(S5)