PV操作

1.PV操作的相关概念

| 临界资源

虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机等。此外,还有许多变量、数据等都可以被若干进程共享,也属于临界资源。

| 临界区

对临界资源的访问,必须互斥地进行,在每个进程中,访问临界资源的那段代码称为临界区。

| 信号量机制

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。

| 信号量的物理含义

S>0 表示有S个资源可用

S=0 表示无资源可用

S<0 则 |S| 表示S等待队列中的进程个数

| PV操作

用于处理进程互斥问题,协调资源的作用。

P操作,代表需要、申请、锁定、占用资源。信号量 S - 1;

  如果减 1 后大于等于 0,即 S - 1 >= 0,即 S >= 1 ,则往下执行,

  有些题目里,如果进程需要开启,那信号量往往就要满足这个条件,起码要 S = 1。

V操作,代表释放资源,信号量 S + 1;

  如果加 1 后大于 0,即 S + 1 > 0 ,则往下执行

  V操作之后,信号量如果还是为零甚至为负,说明资源释放得还不够,程序还要继续进行释放,不能进行下一步。

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

 

 

 若用PV操作控制进程P1、P2、P3、P4和P5的并发执行过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填入___;c和d处应分别填入___;e和f处应分别填入___。

 

 

解答:

根据前趋图,P1进程执行完需要通知P2和P3进程,所以需要利用V(S1)和V(S2)操作通知P2和P3进程,所以空a应该填V(S1)和V(S2),P2进程执行完要通知P4进程,所以空b应该填V(S3)。

P3进程运行前需要等待P1进程的结果,所以执行程序前要先利用1个P操作,所以空c应该填P(S2),而P3进程运行结束需要利用一个V操作通知P5进程,所以空d应该填V(S4)。

P4进程执行结束需要利用一个V操作通知P5进程,所以空e应该填V(S5),P5进程执行前需要等待P3和P4进程的结果,所以空f处需要两个P操作,则f应该填P(S4)和P(S5)。

 

例:进程 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)

解:

26空中,ab,填的值根据p2来决定。执行p2之前需要吧p1的释放掉,所以a天p(s1)。p2结束后要生成空间给p3和p4.所以b天v(s2)v(s3),选B。

27空中,cd,填的值根据p3来决定。执行p3之前需要把p2的值s2释放掉,且生成空间给p4。所以c是p(s2),d填写v(s4)。选C。

28孔中,ef,填的值根据p4来决定。执行p4之前需要把p4的值释放掉,并且生成空间给p5。所以e是p(s4),f填写v(s5)。选A

 

posted @ 2021-05-18 20:53  洛飞  阅读(1536)  评论(0编辑  收藏  举报