十七、生产者消费者问题

一、问题分析

1.系统中有一组生产者进程和消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据)

2.生产者、消费者共享一个初始为空,大小为n的缓冲区。

3.只有缓冲区没满时,生产者才能把产品放入到缓冲区,否则必须等待。(缓冲区没满—>生产者生产)

4.只有缓冲区不空时,消费者才能从中取出产品,否则必须等待。(缓冲区没空–》消费者消费)

5.缓冲区是临界资源,各进程必须互斥的访问。(互斥关系)

在这里插入图片描述

在这里插入图片描述

二、能否改变相邻P、V操作的顺序

在这里插入图片描述

注意:
实现互斥的P操作一定要在实现同步的P操作之后,否则导致进程阻塞,并会造成死锁。
V操作不会导致进程阻塞,因此两个V操作的顺序可以交换。

三、总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值