A-A+

有2个优先级相同的并发进程P1和P2 它们的执行过程如下图所示 x y和z是共享变量。假设

2022-08-06 18:30:18 问答库 阅读 180 次

问题详情

有2个优先级相同的并发进程P1和P2,它们的执行过程如下图所示,x、y和z是共享变量。假设,当前信号量s1=0,s2=0,进程运行结束后,x、y和z的值分别为()。
进程P1 进程P2
…… ……
y:=20; x:=10;
y:=y+1; x:=x+1;
y:=y+1; x:=x+1;
z:=y+1; P(s1);
V(s1); x:=x+y;
P(s2); z:=x+z;
y:=z+y; V(s2);
A.33,42,22
B.11,42,33
C.33,76,55
D.33,76,33请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
解析:本题考查并发进程的特点,并结合信号量进行同步的原理。由于进程并发,所以,进程的执行具有不确定性,在P1、P2执行到第一个PV操作前,应该是相互无关的。现在考虑第一个对s1的PV操作,由于进程P2是P(s1)操作,所以,它必须等待P1执行完V(s1)操作以后才可继续运行,此时的xyz值分别为11,21,22,当进程P1执行完V (s1)以后便在P(s2)上阻塞,此时P2可以运行直到V(s2),此时的xyz值分别为33,21,55,进程P1继续运行直到结束,最终的xyz值分别为33,76,55。在此需注意,xyz应该是共享变量,若是私有变量,则进程P1、P2就各自独立对xyz操作。

考点:优先级,变量