首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有n张座椅供储户休息等候。每个储户在进入营业厅时会在排队机上取得一个号码,若此前没有客户,则排队机就会唤醒一个柜员为储户服务,当没有储户时柜员便可以休息。若储户较多,则所有柜员均会参与服务,
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有n张座椅供储户休息等候。每个储户在进入营业厅时会在排队机上取得一个号码,若此前没有客户,则排队机就会唤醒一个柜员为储户服务,当没有储户时柜员便可以休息。若储户较多,则所有柜员均会参与服务,
admin
2013-07-12
33
问题
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有n张座椅供储户休息等候。每个储户在进入营业厅时会在排队机上取得一个号码,若此前没有客户,则排队机就会唤醒一个柜员为储户服务,当没有储户时柜员便可以休息。若储户较多,则所有柜员均会参与服务,当排队储户数超过柜员数时,没有被服务的储户便会在座椅上休息,并等候叫号。当座位满时,再进入营业厅的储户不再从排队机上获取号码,会离开去找另外的营业厅。若将银行的柜员和储户的行为看成是不同类型的进程,请设计一个程序,利用信号量来完成上述操作,用类C语言写出程序。
选项
答案
设信号量teller,customer和mutex,设waiting整型量,表示排队的储户数,其初始为0,最大不超过n。 #define CHAIRS=n //座椅数,也是最多排队的储户数 typedef int semaphore //定义信号量 semaphore teller:0; //等待储户的柜员数 semaphore customer=0; //等待服务的储户数 semaphore mutex=0; //对排队机操作的互斥量 int waiting=0; //等待的储户数 void teller( ) { while(TRUE) //并发调度 { P(customer); //查看有无储户 P(mutex); //需要获得排队机的控制权 waiting=wairing=1; //将等候的顾客数减1 v(teller); //提供1个可服务的柜员 v(mutex); //释放排队机 service( ): //为储户服务 } } Void customer() //储户进程 { P(mutex); //先获得排队机 if(waiting
解析
此类题目在考试中也比较多见,但是,万变不离其宗。这类题目类似的还有睡眠的理发师等。因此,掌握此类题目的基本要点是解决此类题目的关键。本题从读者和写者的基本原理出发,对等候的储户数加以限制。从资源角度看,柜员是资源,座椅也是资源。那么,设置柜员的信号量为teller,初始为0,柜员一上岗则作V操作,以提供资源。储户的信号量为customer,初始为0,表示储户尚未进入营业厅。mutex为对排队机,也是座椅的互斥量,柜员和储户均可以对此操作。
[归纳总结]注意到本题中,柜员是具有循环的。即while(TRUE)的语句,储户就没有,原因是储户是随时到达的,柜员是等候储户到来并服务的,如果将储户进程也采用并发调度,则顾客就不可能为0,这与实际情况不同,所以,在此是不需要的。
对柜员来说,当开启一个窗口即会调用一次柜员进程,所以,柜员应该一直运行,直到其下班(下班作为边界条件在此并不讨论),若多个柜员上岗,则就多次调用柜员进程,但是,排队机和座椅是不变的,柜员可能会增加,这会加快对顾客的服务,所以,实际上在营业厅里最多的顾客数应该是柜员数加上座椅数。最少当然是0。
转载请注明原文地址:https://kaotiyun.com/show/Auxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1945年,在美国国务院举行了布雷顿森林协定签字仪式,宣告了()和()的正式成立。这是两个在业务上保持密切联系的姊妹机构,总部均设在华盛顿。
中原地区部落联盟首领尧年老后,选舜为继承人,并传位给舜。舜年老后,传为给禹。这种职位继承制度史称()。
清朝入关初期执行了一些错误的政策,在社会上产生了不良的影响,其中不包括()。
阅读下列史料,并回答问题:在琶勒尼斯(注:地名)一役获胜后,他(庇西特拉图)便占领政府,并解除人民武装;现在他已能稳定地握住僭主政权,并且取得那克索斯。以吕格达密斯为统治者。他解除人民武装的方法是这样的:他在塞修斯庙举行了一个武装的阅兵式,同时举行一次民
阅读下列材料,回答问题:材料一:我们与希特勒或他们的匪帮永不会谈,永不斡旋,我们将在陆地上、海洋上、天空中与他们作战。直到把笼罩阴云于大地的一切敌人消灭为止……任何为反对纳粹主义而战斗的国家或人民,我们都支援。任何与希特勒为伍的人或国家都是我们的敌人。我
两河流域分为两部分,其中南部称为()。
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
给定单链表的结点结构typedefstructnode*link;structnode{intitem,linknext;);将两个升序单链表归并为一个升序单链表。
一个公司有两个部门,研发部和市场部,研发部有29台计算机,市场部有11台计算机。现在,公司申请了一个C类地址212.112.32.0,规划的网络拓扑如图1一5所示。试问:根据第一题的规划,请为两个部门各分配一个子网网络地址,并为两个路由器的接口和各台
随机试题
焊接热循环对热影响区中的_____区影响最大。
我国的最高行政管理机构是中华人民共和国国务院,即(),由全国人民代表大会产生,对其负责,受其监督。国务院由()、()、()、()、()、()组成。国务院的办公机构和各职能部门机构共同组成我国中央人民政
产品线延伸的具体方法不包括()
Beinganhonestgirl,shewouldnotcheatonanexam.
学龄儿童复种卡介苗前,应做的特异试验是
男,24岁。发热,腹痛、腹泻1天,为黏液脓血便。查体:T38.4℃,BP110/62mmHg,脐周及左下腹有轻压痛,实验室检查:血WBC15.8×109/L,N0.88,L0.12。粪镜检:WBC40个/HP,RBC20个/HP。肠道最可能的病理变化是
在正常使用条件下,有防水要求的卫生间的建设国程最低保修期限为()年。
请认真阅读下列材料。并按要求作答。三角形的面积=_______如果用S表示三角形的面积,用a和h分别表示三角形的底和高,那么三角形面积的计算公式可以写成:S=ah÷2S=ah÷2=100×33÷2=1650(
Oneanswertothequestionoflandshortagewassuggestedbyanorganizationsomeyearsago.Acitywastobebuiltatsea,hous
A、Hewantsthewomantopayfortheinsurance.B、Hewantstogetsomeinsuranceforthecontentofhishome.C、Hewantstopayf
最新回复
(
0
)