扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 信号量简单
单选题
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处应分别填写(问题1);c和 d处应分别填写(问题2),e和f处应分别填写(问题3)。

正确答案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。
问题2解析(P3完成后的c与P4开始前的d):P3开始前已在图中给出等待P(S2)(来自P2)。P3完成后需同时通知其两个后继P4与P5,故c= V(S4) V(S5)。P4有两个前驱P2与P3,因此在开始前需同时等待二者的完成,故d= P(S3) P(S4)。
问题3解析(P5完成后的e与P6开始前的f):P5开始前已等待P(S5)(来自P3)。P5完成后要向最终结点P6发出一个同步信号,故e= V(S7)。P6有两个前驱P4与P5,执行前需同时等待来自P4的S6与来自P5的S7,因此f= P(S7)(而P(S6)已在图中给出)。
