PV操作与前趋图题型

练习题1

在这里插入图片描述问:进程A、B、C、D该执行什么PV操作?
答:
进程A——剁肉;V(Sa)   进程B——切葱花;V(Sb)    进程C——切姜粒;V(Sc)
进程D——搅拌肉馅;P(Sa)、P(Sb)、P(Sc)、V(Sd)
进程E——包饺子;P(Sd)

前趋图:是为了描述一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示。



练习题2

进程P1、P2、P3、P4、P5的前趋图如下:
在这里插入图片描述

  若用PV操作控制进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4且信号量初值都等于零。下图中a和b应分别填写(1) ,c和d应分别填写(2), e和f应分别填写(3)。
在这里插入图片描述

第一空:
A. P(S1)和P(S2)
B. P(S1)和V(S2)
C. V(S1)和V(S2)
D. V(S1)和P(S2)

第二空:
A. P(S1)、P(S2)和V(S3)、V(S4)
B. P(S1)、P(S2)和P(S3)、P(S4)
C. V(S1)、V(S2)和P(S3)、P(S4)
D. V(S1)、V(S2)和V(S3)、V(S4)

第三空:
A. P(S3)和P(S4)
B. P(S3)和V(S4)
C. V(S3)和V(S4)
D. V(S3)和P(S4)

注意:此题我们可以将信号量S1…S4依次标注在图1的4个箭头上,在用PV操作去思考解题思路。



练习题3

  假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0。进程P1和P2并发执行后a、b和c的结果分别为:a=_ (1) _、b= _ (2) _、c= _ (3) _。

P1程序段begin{                                			P2程序段begin{
a:=1;													 b:=2;							
a:=a+1;													 b:=b+1;
V(S1);													 P(S1);
c:=a+5;													 b:=a+b;
P(S2);													 V(S2);
a:=a+c;										 			 c:=b+c;
}														 }
end											 			 end

(1) A. 9   B. 12   C. 13   D. 14
(1) A. 5   B. 6     C. 9     D. 10
(1) A. 4   B. 6     C. 12   D. 13

注意:此题着重说明了不考虑优先级,所以我们不能按照常规的PV操作去思考本题。在进程P1阻塞的情况下,当P2去唤醒P1时不生效,P2还是依次执行完毕后再次执行P2。得到的结果如下图所示:
在这里插入图片描述

  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天界程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值