您当前的位置: 首页 >  操作系统

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【操作系统】Semaphore处理生产者-消费者问题

星拱北辰 发布时间:2021-01-29 12:15:30 ,浏览量:0

“生产者-消费者”问题
  • 问题描述
  • 问题分析
    • 关系分析
    • 求解思路
    • 信号量设置
  • 问题解决
  • Java实现
  • 复杂情况的求解示例

问题描述

一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才能把消息放入缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从其中取出消息,否则必须等待。 由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。

问题分析 关系分析

生产者和消费者对缓冲区的访问是互斥关系;生产者和消费者还是一个相互协作的关系,生产者生产后消费者才能消费,故是同步关系。

求解思路

只有生产者和消费者两个进程,这两个进程存在互斥和同步的关系,需要解决的重点就是互斥和同步的PV操作的位置。

信号量设置

需要三个信号量:

  • mutex:互斥信号量,用于控制互斥访问缓冲池,初始值为1
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0388s