文件名称:操作系统实验理发师问题LINUX
文件大小:2KB
文件格式:CPP
更新时间:2021-01-05 12:13:47
理发师问题 LINUX 进程实现
.用进程实现睡觉的理发师问题。(同步互斥采用信号量)理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。 1.睡觉的理发师问题,我用了椅子作为共享内存的参数,然后设置了MAX=10, 当椅子数目>=10时理发师睡觉,进程sleep(3), 否则理发师剪头发,将椅子数目加1,然后sleep(3); 而每个顾客都是新建一个进程,椅子数目小于等于0的话就离开,结束进程,否则等待,每个顾客进来后都sleep(1),所以就相当于理发师每理1个人的头发,就新进来一个顾客,设置顾客进来40个后结束,太大的话会崩溃。