扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 信号量中等
单选题
2012年5月第34题
收藏
分享
#操作系统
#信号量
#第二版教材
#凯恩建议必须掌握
假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0。进程P1和P2并发执行后a、b和c的结果分别为:a=(问题1),b=(问题2),c=(问题3)。

正确答案D
凯恩解析
本题考察的是信号量同步与非抢占式优先级调度在并发程序中的综合应用。
非抢占式下,进程占有 CPU 将一直运行,直至主动阻塞(如执行 P 操作而等待)或结束。
S1、S2 初值均为 0,P 为等待(不可用则阻塞),V 为释放/唤醒。
根据题意取常见调度路径:P1 先运行,直到在 P(S2) 处阻塞,切换到 P2,P2 运行完后再回到 P1 收尾。
P1:a:=1 → a:=a+2=3 → V(S1)(S1=1)→ c:=a+1=4 → P(S2)(S2=0,P1阻塞)。
P2:b:=1 → b:=b+2=3 → P(S1)(取走S1=1→0,不阻塞)→ b:=a+b=3+3=6 → V(S2)(唤醒P1) → c:=b+c=6+4=10,P2结束。
P1被唤醒继续:a:=a+c=3+10=13,P1结束。
由此得到:a=13,b=6,c=10。
