有两个优先级相同的并发程序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);
。。。
进程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);
。。。
举一反三
- 有两个优先级相同的并发程序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); ... ....
- 2个优先级相同的并发进程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
- 有两个优先级相同的并发进程P1和P2,它们的执行过程如下。设当前信号量s1=0,s2=0,当前z=2,进程运行结束后,x、y和z的值分别是( )。[br][/br]进程P1 进程P2[br][/br]y=1; x=1; [br][/br]y=y+2; x=x+1;[br][/br]z=y+1; P(s1);[br][/br]V(s1); x=x+y;[br][/br]P(s2); z=x+z;[br][/br]y=z+y; V(s2); A: 5,9,9 B: 5,9,4 C: 5,12,9 D: 5,12,4
- 有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; 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
- 有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问P1、P2并发执行后,x、y的值各为多少? P1: P2: begin begin y:=1; x:=1; y:=y+3; x:=x+5; V(S1); P(S1); z:=y+1; x:=x+y; P(S2); V(S2); y:=z+yend z:=z+x; end