返回
当前 - 选择题 - 信号量
简单
题号:0120230500041
单选题
2023年5月第41题

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

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

浓缩知识点

PV操作是实现进程同步与互斥的核心机制,P操作用于等待同步条件或申请资源,执行时将对应信号量减1,若信号量值小于0则进程进入阻塞状态;V操作用于释放同步信号或资源,执行时将对应信号量加1,若信号量值小于等于0则唤醒一个等待该信号的阻塞进程。在基于前趋图的进程同步控制中,遵循核心规则:若进程X是进程Y的前趋进程,那么Y在执行前必须对X对应的同步信号量执行P操作,X执行完成后要对该信号量执行V操作,以此严格保证进程执行顺序。当进程存在多个前趋进程时,需在启动前对每个前趋对应的信号量分别执行P操作,确保所有前置进程全部完成后本进程才开始执行;进程执行结束后,若有后续依赖进程,要对控制后续进程的同步信号量执行V操作,为后续进程的执行放行。对于复杂的前趋依赖场景,部分进程可能需要设置多重同步逻辑,通过多个P操作同时满足多个并行前置进程的完成条件,确保进程执行完全贴合前趋图的依赖链条。

正确答案
B

此题考察操作系统信号量的相关概念。
只要会根据位置标出信号量,知道 P 操作是等待,V 操作是释放即可。
问题 1空① 和 空②
P2 所依赖的是 P1 的完成,所以在 P2 执行前要 等待 P1 执行完,即对 S1 做 P(S1) 操作。
P2 执行完后,会启用 P4,所以要释放给 P4 用的信号量,即 V(S3),还要给 P3 使用一个同步条件,即 V(S4)
因此:空①:P(S1) 空②:V(S3); V(S4)
正确答案是:B. P(S1) 和 V(S3) V(S4)

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