软件设计师2023年上半年第26-28题——PV操作

一、题目

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


前驱图

若用PV操作控制进程P1、P2、P3、P4、P5和P6并发执行的过程,需要设置8个信号量S1、S2、S3、S4、S5、S6、S7和S8,且信号量S1-S8的初值都等于零。下面P1-P6的进程执行过程中,①和②处应分别填写(26);③和④处应分别填写(27):⑤和⑥处应分别填写(28)。

执行过程

1. 第26题选项

A. P(S1)P(S2)和V(S3)V(S4)
B. P(S1)P(S2)和V(S1)V(S2)
C. V(S3)V(S4)和P(S1) P(S2)
D. V(S3)V(S4)和P(S2)P(S3)

2. 第27题选项

A. V (S5)和P(S4)P(S5)
B. V(S3)和P(S4)V(S5)
C. P(S5)和V(S4)V(S5)
D. P(S3)和P(S4)P(S5)

3. 第28题选项

A. V(S6)和V(S8)
B. P(S6)和P(S7)
C. P(S6)和V(S8)
D. P(S6)和P(S8)

二、分析

  • ① 由前驱图可知,P2进程结束后,应给P3进程、P4进程各释放一个信号量,由于S1S2信号量已被使用,因此这里可以使用S3S4信号量,即:V(S3)、V(S4)
  • P3进程开始前,需要分别等待P1进程、P2进程结束:由于P1释放的信号量S1已被P2使用,因此P3需等待P1释放的S2信号量,即:P(S2);由①可知P2释放了S3S4两个信号量,因此P3可以等待S3信号量,即:P(S3)。所以这里应该填写P(S2)、P(S3)
  • P3进程结束后,需要执行P4进程,因此需要释放S5信号量给P4,即:V(S5)
  • P4进程结束前,需要执行P2P3进程,因此需要等待P2进程释放的S4信号量,即:P(S4),以及P3进程释放的S5信号量,即:P(S5)。所以这里应该填写P(S4)、P(S5)
  • P5进程开始前,需要执行P4进程,P4进程结束时释放了两个信号量S6S7,由于S7信号量被P6进程使用了,因此P5应等待S6信号量,即:P(S6)
  • P5进程结束后,需要执行P6进程,由P6进程开始前等待的两个信号量S7(由P4进程释放)、S8可知,P5应释放信号量S8,即:V(S8)

三、答案

  • 综上所述,答案应为:
    • (26) D. V(S3)V(S4)和P(S2)P(S3)
    • (27) A. V (S5)和P(S4)P(S5)
    • (28) C. P(S6)和V(S8)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容