首页 > 其他 > 详细

pv操作

时间:2020-07-29 12:24:52      阅读:63      评论:0      收藏:0      [点我收藏+]

1、如何理解p、v操作:

           P: s-- 若s>=0 则占有资源,向下执行 ,否则等待该资源,底层表现在加入该资源的等待队列上

           V:  s++ 即归还资源,若s>0 则继续向下执行,若s<=0  ,则说明原本s的值是负数,有进程正在等待,此时需要从等待队列上将其唤醒。(s=0,表示有一个在等待,依次类推)

           执行完P、V操作之后的s值:  s>=0 s表现为可用的资源数   S<0表现为正在等待的进程数。

 

 

2、 如何做P、V操作题 :

          

             1、分析题目,抽取进程的逻辑关系,具体表现为每个进程需要什么资源  做什么事 返还什么资源 。如若要根据某种情况选择不同的执行方案 则需要增加 控制变量 ,当然这也是临界变量;  

             2、选择信号量,即互斥信号量和同步信号量。 互斥信号量即两个进程对临界资源的访问,这取决于临界资源的个数,一般为1。 设置同步信号量取决于上一步中逻辑关系,每个进程什么时候需要被阻塞 ,则加一个信号量,一般来说 一个信号量用于阻塞一个进程,被另一个进程唤醒。

 

3、伪代码

       

                1、遵循这样一个原则,先P(同步信号量),再P(互斥信号量),操作 ,V(互斥信号量),V(同步信号量)

pv操作

原文:https://www.cnblogs.com/chennywang/p/13396267.html

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