【信号量操作】

 【信号量操作】
  P操作:申请资源,S=S-1,若是S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
  V操作:释放资源,S=S+1,若是S>=0,则执行V操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
  例:
  生产者和消费者的问题中,生产者生产一个商品S,而后要申请互斥的使用该仓库,即首先需要执行互斥信号量P(S0),申请到仓库独立使用权后,再判断仓库是否有空闲(信号量S1),执行P(S1),若结果大于等于0,表示仓库有空闲,再将S放入仓库中,此时仓库商品数量(信号量S2)增加1,即执行V(S2)操作,使用完毕后,释放互斥信号量V(S0)。
  对于消费者,首先也需要执行互斥信号量P(S0),申请到仓库独立使用权后,再判断仓库中是否有商品,执行P(S2),若结果大于等于0,表示有商品,可以取出,此时造成了一个结果,即仓库空闲了一个,执行V(S1)操作,使用完毕后,释放互斥信号量V(S0)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值