PV操作——软考探究(五)

之前总结了和资源有关的银行家算法,随着学习的深入,对于资源的理解也有了更深的理解,此篇文章通过解决同步、异步问题的典型机制——PV操作来加深对资源的理解。

P操作:申请一个资源。它是执行操作的前提,只有有了资源才可以执行操作。就和现实生活是一样的,只有有了资源才能够进行生产。

V操作:释放一个资源。在执行完毕一个操作以后要将占用的资源释放掉,和银行家算法吻合, 同时发出信号。

【例】两个相关联的进程A和B,他们共享一个缓冲器。进程A不断地读入数据,并送入缓冲器;进程B不断地从缓冲器中取出数据并加工。所以这里两个进程就存在着制约关系,便可以通过PV操作来解决。

     

现声明两个信号S1、S2,分别表示进程A和进程B的两个状态,当进程A读入数据并送入缓冲器时,完成自己的读取工作,并发出信号提示进程B可以来缓冲器取数据;此时,进程B得到信号后,从缓冲器中取出数据加工完毕之后发出完毕信号提示进程A可以继续执行自己的工作,这便是他俩的工作制约关系。针对这一流程PV原语如下:

begin

  S1,S2:semaphore;

  S1:=1,S2:=1;    

  cobegin

  process P1

    begin

      L1:P(S1);

         V(S2);

         go to L1;

    end;

  process P2

    begin

      L2:P(S2);

         V(S1);

         go to L2;

    end;

  coend;

end; 

PV操作解决的问题:

1.顺利解决了同步进程的冲突问题;

2.实现了进程的同步和共享资源的互斥操作;

    当然,对于PV操作自己的理解还很肤浅,只是冰山一角,有待提高,望各位大神多多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值