PV操作与前趋图题型

Posted 天界程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。得到的结果如下图所示:
在这里插入图片描述

以上是关于PV操作与前趋图题型的主要内容,如果未能解决你的问题,请参考以下文章

操作系统第二章

操作系统基本原理

软考 系统架构设计师操作系统② 进程管理

-进程

-进程

C3线性表和MRO