操作系统之抽烟者问题

来源:互联网 发布:不同后缀域名的区别 编辑:程序博客网 时间:2024/06/09 21:35

抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。 请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能

,分析这明显是一个生产者和消费者问题,问题的关键在于信号量的设计,和生产者操作的先后顺序,思路一是设计三个信号量(3个empty和full)从不同的缓冲区读取,关键是linux操作太不熟练了,具体见《山东大学操作系统上机实验3》

0 0