试题42(2012年上半年试题50-52)
假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0。进程P1和P2并发执行后a、b和c的结果分别为:a=__(50)__,b=__(51)__,c=__(52)__。
(50)A.6 B.7 C.10 D.13
(51)A.4 B.6 C.9 D.10
(52)A.4 B.6 C.10 D.13
试题42分析
本题考查操作系统PV操作方面的基础知识。
假设P1先运行,系统执行“a:=1;a:=a+2”后a=3;执行“V(S1)”后,S1=1,P1继续执行;执行“c:=a+1”后,c=4;执行“P(S2)”后,S2=-1,P1被阻塞。
此时轮到P2运行,系统执行“b:=1;b:=b+2”后b=3;执行“P(S1)”后,S1=0,P2继续执行;执行“b:=a+b”后,b=6;执行“V(S2)”后S2=0,唤醒P1,P2继续执行;执行“c:=b+c”后,c=10,P2运行结束。
此时轮到P1运行,系统执行“a:=a+c”后,a=13,P1运行结束。
综上分析可见,进程P1和P2并发执行后a、b和c的结果分别为:a=13,b=6,c=10。
试题42答案
(50)D (51)B (52)C