操作系统,生产者-消费者问题详解

信号量机制

1. 实现进程互斥

  1. 分析问题,确定临界区
  2. 设置互斥信号量,初值为1
  3. 临界区之前对信号量执行P操作
  4. 临界区之后对信号量执行V操作

2. 实现进程同步

  1. 分析问题,找出哪里需要实现“一前一后”的同步关系
  2. 设置同步信号量,初始值为0
  3. 在“前操作”之后执行V操作
  4. 在“后操作”之前执行P操作

3. 实现进程的前驱关系

  1. 分析问题,画出前驱图,把每一对前驱关系都看成一个同步问题
  2. 为每一对前驱关系设置同步信号量,初值为0
  3. 在每个“前操作”之后执行V操作
  4. 在每个“后操作”之前执行P操作
注:
申请资源时进行P操作
释放资源时进程V操作

生产者-消费者问题

问题描述

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


  1. 只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。
分析:
同步关系,缓冲区满时,生产者要等待消费者取走产品
  1. 只有缓冲区不空时,消费者才能从中取出产品,否
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值