首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有n张座椅供储户休息等候。每个储户在进入营业厅时会在排队机上取得一个号码,若此前没有客户,则排队机就会唤醒一个柜员为储户服务,当没有储户时柜员便可以休息。若储户较多,则所有柜员均会参与服务,
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有n张座椅供储户休息等候。每个储户在进入营业厅时会在排队机上取得一个号码,若此前没有客户,则排队机就会唤醒一个柜员为储户服务,当没有储户时柜员便可以休息。若储户较多,则所有柜员均会参与服务,
admin
2013-12-31
70
问题
某银行的营业厅有多个柜员窗口,可以同时办理业务。银行的营业厅中安排有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=waiting-1; //将等候的顾客数减1 V(teller); //提供1个可服务的柜员 V(mutex); //释放排队机 service(); //为储户服务 } } void customer() //储户进程 { P(mutex); //先获得排队机 if(waiting<CHAIRS) //若还有座椅则取号 { waiting=waiting+1; //取号,占用座椅等待叫号 V(customer); //告知系统储户加1 V(mutex); //释放排队机 P(teller); //看是否有柜员空闲 serviced(); //进入窗口被服务 } else //若没有座椅了,则不取号 { V(mutex); //不取号,释放排队机 } } //离开
解析
转载请注明原文地址:https://kaotiyun.com/show/yvxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
试述中国共产党诞生的历史条件和意义。
在美国独立过程中,极力地宣传美国国家独立思想的民主主义者是()。
试析英法绥靖政策和美国中立政策的原因。(南京大学2013年国际关系史真题)
“文化大革命”发动的两个纲领性文件是()。
日本在《二十一条》中提出:“中国沿海岛屿不得租于他国。”其真实目的是()。
中古时代实行索贡巡行赋税征收方式的国家是()。
前期罗马帝国时期,关于罗马东方行省的传统手工业产品的叙述,不正确的是()。
美洲是一块古老的大陆,长期以来与世隔绝。把它与世界开始联系起来的重大转折时刻是()
解析两个战场的地位、作用及相互关系。
1948年,南斯拉夫对从苏联照搬来的“行政命令式的国家集权式”体制进行改革逐步形成有自己特色的建设社会主义的理论和方法,其核心是()。
随机试题
PeopleinBeijingwearalotofclothingduringwintertodefendoffthecold.IntheUnitedStates,however,peoplewearlessp
被动卧位
关于神经纤维动作电位的叙述不正确的是
下列选项中,不涉及股权投资基金投资者人数限制的是()。
根据资源税暂行条例规定,下列说法正确的有()。
直接影响到投资环境的优劣和区域发展的快慢因素是()
下列各项中,属于《仲裁法》适用范围的是()。(2014年)
Lodgeaprotest
【S1】【S9】
Identicaltwinspossessexactlythesamesetofgenes.Yetastheygrowolder,theymaybegintodisplaysubtledifferences.The
最新回复
(
0
)