进程P1、P2、P3、P4和P5的前趋图如下所示: 若用PV操作控制这5个

最全题库2022-08-02  37

问题 进程P1、P2、P3、P4和P5的前趋图如下所示:若用PV操作控制这5个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为(  );空③和空④处应分别为(  );空⑤和空⑥处应分别为(  )。问题1选项A.V(S1)和P(S2)B.P(S1)和V(S2)C.V(S1)和V(S2)D.V(S2)和P(S1)问题2选项A.V(S3)和V(S5)B.P(S3)和V(S5)C.V(S3)和P(S5)D.P(S3)和P(S5)问题3选项A.P(S6)和P(S5)V(S6)B.V(S5)和V(S5)V(S6)C.V(S6)和P(S5)P(S6)D.P(S6)和P(S5)P(S6)

选项

答案 DBC

解析 本题考查的是利用PV操作控制进程的并发执行。
先理清楚前趋图中的逻辑关系:P1没有前驱,P2的前驱是P1,P3的前驱是P1、P2,P4的前驱是P2,P5的前驱是P3、P4。
前驱就是指只有在前驱进程完成后,该进程才能开始执行。由图可知,这里进程之间有6条有向弧,分别表示为P1→P2,P1→P3,P2→P3,P2→P4,P3→P5,P4→P5,各个进程间的逻辑关系,那么我们需要设定6个信号量(S1、S2、S3、S4、S5、S6),利用PV操作来控制这些过程。
对于第一个空,P1执行完成之后,需要通知P2、P3可以开始,此处需要V(S1)、V(S2)操作分别唤醒P2、P3进程,已有V(S1),此处需要填写V(S2)。
对于第二个空,P2执行之前,需要检查P1进程是否完成,因此需要通过P(S1)操作来判定,P1是否完成。
对于第三个空,在P3执行之前,需要检查P1、P2进程是否完成,因此需要通过P(S2)、P(S3)操作来判定P1、P2是否完成,已有P(S2),此处填写P(S3)。
对于第四空,P3执行完成后,需要通知P5进程可以开始,此处需要通过V(S5)操作唤醒P5进程。
对于第五空,P4进程完成后,需要通知P5进程可以开始,此处需要通过V(S6)操作唤醒P5进程。
对于第六空,P5进程开始之前,需要检查P3、P4进程是否已完成,因此需要P(S5)、P(S6)操作来判断P3、P4是否完成。
综上,本题分别选择D、B、C选项。
转载请注明原文地址:https://tihaiku.com/congyezige/2409672.html

最新回复(0)