学习交流

备战软考:掌握这些关键点,软考PV操作不丢分

2020-04-21 17:38:52 | 来源:中培企业IT培训网

备战软考的日子其实一点也不轻松,而且还经常遇到一些小小的困难,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操作之后,信号量如果还是为零甚至为负,说明资源释放得还不够,程序还要继续进行释放,不能进行下一步。


| 总结:


P操作,占用资源,满足条件就结束本操作,流向下一步,否则挂起,等待资源的到来;

V操作,释放资源,满足条件就结束本操作,流向下一步,否则等待释放更多的资源;


P(S):

①将信号量S的值减1,即S=S-1;

②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。


V(S):

③将信号量S的值加1,即S=S+1;

④如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。


P、V操作必须成对出现,有一个P操作就一定有一个V操作


2. PV操作图解



3. 真题小练


进程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)。


标签: 软考项目经理