最近在准备软考,刷了很多题,但是对PV操作的题型始终保持了一种似懂非懂的状态,所以特地拿出时间梳理下关于PV操作的题型,在这里也分享一下,希望对大家有所帮助
话不多少,进入正题
-----------------------------------------------------------------------------
首先 简单理解下pv 操作
------------------------------------------------------------------------------
P操作——申请资源
V操作——释放资源
信号量——控制资源
同步:协作的过程,例如,多人开发合作;
互斥:争抢资源
临界区:进程中对临界资源实施操作的那段程序;
临界资源:一次只能一个进程使用的资源,例如打印机;
------------------------------------------------------------------------------
接下来 用最常见的 生产者消费者来解析一下(想了想 还是图片比较容易理解)
过程:
生产者过程
1,生产者申请资源 P(s1)
2,判断资源是否满足条件,即信号量 s1=n(初始时仓库为空,所以s1初始信号为n)(n 为仓库的容量)
3.1,资源满足进行生产,产品加入仓库 s1>0 产品加入仓库,V(s2) s2+1
3.2,资源不满足,等待资源释放(等待仓库空出来) s1<=0 等待消费者进行消费
消费者过程
1,消费者申请资源 P(s2)
2,判断资源是否满足条件,即信号量 s2=0(初始仓库为空,所以初始信号为0)
3.1,资源满足进行生产,产品取出仓库 s2>0 () 产品取出仓库 V(s1) s1+1
3.2,资源不满足,等待资源释放(等待仓库中存入产品) s2<=0 仓库无产品,等待生产者生产
-------------------------------------------------------------------------------------------------------------
后续碰到pv 的题目会陆续的往上添加,先写到这吧。。。有不懂得朋友可以在下面评论,大家一起讨论下