




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-,1,理发师问题,?,-,2,问题:一个理发店有一个入口和一个出口。理发店内有一个可站5位顾客的站席区、4个单人沙发、3个理发师及其专用理发工具、一个收银台。新来的顾客坐在沙发上等待;没有空沙发时,可在站席区等待;站席区满时,只能在入口外等待。理发师可从事理发、收银和休息三种活动。,-,3,理发店的活动满足下列条件:1)休息的理发师是坐地自己专用的理发椅上,不会占用顾客的沙发;2)处理休息状态的理发师可为在沙发上等待时间最长的顾客理发;3)理发时间长短由理发师决定;4)在站席区等待时间最长的顾客可坐到空闲的理发上;5)任何时刻最多只能有一个理发师在收银。,-,4,当顾客来理发时,理发师将按什么标准来决定先给谁理发?理发师当然会有自己觉得合理的做法,绝不会发生下面的情况:,how,-,5,customer进程,-,6,barber进程,-,7,cash(收银台)进程,-,8,让我们一起来讨论程序的实现吧!信号量总表:信号量waitsignalstand_capacity顾客等待进入理发店顾客离开站席区sofa顾客等待坐到沙发顾客离开沙发barber_chair顾客等待空理发椅理发师释放空理发椅customer_ready理发师等待,直到一个顾客坐到理发椅mutex等待理发师空闲,执行理发或收款操作mutex1执行入队或出队等待入队或出队结束,释放信号finishedi顾客等待对应编号理发师理发结束leave_barberchair理发师等待顾客离开理发椅顾客付款完毕得到收据,离开理发椅释放信号payment收银员等待顾客付款顾客付款,发出信号receipt顾客等待收银员收、开具收据收银员收款结束、开具收据,释放信号,Letsbegin,-,9,程序代码,定义变量semaphorestand_capacity=5;semaphoresofa=4;semaphorebarber_chair=3;semaphorecustomer_ready=0;semaphoremutex=3;semaphoremutex1=1;semaphorefinished3=0,0,0;semaphoreleave_barberchair=0;semaphorepayment=0;semaphorereceipt=0;,-,10,实现顾客进程函数voidcustomer()intbarber_number;wait(stand_capacity);/等待进入理发店enter_room();/进入理发店wait(sofa);/等待沙发leave_stand_section();/离开站席区signal(stand_capacity);sit_on_sofa();/坐在沙发上wait(barber_chair);/等待理发椅get_up_sofa();/离开沙发signal(sofa);wait(mutex1);sit_on_barberchair();/坐到理发椅上,signal(customer_ready);barber_number=dequeue();/得到理发师编号signal(mutex1);wait(finishedbarber_number);/等待理发结束pay();/付款signal(payment);/付款wait(receipt);/等待收据get_up_barberchair();/离开理发椅signal(leave_barberchair);/发出离开理发椅信号exit_shop();/离开理发店,-,11,实现理发师进程函数voidbarber(inti)while(true)wait(mutex1);enqueue(i);/将该理发师的编号加入队列signal(mutex1);wait(customer_ready);/等待顾客准备好wait(mutex);cut_hair();/理发signal(mutex);signal(finishedi);/理发结束wait(leave_barberchair);/等待顾客离开理发椅信号signal(barber_chair);/释放barber_chair信号,-,12,实现收银进程函数voidcash()/收银while(true)wait(payment);/等待顾客付款wait(mutex);/原子操作get_pay();/接受付款give_rece
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冲孔桩机安全培训课件
- 冲压车间岗位安全培训课件
- 冲压制造安全培训课件
- 股份激励销售总监劳动合同与分红计划
- 韩国夫妻离婚后子女抚养费用及财产分配合同
- 韩育及配偶离婚后财产处理与子女抚养监护权协议
- 2025年建筑工程类不动产登记代理人地籍调查-不动产权利理论与方法参考题库含答案解析(5卷)
- 2025年学历类自考公共课马克思主义基本原理-计算机应用基础参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)网页设计与制作-电子商务案例分析参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)市场营销(三)-商务交流(二)参考题库含答案解析(5卷)
- 小学数学解题研究(小学教育专业)全套教学课件
- 个体诊所备案信息表
- 小提琴培训行业市场前瞻与未来投资战略分析报告
- 高职大学生心理健康教育 第四版 课件 第四单元 和谐人际关系
- 安全教育培训课件:机械设备维护和保养指南
- InDesign印前设计与实战 课件 第二章 印前设计版面概述-印刷基础知识
- 员工培训体系优化研究
- 医疗器械供货合同正式版
- 人教版七年级英语下册阅读专项训练60篇-含答案
- 范里安-微观经济学:现代观点
- 2023版X99主板BIOS详细设置手册
评论
0/150
提交评论