进程同步练习精选.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程同步练习精选

习题课;——进程同步练习;进程同步问题的求解依据 ——信号量的两种应用 实现进程互斥 分析题目中的资源、互斥资源,设置信号量及初值 分析题目中的进程,及其行为,进程访问的资源 利用所设置的信号量控制进程对资源的访问 必要时增加共享变量(如计数器),进程对共享变量的访问是互斥的 实现进程合作(实现前趋关系) 识别是进程合作类型的题目(一般会有合作、协作、配合之类的字样) 分析进程/语句之间的前趋关系,为每条边设置信号量(初值为0) 利用所设置的信号量控制进程/语句执行的次序;题目1: 一个仓库中只库存两种产品:A和B,需要满足条件如下: A的产品数量-B的产品数量 M B的产品数量-A的产品数量 N 每次只能存一种产品 其中M,N均为整数。 分析: A数量与B数量相互制约,假设当前时刻A最多可以再存Sa个,B最多可以再存Sb个,则Sa初值为M-1,Sb初值为N-1,A每库存一个,Sa应该减1(减少一个),Sb应该加1(A加1,B同样加1,题中两个不等式仍然成立);同理B每库存一个Sb减1,Sa加1。 每次只能存一种产品表明仓库中临界资源,设置信号量mutex, 初值为1。;semaphore mutex=1; semaphore Sa=M-1, Sb=N-1; ProcessA(){ P(Sa); P(mutex); 存一个A产品; V(Sb); V(mutex); } ProcessB(){ P(Sb); P(mutex); 存一个B产品; V(Sa); V(mutex); } ;题目2: 三个合作进程A,B,C,需要依次通过同一台输入设备输入各自的数据a,b,c,且输入设备互斥,A接受a,B接受b,C接受c。 A,B,C分别进行如下运算: A: x=a+b B: y=a*b C: z=y+c-a 最终由A进程将x,y,z结果打印出来。 分析: 由于依次通过同一设备,故顺序为A-B-C,即图中的1,4. A中需要B输入的数据b,所以必须在B接收完b后A的计算才能运行。即图的2 C需要B的运算结果,故C要等B计算完后才能计算,即图的5 A需要B,C的运算结果y,z,所以必须B,C计算完成后A才能打印,即图的3,6 输入设备是互斥的,需要互斥信号量。;semaphore mutex=1; semaphore s1=s2=s3=s4=s5=s6=0; ProcessA(){ P(mutex); // 获得输入设备 输入a; V(mutex); V(s1); P(s2); x=a+b; P(s3); P(s6); 打印x,y,z; } ;只要理解一个同步的情况,上面6个同步的情况就非常简单:;若B先于A执行,则P(S)由于S.value–后0故挂起;当A执行V(S)后执行S.value++后S.value=0满足value=0唤醒B,即A先于B执行。 为方便记忆:;题目3; 一条小河上有一座独木桥,规定每次只允许一人过桥。如果把每个过桥看作一个进程,为保证安全,请用信号量操作实现正确管理。 begin s:semaphore; s:=1; cobegin begin wait(s); 过桥; signal(s); end Coend end;题目4: 一个快餐店,有两个厨师,一个做中餐,一个做西餐,厨师做完一份食物就放在窗口,由顾客自取。窗口只能放下一份食物。到店顾客分两类:要么只吃中餐,要么只吃西餐。试实现进程同步。 分析: 窗口只能放一份食物,是临界资源,设一互斥信号量mutex,初值为1 两个资源信号量:中餐S1,西餐S2,初值都为0 四个进程:中餐厨师,西餐厨师,中餐顾客,西餐顾客;var mutex,s1,s1:semaphore:=1,0,0 Begin Parbegin; Parend En

文档评论(0)

tazhiq2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档