山大在线计算机操作系统答案,山大操作系统实验5

a7f4a3f590493a1e451dd952a488fd7c.gif

山大操作系统实验5

(25页)

338c399b31a95f0afe7ac2388a02659a.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.90 积分

实用文档进程同步实验张咪软件四班一、实验目的总结和分析示例实验和独立实验中观察到的调试和运行信息,说明您对与解决非对称性互斥操作的算法有哪些新的理解和认识? 为什么会出现进程饥饿现象?本实验的饥饿现象是怎样表现的?怎样解决并发进程间发生的饥饿现象?您对于并发进程间使用消息传递解决进程通信问题有哪些新的理解和认识?根据实验程序、调试过程和结果分析写出实验报告。二、实验要求理发店问题:假设理发店的理发室中有3个理发椅子和3个理发师,有一个可容纳4个顾客坐等理发的沙发。此外还有一间等候室,可容纳13位顾客等候进入理发室。顾客如果发现理发店中顾客已满(超过20人),就不进入理发店。 在理发店内,理发师一旦有空就为坐在沙发上等待时间最长的顾客理发,同时空出的沙发让在等候室中等待时间最长的的顾客就坐。顾客理完发后,可向任何一位理发师付款。但理发店只有一本现金登记册,在任一时刻只能记录一个顾客的付款。理发师在没有顾客的时候就坐在理发椅子上睡眠。理发师的时间就用在理发、收款、睡眠上。 请利用linux系统提供的IPC进程通信机制实验并实现理发店问题的一个解法。三、实验环境  实验环境均为Linux操作系统,开发工具为gcc和g++。四、实验思路 约束:1. 设置一个count变量来对顾客进行计数,该变量将被多个顾客进程互斥地访问并修改,通过一个互斥信号量mutext来实现。count>20时,就不进入理发店。720) {//顾客大于20人signal(mutex); 离开理发店} else{//顾客小于20人count=count+1;//进入理发店 if(count>7) { //count>7,说明理发椅和沙发上都有人,需要到等待室等待 signal(mutex); wait(room);//申请进入等待室 在等待室等 wait(sofa); //申请沙发signal(room);//释放等待室坐在沙发上等 wait(empty);//等待理发椅为空 申请到理发椅signal(sofa); //释放沙发} else if(count>3){//说明理发椅上都有人,需要坐到沙发上等待signal(mutex);wait(sofa);//申请沙发 坐在沙发上等wait(empty);//等待理发椅为空申请到理发椅signal(sofa);//释放沙发}else{//count<3,可以坐到理发椅上等待signal(mutex); wait(empty); //申请理发椅} 坐在理发椅上等待理发 signal(full); //通知理发师开始理发理发 wait(finish); //等待理发完毕 付款signal(payment); //通知理发师已付款 wait(receipt); //等待理发师收款 理发师收费完成,顾客离开理发椅 signal(empty); //释放理发椅 wait(mutex); //对count 临界资源操作,用mutex完成互斥 count=count-1; //离开理发店 signal(mutex); } 七、调试及实验结果1、创建makefile文件hdrs = ipc.h opts = -g -c c_src = cons.c ipc.c c_obj = cons.o ipc.o p_src = bar.c ipc.c p_obj = bar.o ipc.o all: producer consumer consumer: $(c_obj) gcc $(c_obj) -o consumer cons.o: $(c_src) $(hdrs) gcc $(opts) $(c_src) producer: $(p_obj) gcc $(p_obj) -o producer bar.o: $(p_src) $(hdrs) gcc $(opts) $(p_src) clean:

关 键 词:

操作系统 实验

4d91c43bfc72ca913299809b07b4968f.gif

天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:山大操作系统实验5

链接地址:

https://www.wenku365.com/p-40021357.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值