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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统复习资料例题 2Word文件下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统复习资料例题 2Word文件下载.docx

1、分析 本题是用来检查考生对使用P、V操作实现进程间同步的掌握情况。一般地,若要求进程B在进程A之后方可执行时,只需在进程B执行前进行P操作,而在进程A执行完时对同一信号量进行V操作即可。本题要求列出8个进程(程序)的控制关系,使题目显得较为复杂。但当对进程间的同步理解透彻后,应不难写出对应的程序。解这一类问题还应注意的一点是,要看清图示的制约关系,不要漏掉或多出制约条件。解 图并发程序间的同步如下所示:设置信号量初值:s1:=s2:=s3:=s4:= s5:=0PARBEGINprog1:BEGINdo all work;V(s1);ENDprog2:V(s2);prog3:P(s1);P(s

2、2);V(s3);prog4:V(s5);Prog5:V(s4);prog6:P(s3);prog7:P(s4);prog8:P(s5);PAREND例3.4有个寺庙,庙中有小和尚和老和尚若干人,有一只水缸,由小和尚提水入缸给老和尚饮用。水缸可容10桶水,水取自同一口水井中。水井径窄,每次仅能容一只水桶取水,水桶总数为3个。若每次只能入缸1桶水和取缸中1桶水,而且还不可以同时进行。试用一种同步工具写出小和尚和老和尚入水、取水的活动过程。解 本题为两个进程共享两个缓冲区的问题。首先考虑本题有几个进程:从井中取水后向缸中倒水此为连续动作,为一个进程;从缸中取水为另一个进程。其次,考虑信号量。有关互

