软件设计师十一(PV操作)

PV操作

临界资源

临界资源是一段代码

信号量

信号量是一种特殊变量

  • 可以表示资源数量
  • 为负数时表示排队进程数

pv是操作系统的原语
在这里插入图片描述
单缓冲区生产者,消费者问题(同步模型):
在这里插入图片描述
互斥与同步模型结合:
在这里插入图片描述
同步信号量:S1初值为1,S2初值为0。
互斥信号量:S初值为1。

前趋图与PV操作

在这里插入图片描述
在这里插入图片描述

试题

进程 P1、P2 、P3、P4 和 P5 的前趋图如下所示:
在这里插入图片描述
若用 PV 操作控制进程 P1、P2、P3、P4 和 P5 并发执行的过程,需要设置 5 个信号量 S1、S2、S3、S4 和 S5,且信号量 S1~S5 的初值都等于零。如下的进程执行图中 a 和 b 处应分别填写(26);c 和 d 处应分别填写(27) ;e 和 f 处应分别填写(28)。在这里插入图片描述
(26) 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)
(27)
A.P(S2)和 P(S4)
B.V(S2)和P(S4)
C.P(S2)和 V(S4)
D.V(S2)和 V(S4)
(28)
A.P(S4)和 V(S5)
B.V(S5)和 P(S4)
C.V(S4)和 P(S5)
D.V(S4)和 V(S5)
【答案】B C A
【解析】箭头线开始位置为V,末端为P。P代表是请求资源,V代表释放资源。

进程P1、P2、P3、P4和P5的前趋图如下图所示:
在这里插入图片描述
若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填(26);c和d处应分别填写(27);e和f处应分别填写(28)。
在这里插入图片描述>
(26)
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)

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

(28)
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)
【答案】C B B 【解析】

解决这类问题,可以先将信号量标于箭线之上,如:
在这里插入图片描述
再以此原则进行PV操作填充:
(1)若从P进程结点引出某些信号量,则在P进程末尾对这些信号量执行V操作。如:P1引出了信号量S1与S2,则P1末尾有:V(S1)V(S2)。
(2)若有信号量指向某进程P,则在P进程开始位置有这些信号量的P操作。如:S1进程指向P2,所以P2开始位置有P(S1)。 注意:
在这类题中,S1-S5具体标在哪个箭线上值得注意,标注的基本原则是:从结点标号小的开始标。如:P1引出两条线,则这两条必然是S1与S2,而由于指向的分别是P2P3,所以S1对应指向P2的箭头,S2对应指向P3的箭头。

假设系统中有n个进程共享3台扫描仪,并采用PV操怍实现进程同步与互斥。若系统信号量S的当前值为-1,进程P1、P2又分别执行了1次P(S)操作,那么信号量S的值应为(27)。
A.3
B.-3
C.1
D.-1
【答案】B 【解析】
当有进程运行时,其他进程访问信号量,信号量就会减1。S=-1-2。

某企业的生产流水线上有2名工人P1和P2,1名检验员P3。P1将初步加工的半成品放入半成品箱B1;P2从半成品箱B1取出继续加工,加工好的产品放入成品箱B2;P3从成品箱B2去除产品校验。假设B1可存放n件半成品,B2可存放m件产品,并设置6个信号量S1、S2、S3、S4、S5和S6,且S3和S6的初值都为0。采用PV操作实现P1、P2和P3的同步模型如下图所示,则信号量S1和S5(23);S2、S4的初值分别为(24)。
在这里插入图片描述
(23)
A.分别为同步信号量和互斥信号量,初值分别为0和1
B.都是同步信号量,其初值分别为0和0
C.都是互斥信号量,其初值分别为1和1
D.都是互斥信号量,其初值分别为0和1
(24)
A.n、0
B.m、0
C.m、n
D.n、m
【答案】C D 【解析】
试题(23)的正确的答案为C。因为信号量S1是一个互斥信号量,表示半成品箱B1当前有无工人(生产者)使用,所以初值为1。信号量S5也是一个互斥信号量,表示成品箱B2当前有无工人或检验员使用,所以初值为1。
试题(24)的正确的答案为D。信号量S2表示半成品箱B1的容量,故S2的初值为n。当工人P1不断地将其工序上加工的半成品放入半成品箱B1时,应该先测试半成品箱是否有空位,故工人P1使用P(S2),当工人P2从半成品箱取一件半成品时,半成品箱B1就空出一个空位,故工人P2使用V(S2)释放空间。
同理,信号量S4表示成品箱B2的容量,故S4的初值为m。当工人P2完成一件产品放入成品箱B2时,应该先测试成品箱是否有空位,故工人P2使用P(S4)f当检验员P3从成品箱取一件产品检验时,成品箱B2就空出一个空位,故检验员P3使用V(S4)释放空间。

进程P1、P2、P3、P4和P5的前趋图如下所示:
在这里插入图片描述
若用PV操作控制进程P1、P2、P3、P4 、P5并发执行的过程,则需要设置5个信号
量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a、b
和c处应分别填写(23);d和e处应分别填写(24),f和g处应分别填写(25)。
在这里插入图片描述
(23)
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)
(24)
A.V(S2)和P(S4)
B.P(S2)和V(S4)
C.P(S2)和P(S4)
D.V(S2)和V(S4)
(25)
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 B C
【解析】
试题(23)的正确的答案为A。根据前驱图,P1进程执行完需要通知P2进程,故需要利用V (S1)操作通知P2进程,所以空a应填V (S1); P2进程需要等待P1进程的结果,故需要利用P (S1)操作测试P1进程是否运行完,所以空b应填P (S1);又由于P2进程运行结束需要利用V (S2)、V (S3)操作分别通知P3、P4进程,所以空c应填V (S2)、V (S3)。
试题(24)的正确的答案为B。根据前驱图,P3进程运行前需要等待P2进程的结果,故需执行程序前要先利用1个P操作,根据排除法可选项只有选项B和选项C。又因为P3进程运行结束后需要利用1个V操作通知P5进程,根据排除法可选项只有选项B满足要求。
试题(25)的正确的答案为C。根据前驱图,P4进程执行前需要等待P2进程的结果,故空f处需要1个P操作;P5进程执行前需要等待P3和P4进程的结果,故空g处需要2个P操作。根据排除法可选项只有选项C能满足要求。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值