- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
理发师问题由此展开…….ppt
理发师问题由此展开……;;;;; 故引入3个信号量和一个控制变量:1)控制变量waiting用来记录等候理发的顾客数,初值均为0;2)信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0;3)信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为0;4)信号量mutex用于互斥,初值为1 ;三 问题实现?? 1.PV操作代码如下: ? int? waiting=0 ; //等候理发的顾客数??? ??? int? chairs=n;???? //为顾客准备的椅子数??? ??? semaphore? customers=0, barbers=0,mutex=1;?? ??? barber()?{ ???? while(TRUE);??????????????? //理完一人,还有顾客吗????????P(cutomers);????????????? //若无顾客,理发师睡眠?????? ?P(mutex);???????????????? //进程互斥?????? ?waiting := waiting – 1;?? //等候顾客数少一个???? ? V(barbers);?????????????? //理发师去为一个顾客理发?????? V(mutex);???????????????? //开放临界区?????? cut-hair( );???????????? //正在理发 } (未完待续);?customer()?{???? P(mutex);???????????????? //进程互斥? ?? if (waiting)? {???? waiting := waiting+1;? // 等候顾客数加1? ??? ? V(customers);????????? //必要的话唤醒理发师? ???? ?V(mutex);????????????? //开放临界区???? ?? P(barbers);??????????? //无理发师, 顾客坐着养神? ???? get-haircut( );?? //一个顾客坐下等理/?? }????? ? else??????? V(mutex);???????????????? //人满了,走吧! };2.详细实现:???? 椅子数目可以设置;程序采用用随机数产生顾客进程,也就是顾客按照随机数自动到来,这样更加接近现实生活; 对于理发师,当顾客到来后去理发,如果没有顾客继续看报纸,当理完一个后,判断是否有等待,有则叫下一个来理发,没有的话去看报纸。 对于客人,先看理发师是空闲还是忙,空闲则去理发,忙着的话则看是否有位置等待,有则坐下等,没有的话则离开。 对于理发时间,是取系统时间来控制,设理发时间为10秒,当两次时间差大于等于10时表示理完叫下一位,小于则继续理发。并且还能控制是否开门营业,当理发师为10个以上顾客理发完成并且没有人在等待时,可以决定是否关门休息.;代码如下:#include windows.h#include iostream.h#include math.h #define random?? (rand()*10000)/RAND_MAX //定义一个随机函数来产生顾客,并且使两个顾客间的时间少于10秒int long waiting(0);??? //正在等待的顾客的数目int chairs;???????????? //椅子的总数目char open_door;????????? //开门char close_door;???????? //关门int count(0);?????????? //顾客的号码数int finish(0);????????? //理发完毕的顾客数目DWORD a; ;void cuthair(){??::Sleep (10000);?cout“理发完成 !”endl;???? //理发师理发函数,用时10秒 } void gethaircut(){?::Sleep (10001);???????? //顾客被理发的函数,为了和理发师之间有所区别,比理发师理发时间长0.001秒。?cout第finish个顾客理发完毕,离开 endl;? } ;HANDLE Mutex=::CreateMutex(NULL, FALSE, “Mutex”); //用来实现进程的互斥? HANDLE barbers=::CreateSemaphore(NULL, 1,1,
您可能关注的文档
- 燃气机组-环保署.ppt
- 燃煤发电机组湿式静电除尘器系统采购.doc
- 爱校服务销过申请程序.ppt
- 牙周病的发生.ppt
- 牛模式ECShop-TBv5.0安装说明-niumos.doc
- 牛顿运动定律应用之滑块滑板模型.ppt
- 物流云服务平台下基于改进蝙蝠算法的任务调度.doc
- 物理(十二).doc
- 物联网应用层-星星软件站.ppt
- 物质的惟一特性是客观实在性。.ppt
- 青岛版数学四年级上册全册同步教学课件.pptx
- 2025年新外研版英语三年级上册全册同步教学课件.pptx
- 冀教版数学四年级上册全册同步教学课件.pptx
- 青岛版数学四年级上册全册同步课件.pptx
- 2024秋新人教版英语七年级上册教学课件 Unit 3 课时4 Section B(1a-1d).ppt
- 2025年秋季青岛版数学五年级上册全册同步课件.pptx
- 车辆和车队管理 用户手册.pdf
- Omron欧姆龙传感器选型指南.pdf
- Schaffner 夏弗纳集团 无源谐波滤波器 FN 3470 FN 3471 (50 Hz) for 380–415 VAC FN 3480 FN 3481 (50 Hz) for 440–480 VAC FN 3472 FN 3473 (60 Hz) for 380–415 VAC FN 3482 FN 3483 (60 Hz) for 440–480 VAC 用户手册.pdf
- 人教版数学英语九年级全一册教学课件.pptx
最近下载
- 建筑地面工程施工质量验收规范,gb50209-2010 .pdf VIP
- 2025年全国文明单位考核测评标准.pdf VIP
- 期末考试奖状一奖状.doc VIP
- 《安全色和安全标志GB2894-2025》新旧版对比学习丨41页.pptx
- 喜剧的十三种结构.pdf VIP
- 大学生《物理化学》9套期末考试试卷(含答案).pdf VIP
- 5313A-2017 电磁辐射暴露限值和测量方法.pdf VIP
- 广东省深圳市南山区深圳市南山外国语学校(集团)科华学校2023-2024 学年四年级上学期阶段性学情调研期中数学试卷.pdf VIP
- 血管通路护理专科门诊建设与服务规范.docx VIP
- HCIA-IOT 物联网 H12-111 V3.0认证培训考试题库大全-上(单选题汇总) .docx VIP
有哪些信誉好的足球投注网站
文档评论(0)