ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:63KB ,
资源ID:4743744      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4743744.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(典型问题.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

典型问题.doc

1、1. 有一个盒子,混装了数量相等的围棋白子和黑子。现在要用自动分拣系统把白子和黑子分开。设系统有两个进程P1和P2,其中P1拣白子,P2拣黑子。当一个进程在拣子时,不允许另一进程去拣。试写出这两个并发进程能正确执行的程序。 begin mutex := 1; cobegin P1: begin repeat P(mutex); 拣白子; V(mutex); until false end P2: begin repeat P(mutex); 拣黑子; V(mutex); until false end coend en

2、d 加上“当以一进程拣了一子时,必须让另一个进程去拣”条件: 设置两个信号量S1和S2来协调进程P1和P2之间的同步。假定先让P1拣白子,则信号量S1和S2的初值分别为1和0。两个并发进程相应的程序如下: begin S1 :=1; S2 := 0; cobegin P1: begin repeat P(S1); 拣白子; V(S2); until false end P2: begin repeat P(S2); 拣黑子; V(S1); until false end coend end 2. 用P

3、V操作实现下述问题的解。 桌上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲则总是放香蕉到盘子中;一个儿子专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。 由于父亲和母亲可以同时向盘子放水果,所以盘子是临界资源,应设置一个互斥信号量mutex来实现放水果的互斥,其初值为1.此外父亲和女儿,母亲和儿子之间存在同步关系,及分别设置信号量apple和banana来分别实现这种同步关系,其初值均为0。 4个进程的并发程序如下: begin mutex := 1; apple := 0; banana := 0; cobegin father: begin

4、 repeat P(mutex); 向盘中放苹果; V(apple); until false; end; mother: begin repeat P(mutex); 向盘中放香蕉; V(banana); until false end; daughter: begin repeat P(apple); 取盘中的苹果; V(mutex);

5、 until false; end; son: begin repeat P(banana); 取盘中的香蕉; V(mutex); until false; end; coend; end; 升级版 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,可向盘中放桔子;儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿3个并发进程的同步。 begin mutex := 1; apple := 0; ban

6、ana := 0; cobegin father: begin repeat P(mutex); 将水果放入盘中; if 放入的是桔子 then V(orange) else V(apple); until false; end; daughter: begin repeat P(apple); 取盘中的苹果; V(mutex); until false; end

7、 son: begin repeat P(orange); 取盘中的香蕉; V(mutex); until false; end; coend; end; 桌上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘子放苹果,妈妈专向盘子中放桔子;两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子和女儿之间的同步与互斥关系。 与上一例不同的是,现在盘子可以放入两个水果,因此除了互斥信号量mutex之外,还应对允许向盘中放入水果的个数进行计数,

8、即再设置一个信号量empty,其初值为2.此外由于盘子中可以放两个水果,即当盘中有一个水果时,存在着既可以放有可以取得情况,因此,除了对放水果进行互斥外,对取水果也应进行互斥。此时,4个进程的并发程序如下: begin mutex := 1; empty := 2; apple := 0; orange := 0; cobegin father: begin repeat P(empty); P(mutex); 向盘中放苹果; V(mutex); V(apple); until false end mother: begin

9、 repeat P(empty); P(mutex); 向盘中放桔子; V(mutex); V(orange); until false end daughteri(i = 1, 2;): begin repeat P(apple); P(mutex); 取盘中苹果; V(mutex); V(empty); until false end soni(i = 1, 2): begin repeat P(orange); P(mutex); 取盘中桔子; V(mutex)

10、 V(empty); until false end coend end; 3. 有一个理发师,一把理发椅和n-1把供等候理发的顾客坐的椅子。 (1)如果没有顾客,则理发师便在理发椅子上睡觉; (2)当一个顾客到来时,必须唤醒理发师进行理发; (3)如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。 为理发师和顾客各编写一段程序描述他们的行为,要求不能带有竞争条件。 本题可看作是n个生产者和一个消费者问题。顾客作为生产者,每到来一个就使计数器rc加1,以便让理发师理发(消费)至最后一个顾客(产品)。并

11、且,第一个到来的顾客应负责唤醒理发师;如果不是第一个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发厅(该信息可由计数器rc获得)。理发师与顾客的并发程序描述如下: beign mutex := 1; wakeup := 0; wait := n; cobegin customeri(i = 1;…): begin P(mutex); rc = rc + 1; if (rc = 1) then V(wakeup) else if rc ≤ n then P(wait) /*顾客人数≤ n 时在椅子上等待*/ else begin

12、 rc := rc - 1; /*是第n+1个顾客时则离开理发厅*/ 该顾客离开 end; V(mutex) end; barber: begin P(wakeup); /*没有顾客时,理发师睡觉(阻塞),直到第一个顾客来时唤醒*/ repeat 理发; P(mutex); rc := rc - 1; if (rc ≠ 0) then V(wait); /*让等待中的一个顾客准备理发*/ V(mutex) until rc = 0 /*理发重复到没有顾客为止*/ end conend; end;

13、 扩展版: 一个理发店由一个有N个沙发的等候室和一个放有一张理发椅的理发室组成。没有顾客要理发时,理发师便去睡觉。当一个顾客走进理发店时,如果所有的沙发都已被占用,他便离开理发店;否则,如果理发师正在为其他顾客理发,则该顾客就找一张空沙发坐下等待;如果理发师因无顾客正在睡觉,则由新到的顾客唤醒理发师为其理发。在理发完成后,顾客必须付费,直到理发师收费后才能离开理发店。试用信号量实现这一同步问题。 本题中,顾客进程和理发师进程之间存在着多种同步关系: (1)只有在理发椅空闲时,顾客才能坐到理发椅上等待理发师理发,否则顾客必须等待;只有当理发椅上有顾客时,理发师才可以开始理发,否则他也

14、必须等待。这种同步关系类似于单缓冲(对应于理发椅)的生产者-消费者问题中的同步关系,故可通过信号量empty和full来控制。 (2)理发师为顾客理发时,顾客必须等待理发的完成,并在理发完成后由理发师唤醒他,这可单独使用一个信号量cut来控制。 (3)顾客理完发后必须向理发师付费,并等理发师收费后顾客才能离开;而理发师则必须等待顾客付费,并在收费后唤醒顾客以允许他离开,这可分别通过两个信号量payment和receipt来控制。 (4)等候室中的N张沙发是顾客进程竞争的资源,故还需为他们设置一个信号量sofa。 (5)为了控制顾客的人数,使顾客能在所有的沙发都被占用时离开理发店,还必须

15、设置一个整型变量count来对理发店中的顾客进行计数,该变量将被多个顾客进程互斥地访问并修改,这可通过一个互斥信号量mutex来实现。 为了解决上述问题,需设置一个整型变量count用来对理发店中的顾客进行计数,并需设置7个信号量,其中:mutex用来实现顾客进程对count变量的互斥访问,其初值为1;sofa是对应于等候室中N张沙发的资源信号量,其初值为N;empty表示有是否空闲的理发椅,其初值为1;full表示理发椅上是否坐有等待理发的顾客,其初值为0;cut用来等待理发的完成,其初值为0;payment用来等待付费,其初值为0;receipt用来等待收费,其初值为0。具体算法描述如下

16、 Var count :integer := 0; mutex, sofa empty, full :semaphore := 1, N, 1, 0; cut, pament, receipt :semaphore := 0, 0 , 0; beigin parbegin guest: begin wait(mutex); if (count > N) then begin signal(mutex); exit shop; end else begin count: = count + 1; if (coun

17、t > 1) then begin wait(sofa); sit on sofa; wait(empty); get up from sofa; signal(sofa) end else /*count = 1*/ wait(empty); sit on the baber_chair; signal(full); wait(cut); pay; signal(payment);

18、 wait(receipt); get up from the baber_chair; signal(empty); wait(mutex); count := count – 1; signal(mutex); exit shop; end end baber: begin repeat wait(full); cut hair; signal(cut); wait(payment); accept payment; signal(receipt); unt

19、il false; end parend end 4. 设有P1,P2,P3进程共享某一文件F,P1对F只读不写,P2对F只写不读,P3对F先读后写。当一个进程写F时,其他进程对F不能进行读写,但多个进程同时读F是允许的。试用P、V实现P1,P2,P3的同步与互斥。 begin rmutex := 1; wmutex := 1; count := 0; cobegin P1: begin repeat P(rmutex); count : = count + 1; if count = 1 then P(mutex);

20、 V(rmutex); 读文件F; P(rmutex); count : = count – 1; if count = 0 then V(wmutex); V(rmutex) until false end; P2: begin repeat P(wmutex); 写文件F; V(wmutex); until false end; P3 begin repeat P(rmutex); count : = count + 1; if count = 1 then P(wmutex

21、); V(rmutex); 读文件F; P(rmutex); count : = count – 1; if count = 0 then V(wmutex); V(rmutex); P(wmutex); 写文件F; V(wmutex); until false end; coend end 5. 吸烟者问题: 假设系统有3个吸烟者(smoker)进程和1个供货商进程(Agent)进程。每个吸烟者连续不断地制造香烟并吸掉它。但是,制造一支香烟需要3种材料—烟、纸、火柴。一个吸烟者进程有纸,另一个有烟,第三个有火柴。供货商进程可以无限地提供这三

22、种材料。供货商将两种材料一起放在桌子上,持有另一种材料的吸烟者即可制造一支香烟并吸掉它。当此吸烟者抽香烟时,他发出一个信号通知供货商进程,供货商马上给出另外两种材料,如此循环往复。试编写一个程序使供货商与吸烟者同步执行。 begin sale := 1; S1 := 0; S2 := 0; S3 := 0; a := 1; cobegin Agent: begin repeat P(sale); if a = 1 then begin 将烟和火柴放在桌子上; V(S1) end;

23、 if a = 2 then begin 将纸和火柴放在桌子上; V(S2) end; if a = 3 then begin 将烟和纸放在桌子上; V(S3) end until false end; Smoker1: begin repeat P(S1); 购买烟和火柴; a : = 2; V(sale); 吸烟 until false end; Smoker2: begin repeat P(S2); 购买纸和火柴; a : = 3; V(sale); 吸烟 until false end; Smoker3: begin repeat P(S3); 购买烟和纸; a : = 1; V(sale); 吸烟 until false end; coend end

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服