查看更多
当前 - 选择题 - 进程管理
中等
单选题
2013年11月第2题
#操作系统
#进程管理
#第二版教材
#凯恩建议必须掌握

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

若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1-S5的初值都等于0。下图中a、b和c处应分别填写(问题1);d、e和f处应分别填写(问题2)

正确答案C
凯恩解析

本题考察的是用信号量实现前驱约束(进程同步)
信号量初值为0表示“需等待”。在前趋图中,每一条有向边用一个信号量表示“前驱完成后释放,后继开始时等待”。根据图中依赖关系:P1→P2 用S1,P1→P3 用S2,P3→P2 用S3,P2→P4 用S4,P3→P4 用S5。

问题1
A选项 V(S1)V(S2)、P(S1)V(S3)和V(S4):b处为P2开始位置,P2应等待P1与P3完成,应为P(S1)与P(S3)同时等待,但该项把P(S3)放在V后续组合不当,且缺少对S3的等待顺序一致性表达,错误。
B选项 P(S1)V(S2)、P(S1)P(S2)和V(S1):a处在P1末尾应释放给P2和P3的两个信号量,应为V(S1)与V(S2),而不是P;c处应释放给P4的是S4,而不是V(S1),错误。
C选项 V(S1)V(S2)、P(S1)P(S3)和V(S4):a为P1结束后向P2、P3分别发信号,故V(S1)V(S2)正确;b为P2开始需等待来自P1和P3的S1与S3,故P(S1)P(S3)正确;c为P2结束后通知P4可继续,故V(S4)正确。此项正确。
D选项 P(S1)P(S2)、V(S1)P(S3)和V(S2):a处错误地用P;c处应发S4而非S2,错误。
所以选择 C。

问题2
A选项 P(S2)、V(S3)V(S5)和P(S4)P(S5):d为P3开始需等待来自P1的S2,故P(S2)正确;e为P3结束后需分别通知P2与P4,故V(S3)V(S5)正确;f为P4开始需等待来自P2与P3的S4与S5,故P(S4)P(S5)正确。此项正确。
B选项 V(S2)、P(S3)V(S5)和V(S4)P(S5):d应为等待而非释放,V(S2)错误;f应为等待两个信号量而非对S4执行V,错误。
C选项 P(S2)、V(S3)P(S5)和P(S4)V(S5):e处对S5不应等待而应释放,P(S5)错误;f处对S5不应释放而应等待,V(S5)错误。
D选项 V(S2)、V(S3)P(S5)和P(S4)V(S5):同样把等待与释放颠倒,错误。
所以选择 A。

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