当前位置:首页计算机类软件水平考试中级软件设计师->进程P1、P2、P3、P4和P5前趋图如下:若用PV操作控制

进程P1、P2、P3、P4和P5前趋图如下:

中级软件设计师,章节练习,基础复习,中级软件设计师基础

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

中级软件设计师,章节练习,基础复习,中级软件设计师基础

  • A.P(S1)P(S2)和P(S3)P(S4)
  • B.P(S1)V(S2)和P(S2)V(S1)
  • C.V(S1)V(S2)和V(S3)V(S4)
  • D.P(S1)P(S2)和V(S1)V(S2)
答案: C
本题解析:

本题主要考查用PV操作控制进程并发执行。首先我们需要弄清楚前驱图中给出各进制执行顺序。从图中我们不难看出进程P1和P2没有前驱,也就是可以首先并发执行,而进程P3前驱是P1和P2,P4前驱是P1和P3,P5前驱是P2和P3。那么怎么理解前驱呢?其实前驱就是指只有在前驱进程完成后,该进程才能开始执行。在本题前驱图中我们不难看出,有6条路径,分别是P1-小于P3,P1-小于P4,P2-小于P3,P2-小于P5,P3-小于P4,P3-小于P5。而且题目也告诉我们分别有6初值为0个信号量(S1-S6),要我们用PV操作来控制进程P1~P5并发执行。这里我们就需要清楚P与V这两种操作。P原语主要操作是:(1)信号量(sem)减1;(2)若相减结果大于等于零,则进程继续执行;(3)若相减结果小于零,则阻塞一个在该信号量上进程,然后再返回原进程继续执行或转进程调度。V原语主要操作是:(1)信号量(sem)加1;(2)若相加结果大于零,则进程继续执行;(3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上进程,然后再返回原进程继续执行或转进程调度。总而言之,进行P操作主要目是阻塞某信号量上进程,而进行V操作主要目是唤醒某信号量上进程。下面我们具体来求解这个题目。a空处,是在进程P1执行完成以后,那么根据题目前驱图我们可以知道,这个时候它应该唤醒它后继进程P3和P4,因此需要执行两个V操作,同样道路,b空处也需要执行两个V操作,因此可以知道第一空答案选C。至于C空处,它是在进程P3执行前进行处理。根据前驱意义,我们可以知道执行P3要在P1和P2完成后,因此这个时候,它首先需要判断P1和P2进程是否完成,如何它们完成话,会分别执行唤醒P3V操作(换句话说就是会给相应信号量进行加1操作),那么这个时候我们也可以通过同样信号量来判断,即对相应信号量进行减1操作,判断它是否大于0,如果大于等于0,则执行P3。从题目给出答案来看,这两个信号量应该分别是S1和S3。那么执行完P3后,它也需要唤醒它后继进程P4和P5,因此需要执行两个V操作,因此D空处应该是两个V操作。综上所述,我们可以知道第二空答案选B。分析到这里后,第三空答案应该就很明显了,P4和P5进程在执行前,都需要做与P3进程执行前一样判断,因此都需要进行两个P操作。所以本题答案选C。其实做这类题也不难,首先需要我们对PV操作要有一个透彻理解,另外就是能分析出题目执行逻辑关系。

更新时间:2022-08-01 06:39
纠错

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)、P(S1)和V(S2)V(S3)
  • B.P(S1)、V (S1)和V(S2)V(S3)
  • C.V(S1)、V(S2)和P(S1)V(S3)
  • D.P(S1)、V(S2)和V(S1)V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.序列图
  • B.状态图
  • C.通信图
  • D.活动图
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.合并分叉
  • B.分支
  • C.合并汇合
  • D.流
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.产甲2套,乙3套
  • B.生产甲1套,乙4套
  • C.生产甲3套,乙4套
  • D.生产甲4套,乙2套
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案