银行柜员服务问题

银行柜员服务问题

ID:38929841

大小:483.82 KB

页数:6页

时间:2019-06-21

银行柜员服务问题_第1页
银行柜员服务问题_第2页
银行柜员服务问题_第3页
银行柜员服务问题_第4页
银行柜员服务问题_第5页
资源描述:

《银行柜员服务问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、穰穡穧穥稱穯穦稶操作系统稲稰稱稵银行柜员服务问题张懿2016年1月7日1问题描述银行有穮个柜员负责为顾客服务,顾客进入银行先取一个号码,然后等着叫号。当某个柜员空闲下来,就叫下一个号。编程实现该问题,用穐、穖操作实现柜员和顾客的同步。2实现要求稱種某个号码只能由一名顾客取得;稲種不能有多于一个柜员叫同一个号;稳種有顾客的时候,柜员才叫号;稴種无柜员空闲的时候,顾客需要等待;稵種无顾客的时候,柜员需要等待。3实验环境本实验在穗穩穮穤穯穷穳稸種稱环境下实现。4解决思路首先创建一个取号线程穇穥穴穎穵穭,在顾客到达时,取号线程给顾客分配一个编号,顾客加入等待队列。为每一个柜台创

2、建一个线程穣穯穵穮穴穥穲,该线程从等待队列中取出顾客开始服务,每个柜台线程在服务时不能处理其他事件,故使用穳穬穥穥穰稨稩函数进行模拟。在服务结束后,柜台继续从等待队列中取出顾客。若等待队列中无顾客,柜台进行等待,若无空闲柜台,顾客进行等待。另外设置一个写文件的线程穷穲穩穴穥稌穬穥,在穣穯穵穮穴穥穲线程服务完毕后,创建一个穷穲穩穴穥稌穬穥线程将结果写入到穯穵穴穰穵穴種穴穸穴中。这里为顾客设置一个信号量,表示等待队列中顾客的数量,初始值为稰。由于取号线程和柜台线程均要访问队列,故应为队列设置一个穭穵穴穥穸。此外,穉稯穏如打印到屏幕和写文件在一个时刻都只能由一个进程访问,故应

3、为其设置穭穵穴穥穸。稱穰穡穧穥稲穯穦稶操作系统稲稰稱稵为程序设置一个时钟,每一段时间穔加一,用来确定顾客进入银行的时间以及柜台服务开始和结束的时间。程序的伪代码如下:CODE1:Pseudo-codeforBankCounterProblem#defineNUMofCOUNTER5semaphoreCustomers=0;semaphoreCallGet=1;vectorAllCustomers;queueCustomerInline;voidGetNum(void){intNum=0;while(true){//newcusto

4、merarrivesif(Num

5、&Customers);//getacustomertoservedown(&CallGet);//accesstoshareddatastructureneedsalockCustomeronService=CustomerInline.front();CustomerInline.pop();up(&CallGet);Serve();}}整个程序的框图如下:稲穰穡穧穥稳穯穦稶操作系统稲稰稱稵图稱稺银行柜台服务问题程序框图5运行结果为测试程序对各要求的满足情况,以如下文件进行测试。表稱稺输入输出文件(a)输入文件input.txt(b)输出文件output.txt,序

6、号进入时间服务时间序号进入时间开始服务离开时间柜员号稱稱稴稱稱稱稵稱稲稱稴稲稱稱稵稲稳稱稸稴稱稱稸稳稴稱稷稵稱稱稸稵稵稱稷稳稱稱稹稴稶稱稹稷稲稵稱稳稲稷稲稸稹稵稸稱稳稵稸稳稸稶稱稵稱稴稱稹稵稵稱稰稵稹稱稴稴稱稰稵稵稱稲稱稰稱稳稱稵稵稱稱稱稰稵稸稳稸稱稶稳稱稲稱稰稲稱稱稱稰稱稳稱稸稲稱稳稳稰稵稱稳稳稰稳稰稳稵稱柜台数设为稵,每位顾客进入银行的序号即是取到的号,因此不允许取到重复的号。时间稱进入了稶名顾客。按照要求,只有稵个顾客可以被叫号,应该有一位顾客需要等待。在时间稱稶至稲稹间无顾客,柜台进入等待。从图稲中可以看到,每个顾客取到唯一的号码,每个号只能被一个柜台叫号。在没

7、有空闲柜台时,如时间稱,顾客稶需要等待,直到时间稵,有空出柜台时才能被服务。综上可知,程序能够正常工作。稳穰穡穧穥稴穯穦稶操作系统稲稰稱稵图稲稺程序运行结果,各项分别表示事件,时间,顾客序号,柜台号稴穰穡穧穥稵穯穦稶操作系统稲稰稱稵6思考题稱種柜员人数和顾客人数对结果分别有什么影响?答:假设顾客以强度为1的穐穯穩穳穳穯穮流进入银行,服务时间服从系数为2的指数分布。可以发现,稨稱稩在1和2一定时,柜员人数越多,顾客平均等待时间越短。稨稲稩1越大,表示单位时间进入银行的人数越多,则顾客的平均等待时间越长。图稳稺顾客平均等待时间和柜台

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。