进程通讯P,V操作热身题:1、设有两个优先级相同的进程P1,P2如下,令信号量S1,S2的初值为0,试问P1,P2并发运行结束后x=
进程P1进程P2y=y+1;x=x+1;y=y+2;x=x+1;V(S1);P(S1);z=y+1;x=x+y;P(S2);V(S2);y=z+y;z=x+z;解:进程P1进程P2y=y+1;x=x+1;y=y+2;y=3x=x+1;x=2V(S1);S1=1P(S1);S1=-1------0z=y+1;z=4x=x+y;x=5P(S2);S2=-1-------0V(S2);S2=1y=z+y;y=12z=x+z;z=92、下面是两个并发执行的进程,它们能正确执行吗
若不能,请说明错误的原因,并改正之
intx;main(){P1();P2();}ProcessP1(){inty,z;x=1;y=0;ifx1y=y+1;z=y;}ProcessP2(){intt,u;x=0;t=0;ifx1t=t+2;u=t;}修改如下:intx;intmutex=1;main(){P1();P2();}ProcessP1(){inty,z;y=0;P(mutex);x=1;ifx1y=y+1;V(mutex);z=y;}ProcessP2(){intt,u;t=0;P(mutex);x=0;ifx1t=t+2;V(mutex);u=t;}3
设Pa,Pb,Pc为一组合作进程,其进程流程图如下所示
试用信号灯的P、V操作实现这三个进程的同步
intsb=0;intsc=0;main(){Pa();SFPaPbPcPb();Pc();}Pa(){…
V(sb);V(sc);}Pb(){P(sb);…}Pc(){P(sc);…}PV操作例题例1:某游艺场设置了一个自动计数系统,用计数器count表示在场的人数
若有一个人进入游艺场,进程P