单选题 有两个优先级相同的并发程序P1和P2,它们的执行过程如下所示,假设当前信号量s1=0,s2=0。当前的z=2,进程运行结束后,x、y和z的值分别是______。
进程P1 进程P2
y:=1; x:=1
y:=y+2; x:=x+1;
z:=y+1; P(s1);
V(s1); x:=x+y;
P(s2); z:=x+z;
y:=z+y; V(s2);
  • A.5,9,9
  • B.5,9,4
  • C.5,12,9
  • D.5,12,4
【正确答案】 C
【答案解析】由于进程并发,所以进程的执行具有不确定性,但在P1、P2执行到第一个PV操作前,应该是相互无关的。现在考虑第一个对s1的PV操作,由于进程P2是P(s1)操作,所以它必须等待P1执行完V(s1)操作以后才可继续运行,此时的x、y、z值分别是3,3,4;当进程P1执行完V(s1)以后便在P(s2)上阻塞,此时P2可以运行直到V(s2),此时的x、y、z值分别是5,3,9;进程P1继续运行直到结束,最终的x、y、z值分别为5,12,9。