Advertisement

操作系统实验四:进程同步实验——抽烟者问题

阅读量:

吸烟者行为分析

问题描述

在一个系统中,存在三个抽烟者的进程,每个抽烟者持续进行卷烟和吸烟的动作。为了完成卷烟并吸食一支烟,每个抽烟者需要三种不同的材料:烟草、纸张以及胶水。其中,一个抽烟者拥有烟草,另一个拥有纸张,第三个则持有胶水。系统内还包含两个供应者的进程,这两个供应者能够无限地提供所有三种材料,但每次仅依次提供其中的两种。当某个抽烟者获取到自己缺失的两种材料后,在完成卷烟并吸食之后会向供应者发出信号,以提示其继续供应剩下的两种材料。这一流程将不断循环进行。请依据上述描述的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)

还没有任何评论哟~