已阅读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年河北省物流产业集团招聘笔试参考题库含答案解析
- DB32-T 4001-2025 公共机构能耗定额及计算方法
- 2025-2030年中国胶粘剂行业市场深度分析及前景趋势与投资研究报告
- 校长股权激励协议书
- 大学计算机-计算思维与信息素养 课件 第6章 现代计算机-复杂环境下程序执行
- 财务监管协议书范本
- 辽宁机场集团招聘笔试真题2024
- 人教版高中物理精讲精练-必修1专题强化一:受力分析和整体法与隔离法专题 (原卷版)
- 《认知行为疗法》课件
- 15个小测试-测测您家孩子注意力是否达标
评论
0/150
提交评论