返回
当前 - 选择题 - 信号量简单
题号:0120220500040
单选题
2022年5月第40题
简单
题号:0120220500040
单选题
2022年5月第40题
信号量
简单
高频
收藏
分享
反馈
进程P1、P2、P3、P4、P5和P6的前趋图如下所示:

若用PV操作控制进程P1、P2、P3、P4、P5和P6并发执行的过程,则需要设置7个信号量S1、S2、S3、S4、S5、S6和S7, 且信号量S1~S7的初值都等于零。如下的进程执行图中,a和b处应分别填写(P(S1)和V(S2)V(S3));c和 d处应分别填写(V(S4)V(S5)和P(S3)P(S4)),e和f处应分别填写(V(S7)和P(S7))。

浓缩知识点
进程同步中,利用PV操作结合前驱图控制多进程并发执行的核心知识点如下:同步信号量初始值一般设为0,用于传递进程完成的同步信号。核心规则为:前驱进程执行结束后,需通过V操作释放对应信号量,以此通知所有依赖它的后继进程;后继进程启动前,必须通过P操作等待所有前驱进程对应的信号量,只有获取到所有前置信号量的许可(即所有前驱均已完成),才能开始执行。若一个进程存在多个前驱,需为每个前驱对应的信号量分别执行P操作,保证所有前置约束均满足;若一个进程存在多个后继,需为每个后继对应的信号量分别执行V操作,实现对所有后继的同步通知,以此严格保障前驱图定义的进程执行时序,避免并发场景下的时序混乱。
正确答案
A
本题考察的是前趋图约束与信号量PV操作的配合。
规则为:前驱完成时执行V释放信号量,后继开始前执行P等待相应信号量,并且当一个结点有多个前驱/后继时,需要对应的多个V或多个P来表达“并发后同步”。
问题1解析(P2所在列的a、b):前趋图表明P2必须在P1之后执行,因此在P2开始前应等待P1释放的信号量;P2完成后同时唤醒其两个后继P3与P4。故a= P(S1),b= V(S2) V(S3),分别对应依赖P1与通知P3、P4。
