信号量和PV操作

信号量s:就是对于进程来说,就是一个资源的数量的,信号量是一个整数,信号量为正数,表示该类的资源可以使用的个数,信号量为0 的时候,表示该资源没有了!但是如果信号量为负的时候,表示该资源的没有,但是还有信号量的绝对值那么多的进程在等待这个资源。

  关于信号量的操作:有PV操作。

   P操作:P操作是原语操作,P操作在执行的时候,不能被打断的,

  P操作的内部过程

   void P(Semaphore s)

  {

     s--;

     if(s< 0)

    {

         wait(s); //进程调用wait进行自我封锁,进入等待状态;

   }

  }

 

 

P操作的含义是将信号量s减少1,如果这时s< 0,表示原先s最多是0,已经没有医院可以用了,因此这使得进程在信号量上等待,自己进入等待的状态。

V操作的内部的表示的过程

 

 void  V (Semphore s)

{

    s++;

  if(s <0)

  revoke(s);// 该进程担负唤醒在信号量s上的等待的进程;

   

 

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值