首页 > 其他 > 详细

PV操作

时间:2021-05-18 23:19:35      阅读:57      评论:0      收藏:0      [点我收藏+]

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

 

PV操作

原文:https://www.cnblogs.com/yansunda/p/14782706.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!