操作系统实验四:进程同步实验——抽烟者问题
发布时间
阅读量:
阅读量
吸烟者行为分析
问题描述
在一个系统中,存在三个抽烟者的进程,每个抽烟者持续进行卷烟和吸烟的动作。为了完成卷烟并吸食一支烟,每个抽烟者需要三种不同的材料:烟草、纸张以及胶水。其中,一个抽烟者拥有烟草,另一个拥有纸张,第三个则持有胶水。系统内还包含两个供应者的进程,这两个供应者能够无限地提供所有三种材料,但每次仅依次提供其中的两种。当某个抽烟者获取到自己缺失的两种材料后,在完成卷烟并吸食之后会向供应者发出信号,以提示其继续供应剩下的两种材料。这一流程将不断循环进行。请依据上述描述的IPC同步机制编写程序代码,实现该问题所要求的功能。
代码实现
ipc.h
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/msg.h>
#define BUFSZ 256 //建立或获取 ipc 的一组函数的原型说明
int get_ipc_id(char *proc_file,key_t key);
char *
全部评论 (0)
还没有任何评论哟~
