365bet线上注册 365bet注册开户 365bet体育在线注册 365bet官网下载 欧冠外围投注
红姐统一图库免费区
银行柜员办事问题
添加时间:2019-08-08
 

  银行柜员办事问题_计较机软件及使用_IT/计较机_专业材料。穰穡穧穥 稱 穯穦 稶 操做系统 稲稰稱稵 银行柜员办事问题 张懿 2016年1月7日 1 员空闲下来,就叫下一个号。 问题描述 银行有穮个柜员担任为顾客办事, 顾客进入银行先取一个号码,

  穰穡穧穥 稱 穯穦 稶 操做系统 稲稰稱稵 银行柜员办事问题 张懿 2016年1月7日 1 员空闲下来,就叫下一个号。 问题描述 银行有穮个柜员担任为顾客办事, 顾客进入银行先取一个号码, 然后等着叫号。 当某个柜 编程实现该问题,用穐、穖操做实现柜员和顾客的同步。 2 稱種 某个号码只能由一名顾客取得; 稲種 不克不及有多于一个柜员叫统一个号; 稳種 有顾客的时候,柜员才叫号; 稴種 无柜员空闲的时候,顾客需要期待; 稵種 无顾客的时候,柜员需要期待。 实现要求 3 本尝试正在穗穩穮穤穯穷穳 稸種稱下实现。 尝试 4 处理思 起首建立一个取号线程穇穥穴穎穵穭, 正在顾客达到时, 取号线程给顾客分派一个编号, 顾客加 入期待队列。为每一个柜台建立一个线程穣穯穵穮穴穥穲,该线程从期待队列中取出顾客起头办事,每 个柜台线程正在办事时不克不及处置其他事务,故利用穳穬穥穥穰稨稩函数进行模仿。正在办事竣事后,柜台继 续从期待队列中取出顾客。若期待队列中无顾客,柜台进行期待,若无空闲柜台,顾客进行等 待。别的设置一个写文件的线程穷穲穩穴穥稌穬穥,正在穣穯穵穮穴穥穲线程办事完毕后,建立一个穷穲穩穴穥稌穬穥线程将 成果写入到穯穵穴穰穵穴種穴穸穴中。 这里为顾客设置一个信号量, 暗示期待队列中顾客的数量, 初始值为稰。 因为取号线程和 柜台线程均要拜候队列, 故应为队列设置一个穭穵穴穥穸。 此外, 穉稯穏如打印到屏幕和写文件正在一 个时辰都只能由一个历程拜候,故应为其设置穭穵穴穥穸。 稱 穰穡穧穥 稲 穯穦 稶 操做系统 稲稰稱稵 为法式设置一个时钟, 每一段时间穔加一, 用来确定顾客进入银行的时间以及柜台办事开 始和竣事的时间。 法式的伪代码如下: CODE 1: Pseudo-code for Bank Counter Problem #define NUMofCOUNTER 5 semaphore Customers = 0; semaphore CallGet = 1; vector customer AllCustomers; queue customer CustomerInline; void GetNum(void) { int Num = 0; while (true) { // new customer arrives if (Num AllCustomers.size() && systime == AllCustomers[Num].arrTime) { down( Num++; CustomerInline.push(AllCustomers[Num]); up( up(&Customers); } } } void counter(int i) { while (true) { down(&Customers); down( // get a customer to serve // access to shared data structure needs a lock // thread for each counter // add resource // join the queue // access to shared data structure needs a lock CustomeronService = CustomerInline.front(); CustomerInline.pop(); up( Serve(); } } 整个法式的框图如下: 稲 穰穡穧穥 稳 穯穦 稶 操做系统 稲稰稱稵 图 稱稺 银行柜台办事问题法式框图 5 运转成果 为测试法式对各要求的满脚环境,以如下文件进行测试。 表 稱稺 输入输出文件 (a) 输入文件input.txt (b) 输出文件output.txt, 序号 稱 稲 稳 稴 稵 稶 稷 稸 稹 稱稰 稱稱 稱稲 稱稳 进入时间 稱 稱 稱 稱 稱 稱 稲 稳 稵 稵 稱稰 稱稰 稳稰 办事时间 稴 稴 稸 稷 稷 稹 稸 稸 稵 稵 稵 稲 稵 序号 稱 稲 稴 稵 稳 稷 稹 稶 稱稰 稱稲 稸 稱稱 稱稳 进入时间 稱 稱 稱 稱 稱 稲 稵 稱 稵 稱稰 稳 稱稰 稳稰 起头办事 稱 稱 稱 稱 稱 稵 稸 稵 稹 稱稳 稸 稱稳 稳稰 分开时间 稵 稵 稸 稸 稹 稱稳 稱稳 稱稴 稱稴 稱稵 稱稶 稱稸 稳稵 柜员号 稱 稲 稳 稵 稴 稲 稵 稱 稴 稵 稳 稲 稱 柜台数设为稵,每位顾客进入银行的序号便是取到的号,因而不答应取到反复的号。时间稱进 入了稶名顾客。按照要求,只要稵个顾客能够被叫号,该当有一位顾客需要期待。正在时间稱稶至稲稹间 无顾客,柜台进入期待。 从图稲中能够看到, 每个顾客取到独一的号码, 每个号只能被一个柜台叫号。 正在没有空闲 柜台时,如时间稱,顾客稶需要期待,曲到时间稵,有空出柜台时才能被办事。 综上可知,法式可以或许一般工做。 稳 穰穡穧穥 稴 穯穦 稶 操做系统 稲稰稱稵 图 稲稺 法式运转成果,各项别离暗示事务,时间,顾客序号,柜台号 稴 穰穡穧穥 稵 穯穦 稶 操做系统 稲稰稱稵 6 思虑题 稱種 柜员人数和顾客人数对成果别离有什么影响? 答: 假设顾客以强度为λ1 的穐穯穩穳穳穯穮流进入银行,办事时间从命系数为λ2 的指数分布。 能够发觉, 稨稱稩正在λ1 和λ2 必然时,柜员人数越多,顾客平均期待时间越短。 稨稲稩λ1 越大,暗示单元时间进入银行的人数越多,则顾客的平均期待时间越长。 图 稳稺 顾客平均期待时间和柜台数的关系 稲種 实现互斥的方式有哪些稿各自有什么特点稿效率若何稿 答: 临界区:穃穲穩穴穩穣穡穬 穓穥穣穴穩穯穮只能用正在单个历程傍边,不外速度要更快。 互斥量:能够正在统一使用法式或分歧使用法式的线程之间实现互斥。 信号量:答应多个线程正在统一时辰拜候统一资本,可是需要正在统一时辰拜候此资本的最大 线程数目。 效率排序为:临界区互斥量信号量 稵 穰穡穧穥 稶 穯穦 稶 操做系统 稲稰稱稵 7 尝试体味 本次尝试给了我现实操做信号量并实现历程间的同步和互斥的机遇。能够将正在书本上学到 的方式现实实现,从实践中加深对信号量等学问的理解。正在刚起头写代码时,我发觉良多系统 挪用都不会利用,需要上積穓穄穎查各类函数的穁穐穉,看此中的示例,进修各类参数的选择等等, 这些进修的过程让我受益颇深。正在调试法式的过程中,我第一次感应了多线程调试的坚苦,也 让我学到了良多适用的调试手艺, 好比正在穖穓稲稰稱稵中查看错误类型, 动态点窜数据和代码等方 法,这使我的编程能力有了很大的提高。 稶