有2个优先级相同的并发进程P1和P2,它们的执行过程如下图所示,x、y和z是共享变量。假设,当前信号量s1=0,s2=0,进程运行结束后,x、y和z的值分别为( )。 进程P1 进程P2 …… ……

admin2019-08-10  45

问题 有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操作。
转载请注明原文地址:https://kaotiyun.com/show/FgCi777K
0

随机试题
最新回复(0)