查看更多
当前 - 选择题 - 信号量
简单
单选题
2020年5月第32题
#第二版教材
#必须掌握

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

若用PV操作控制这5个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为(V (S2)和P (S1));空③和空④处应分别为(P (S3) 和V (S5) V (S6));空⑤和空⑥处应分别为(P (S5)和P (S7))。

浓缩知识点

PV操作是实现进程同步与互斥的核心机制,P操作用于申请同步或互斥资源,执行时将对应信号量值减1,若结果小于0,进程会进入阻塞状态等待资源;V操作用于释放资源,执行时将信号量值加1,若结果大于等于0,会唤醒等待该信号量的阻塞进程。在基于前趋图的进程同步场景中,存在先后依赖关系的进程需遵循以下逻辑:前驱进程执行完毕后,要通过V操作释放对应同步信号量,以此通知后继进程资源已就绪;后继进程启动前,必须通过P操作获取前驱进程释放的对应信号量,否则会处于阻塞状态等待。如果一个进程拥有多个前驱进程,需要对每个前驱对应的同步信号量分别执行P操作,只有获取到所有前驱的信号量后,该进程才能开始执行;如果一个进程拥有多个后继进程,执行完成后则要对每个后继对应的同步信号量执行V操作,分别通知各个后继进程可以开始执行。此外,同步类信号量的初始值通常设为0,因为初始状态下无进程释放资源;用于临界区互斥的信号量初始值一般设为1,确保同一时间只有一个进程进入临界区访问资源。

正确答案
D

题目考察的是进程同步与互斥问题
问题 1:信号量操作的顺序应当是:
P2执行前需要P1释放S1,因此P2等待S1P1释放信号量S1,允许P2执行。
正确答案:D. V(S2) 和 P(S1)。
问题 2:根据代码,P3先要等待信号量S3,再进行V操作释放S5与S6的信号量。
正确答案:B. P(S3) 和 V(S5) V(S6)。
问题 3:P4和P5需要P5获取信号量S5和S7。P5执行时,需要先进行P(S5)和P(S7)操作。
正确答案:A. P(S5) 和 P(S7)。

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