查看更多
当前 - 选择题 - 信号量
简单
单选题
2015年5月第39题
#操作系统
#信号量
#第二版教材
#凯恩建议必须掌握

进程P1、P2、P3、P4、P5和P6的前趋图如下所示:

若用PV操作控制这6个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为(问题1);空③和空④处应分别为(问题2);空⑤和空⑥处应分别为(问题3)

正确答案B
凯恩解析

本题考察的是前趋图约束下的PV信号量同步设计
核心原则:前驱完成时执行V释放信号量,后继开始前执行P等待该信号量。据图可知依赖关系为:P1→P2;P2→P3、P4;P3→P4、P5;P4、P5→P6。
问题1
A选项 V(S1)和P(S2):应在P2开始前等待P1完成,因此应P(S1)而非V,错误。
B选项 P(S1)和V(S2):P2在开始前等待S1(由P1结束V(S1)释放);P2完成后需唤醒P3(依赖P2),因此V(S2),正确。
C选项 V(S1)和V(S2):开始前不应V(S1),错误。
D选项 V(S2)和P(S1):次序不符,错误。
所以选择 B。

问题2
A选项 V(S4)V(S5)和P(S3):P3完成后需唤醒其后继P4与P5,故V(S4)和V(S5);P4在开始前除自身的P(S4)外,还需等待来自P2的S3(因P2→P4),故在④处为P(S3),正确。
B选项 P(S4)P(S5)和V(S3):P3结束不应P而应V,错误;P4开始前不应V(S3),错误。
C选项 V(S3)V(S4)和V(S5):把P3与P2的关系混淆,错误。
D选项 P(S3)V(S4)和P(S3):③位置为P而非V,错误。
所以选择 A。

问题3
A选项 P(S6)和V(S5):⑤位于P4结束处,应释放给P6的信号量S6(因P4→P6),不应P;⑥位于P5开始处,应等待来自P3的S5,非V,故本项不匹配。
B选项 P(S6)和P(S5):⑤应为V(S6)以唤醒P6,错误。
C选项 V(S5)和V(S6):⑤应为V(S6)而不是V(S5);⑥处应等待而非释放,错误。
D选项 V(S6)和P(S5):P4结束后V(S6)以满足P6对S6的等待;P5开始前P(S5)以等待P3完成(P3→P5),正确。
所以选择 D。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有