3、斥的资源有:水井和水缸。水井依次仅能一个水桶进出,水缸一次入水为一桶。分别设互斥信号量为:mutex1和mutex2控制互斥。有关同步问题为:三个水桶无论从井中取水还是入处水缸都是一次一个,应为它设信号量count,抢不到水桶的进程只好等待。水缸满时不可入水,设信号量empty,控制水量,水缸空时不可出水,设信号量full,控制水量。mutex1:=mutex2:=1; count:=3; empty:=10; full:=0;parbegin小和尚打水进程: begin L1:P(empty); /*水缸满否? P(count); /*取得水桶 P(mutex1); /*互斥从井中取水 从井

4、中取水; V(mutex1); P(mutex2); /*互斥使用水缸 倒水入缸; V(mutex2); V(count); /*归还水桶 V(full); /*多了一桶水 Goto L1; End老和尚取水进程: L2: P(full); /*有水吗? /*申请水桶 /*互斥取水 从缸中取水; V(empty); /*水缸中少了一桶水 Goto L2; endparend.例3.5 有三个并发进程、共享一个缓冲区,进程负责从输入设备读入一条记录,每读一条记录后把它存放在缓冲区中;进程在缓冲区中加工进程存入的记录;进程把加工后的记录打印输出。缓冲区中每次只能存放一条记录,当记录被加工输出后,缓

5、冲区中才可存放另一条新记录。请用、操作为同步机制来描述它们并发执行时能正确工作的程序。分析 本题是三个进程共享一个缓冲区的问题。从题中看出,R、M、P这三个进程严格按照先做进程R,然后做进程M,最后做进程P。只有进程P执行完后,才可以做下一次的R,M,P。因此,要合理设计P、V操作的顺序与设置信号量的初值。解 R:=;M:=P:=0;进程 L1:从输入设备中读取一条记录;P(R);将读入记录存入缓冲区;V(M);goto L1进程M L2:P(M);从缓冲区中取出数据信息进行加工,并将其存入缓冲区;V(P)goto L2进程P:L3:P(P)输出缓冲区的信息;V(R)goto L3parend

6、;例3.6 若有三个进程A、B和C协作解决文件打印问题;A将文件记录从磁盘读入主存的缓冲区buffer1,每执行一次读一个记录;B将缓冲区buffer1的内容复制到缓冲区buffer2,每执行一次复制一个记录;C打印缓冲区buffer2的内容,每执行一次打印一个记录。缓冲区的大小和一个记录大小一样。请用P、V操作来保证文件的正确打印。分析 本题是三个进程共享二个缓冲区的问题。它是一个典型的生产者消费者问题,其中的难点在于进程B既是生产者又是消费者,处理不好可能造成同步错误或死锁。解 A、B、C三个进程协作解决文件打印问题的流程为: mutex1:avail1:=avail2:full1:=fu

7、ll2:进程Aread from disk;P(avail1);P(mutex1);put to buffer 1;V(full1);V(mutex1);goto L1;进程BP(full1);get form buffer 1;V(avail1);P(avail2);P(mutex2);put to buffer 2;V(full2);V(mutex2);goto L2;进程CP(full2)get form buffer 2;V(avail2);print record;goto L3;程序中mutex1和mutex2是两个公用信号量,用于控制进程对缓冲区buffer1和缓冲区buffer

8、2这两个临界资源访问的互斥。avail1、full1、avail2和full2分别对应两个缓冲区,其中avail1、avail2初值为1,表示可以利用的缓冲区数目为1;full1、full2的初值为0,表示存在于缓冲区内的数据的个数为0。通过对这两组私用信号量P、V操作,就实现了进程的同步。例3.7 进程P1使用缓冲区buffer向进程P2,P3,P4发送消息,要求每当P1向buffer中发消息时,只有当P2,P3,P4进程都读取这条消息后才可再向buffer中发送新的消息。利用P、V原语描述如图所示进程的动作序列。图 进程的动作序列分析 本题是一个生产者三个消费者共享一个缓冲区问题。它是生产

9、者和消费者问题的一个变形,在生产者和消费者问题中是共用一组缓冲区,每一个缓冲区只需要写一次,读一次。而在这个问题中,每个缓冲区只需写一次,但需读三次。本题在解题的过程中,我们可以把这一组缓冲区看做三组缓冲区。这样一来,每一个生产者需要同时写缓冲区组中相应的三个缓冲区,而每一个消费者只需读它自己所对应的那组缓冲区中对应的单元即可。生产者须在三个缓冲区都为空时才可写入。解 设信号量初值为:S1=S2=S3=0,S =3 进程P1 进程P2 进程 P3 进程P4 P(S ) P(S1) P(S2) P(S3) P(S ) 读取消息 读取消息 读取消息 P(S ) V(S) V(S) V(S) 发送消

10、息到缓冲区BufferV(S1) V(S2) V(S3)例3.8桌上有一个空盘,允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果。规定当盘空时一次放一个水果供吃者取用,请用P,V原语实现爸爸、儿子、女儿三个并发进程的同步。分析 本题是一个生产者两个消费者共享一个缓冲区问题,生产者一次可生产一个不同种类的产品本题的题意是: 爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果。 当盘空时,爸爸可将一个水果放入果盘中。 若放入盘中的是橘子,允许儿子吃,女儿必须等待。 若放入盘中的是苹果,允许女儿吃,儿子必须等待。因此,上述问题实际上是生产者消费者

11、问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。解 设置三个信号量:S, 初值为1,用于爸爸、儿子、女儿三个进程间的互斥,表示盘中是否为空。SO, 初值为0,用于爸爸、儿子儿两个进程间的同步,表示盘中是否有橘子。SA, 初值为0,用于爸爸、女子两个进程间的同步,表示盘中是否有苹果。三个进程之间的同步描述如下: father进程 son进程 daughter进程 L2: L3: P(S) P(SO) P(SA)将水果放入盘中 从盘中取出橘子 从盘中取出苹果if (放入是橘子) V(SO) V(S) V(S)else V(SA) 吃橘子 吃苹果 goto L1 goto L2 goto L3例3.9 某高校计算机开设一系列网络课程并安排学生上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:(1) 每两个学生组成一组,但占有一台机器,协同完成上机实习;(2) 只有一组的两个学生都到齐,并且此时机房有空闲机器时,该组学生才能进入机房;(3) 上机实习完成后,由一名教师检查,检查完毕,这一组学生同时离开机房。试用P,V操作模拟上机实习过程。解 上机实习过程如下:设置信号量:student=0; computer=2m,; enter=finish=check=0设置变量:rc=0学生进程:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1