Advertisement

操作系统实验5:进程互斥实验 — 理发店问题

阅读量:

问题描述

理发店问题:假设有3把理发椅和3位理发师的理发室内,配备了一个最多可容纳4名顾客等待的沙发区域。同时,还设置了一间等候室,最多可容纳13位顾客等待进入理发区。当顾客发现店内已有超过20人时,将不再进入理发店。在店内,每当有理发师空闲时,便会为沙发上等待时间最长的顾客提供服务,并将空出的沙发位置让给等候室中等待时间最长的顾客。顾客完成理发后,可以向任意一位理发师进行付款。然而,店内仅有一本现金登记簿,在任何时刻只能记录一名顾客的付款信息。当没有顾客需要服务时,理发师会坐在自己的椅子上休息。他们的工作时间主要用于进行理发、收款以及休息。
请借助Linux系统所提供的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
    #define MAXVAL 100
    #define STRSIZ 8

全部评论 (0)

还没有任何评论哟~