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

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【操作系统】Semaphore处理吸烟者问题

星拱北辰 发布时间:2021-01-29 23:56:10 ,浏览量:0

“吸烟者”问题
  • 问题描述
  • 问题分析
    • 关系分析
    • 求解思路
    • 信号量设置
  • 问题解决
  • Java实现

问题描述

存在三个抽烟者和一个供应者。 每个抽烟者不停地卷烟并抽烟,烟有三种原材料:烟草、烟纸、胶水。 三个抽烟者中,第一个拥有烟草,第二个拥有烟纸,第三个拥有胶水。 供应者不断地随机供应这三种原材料,每次提供两种原材料到桌子上,能卷好烟的抽烟者会卷烟并抽烟,结束后供应者继续提供新的原材料……

问题分析 关系分析

形成的是一个三人轮流抽烟的情况,由于限制了必须能卷好烟的人才能拿走材料,所以避免了死锁。

供应者与三个抽烟者之间分别是同步的关系。 三个抽烟者对抽烟这个动作是互斥的。

求解思路

设置四个进程,一个供应者,三个不同的抽烟者。

信号量设置

需要4个信号量:

  • offer1:对应烟草和纸组合的资源
  • offer2:对应烟草和胶水组合的资源
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0446s