版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、肇第4章进程同步与通信藏1)选择题英(1)在操作系统中,p、V操作是一种_D_。募A.机器指令B.系统调用命令wC.作业控制命令D.低级进程通信原语夔(2)若信号量S的初值为2,当前值为-1,则表示有B等待进程。嵋A.0个B.l个羁C.2个D.3个材(3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_o期A.sender,messageB.sender;mailbox辐C.receiver,messageD.receiver,mailbox董(4)下述那个选项不是管程的组成部分A。蚕A.管程外过程调用管程内数据结构的说明蟆B.管程内对数据结构进行操作的一
2、组过程蒂C.局部于管程的共享数据说明屋D.对局部于管程的数据结构设置初值的语句芨(5)某通信方式通过共享存储区来实现,其属于D。帔A.消息通信B.低级通信蝴C.管道通信D.高级通信裂(6)用P、V操作管理临界区时,信号量的初值应定义为C。蓬A.-1B.0祎C.1D.任意值瞧(7)临界区是_巨_。方A.一个缓冲区B.一段程序腿C.一段共享数据区D.一个互斥资源墨(8)信箱通信是一种_D1信方式。薄A.直接通信B.信号量辐C.低级通信D.间接通信«(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则_A_。肆A.表示有一个进程进入临界区蚂B.表示没有进程进入临界区蔓C.表
3、示有一个进程进入临界区,另一个进程等待进入蟆D.表示有两个进程进入临界区滕(10)对信号量S执行V操作后,下述选项正确的是_C_。肃A.当S小于等于0时唤醒一个阻塞进程膂B.当S小于0时唤醒一个阻塞进程SfC.当S小于等于0时唤醒一个就绪进程弋D.当S小于0时唤醒一个就绪进程蔻(11)在消息缓冲通信中,消息队列属于A资源。蚀A.临界B.共享C.永久D.可剥夺覆(12)在消息缓冲通信机制中,使用的临界资源是_D_。莅A.信多fB.消息队列中的某个缓冲区袅C.管道D.整个消息队列前2)填空题芈(1)信号量的物理意义是:当信号量值大于0时表示可用资源的个数;当信号量值小于0时,其绝对值为等待该信号量
4、的进程数。莅(2)如果信号量的当前值为-4,则表示系统中在该信号量上有_4一个等待进程。黄(3)对于信号量可以做P操作和V操作,P操作用于阻塞进程,V操作用于释放进程。程序中的p和2操作应谨慎使用,以保证其使用的正诿性,否则执行时可能发生死锁。蛰(4)有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是-(m-1),1。筮(5)管程由局部于管程(资源对象)的共享变量的说明、对管程(资源对象)数据进行操作的一组过程和对局部于管程的数据设置初始值的语句三部分组最菜(6)访问临界资源的进程应该遵循的条件有:空闲让进、忙则等待、有限等待和让权等待。蒙(7)每个信
5、箱可以包含信箱头和信箱体两部分。蒂(8)为了实现消息缓冲通信,在PCB中应增加的数据项有消息队列中消息资源的信号量、对消息队列互斥操作的信号量和指向消息队列的指针。聿3)解答题薄(1)什么是临界资源?什么是临界区?对临界资源的访问有哪些原则?袄答:一次仅允许一个进程使用的共享资源被称为临界资源。用每个进程中访问临界资源的那段程序称为临界区。袈对临界资源的访问原则是:蛔空闲让进,如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。先忙则等待,任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。蚁有限等待,进入临界区的进程要在有限时
6、间内退出,以便其它进程能及时进入自己的临界区。蜗让权等待,如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。嵋(2)请给出P、V操作的定义。如何用P、V操作实现进程间的互斥?蛔解:P原语操作的动作是:蒂sem减1;蚀若sem减1后仍大于或等于零,则进程继续执行;袅若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。螂V原语操作的动作是:袁sem力口1;唐若相加结果大于零,则进程继续执行;肄若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。膈由于用于互斥的信号量sem与所有的并发进程有关,所以称
7、之为公有信号量。公有信号量的值反映了公有资源的数量。只要把临界区置于P(sem)和V(sem)之间,即可实现进程间的互斥,sem的初值通常设置成1。蒲使用P、V操作实现进程互斥时应该注意的是:芈每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。芈P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。薄互斥信号量的初值一般为1。摩(3)请用P、V操作写出一个不会出现死锁的哲学家进餐问题的解?范解:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两支筷子,从而可使
8、更多的哲学家进餐。以下将room作为信号量,只允许4个哲学家同时进入餐厅就餐,这样就能保证至少有一个哲学家可以就餐,而申请进入餐厅的哲学家进入room的等待队列,根据FIFO的原则,总会进入到餐厅就餐,因此不会出现饿死和死锁的现象。芨semaphorechopstick5=1,1,1,1,1;箍semaphoreroom=4;螃voidphilosopher(inti)聿蒈while(true)莆膀think();蝇wait(room);/请求进入房间进餐#wait(chopsticki);/请求左手边的筷子蒲wait(chopstick(i+1)%5);/请求右手边的筷子辐eat();薇si
9、gnal(chopstick(i+1)%5);/释放右手边的筷子新signal(chopsticki);/释放左手边的筷子蠢signal(room);退出房间释放信号量room蔗薄斯(此题有多种解法。)滕(4)高级进程通信方式有哪几类?各自如何实现进程间通信?袄答:高级进程通信方式可以分为三大类:共享存储器系统、消息传递系统以及管道通信系统。赚在共享存储区系统中,进程通过共享内存中的存储区来实现通信。在消息传递系统中,进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信。管道是用于连接读进程和写进程以实现它们之间通信的共享文件,向管道提供输入的发送进程(即写进程
10、)以字符流形式将大量的数据送入管道,而接收管道输出的接收进程(即读进程)可以从管道中接收数据。薄(5)设有6个进程P1、P2、P3、P4、P5、P6,它们有如图3.5所示的并发关系。试用P、V操作实现这些进程间的同步。前图3.5六个合作进程的并发关肄cnd蚕P1()bV(a);<V(b);螂P2()衿P(a);荽P2;Me);蓬P3()量P(b);wP3;蚂V(d);方P4()量P(c);芈P4;董V(e);芃P5()聿P(d);莅 P5;瞧V;建P6()腿P(e);螅P(f);蒲P6;»(6)有一个单向行驶的公路桥,每次只允许一辆汽车通过。当汽车到达桥头时,若桥上无车,便可上
11、桥;否则需等待,直到桥上的汽车下桥为止。若每一辆汽车为一个进程,请用P、V操作保证汽车按要求过桥。艿解:本题中使用一个信号量m用于互斥过河,因为每次允许一辆汽车通过,所以m初值为1。滕semaphorem=1;芍main()覆cobegin箴passi();薇coend螃passi()蚂P(m);唐Passtheriver;蝴V(m);菜蓬passi表示第i辆汽车。#(7)有3个并发进程R、M、P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有n个单元。进程R负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B的一个单元中;进程M负责处理读入的字符;进程P负责把处理后的字符取出并打印输出
12、。只有当缓冲区单元中的字符被进程P取出后,才又可用来存放下一次读入的字符。请用P、V操作为同步机制写出它们能正确并发执行的程序。瞧解:semaphorebuffer_number=n;裂semaphorechar_number=0;膀semaphoreman_number=0;#main()菱cobegin蛔R;M;P;芃coend妍R()赣while(true)肃P(buffer_number);辐readachartobuffer;螈V(char_number);芨蝴腿M()薄while(true)方P(char_number);smanipulateachar;芍V(man_number
13、);蚄蚁蚀P()芈while(true)帆P(man_number);建printachar;膈V(buffer_number);肇裂蒙(8)在生产者-消费者问题中,如果对调生产者描述中的两个P操作会发生什么情况?如果对调生产者描述中的两个V操作的顺序又会发生什么情况?材答:在生产者-消费者问题中,如果将两个P操作位置对调,都可能引起死锁。考虑系统中缓冲区全满前时,若一生产者进程先执行了P(mutex)操作并获得成功,当再执行P(empty)操作时,它将因失败而进入阻塞状态,它期待消费者执行V(empty)来唤醒自己。在此之前,它不可能执行V(mutex)操作,从而使企图通过P(mutex)进
14、入自己的临界区的其他生产者和所有的消费者进程全部进入阻塞状态,从而引起系统死锁。类似地,消费者进程若先执行P(mutex),后执行P(full),同样可能造成死锁。袆V(full)和V(mutex)互换位置,或者V(empty)和V(mutcx)互换位置,则不会引起死锁,其影响只是使临界资源的释放略为推迟一些。蠢(9)一个快餐厅有4类职员:领班:接受顾客点菜;厨师:准备顾客的饭菜;打包工:将做好的饭菜打包;出纳员:收款并提交食品。每个职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并发运行的程序。袄解:芨semaphoreS1=1;/S1表示是否可以开始点菜衿semaphoreS2=
15、0;/S2表示是否可以开始做菜肃semaphoreS3=0;/S3表示是否可以开始打包羁semaphoreS4=0;/S4表示是否可以提交食品聿main()研cobegin肃LB();前CS();螂DBG();勘CNY();膈coend螃LB()艿while(true)瞧芃顾客到达;膈P(S1);羁接受顾客点菜;膈V(S2);蒂方CS()箴while(true)赣蒙P(S2);蚁准备顾客的饭菜;犀V(S3);帔帔DBG()建while(true)图蝇P(S3);袆打包顾客的饭菜;芍V(S4);肃蔗CNY()螈while(true)蚆莫P(S4);腿收款并提交食品;袈V(S1);裂芃(10)设公
16、共汽车上,司机和售票员的活动分别如下:袈司机的活动:启动车辆:正常行车;到站停车。踊售票员的活动:关车门;售票;开车门。芄在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和步。行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同蚁解:羁semaphores1=0;/s1表示是否允许司机启动汽车,其初值为0肇semaphores2=0;/s2表示是否允许售票员开门,其初值为0蛔main()蒂蚀cobegin膈driver();肆busman();木勺coend蒈膈driver()膂while(true)蔽芾P(s1);芈启动车辆;蒲正常行车;聿到站停车方V(s2);芨肄busman()螂while(true)聿蒇关车门;莅V(s1);螈P(s2);薇开车门;蟆上下乘客;辐袁(11)有一只铁笼子,每次只能放入一只动物,猎手向笼中放入老虎,农民向笼中放入猪,动物园等待取笼中的老虎,饭店等待取笼中的猪,试用P、V操作实现猎手、农民、动物园和饭店的同步。蜗解:蚕semaphorecage=1;/cagel示可用的铁笼子资源蔗semaphorepig=0;/pig表示可用的猪资源莆semaphoretiger=0;/tiger表示可用的虎资源蒙main()聿wcobe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七章 三角形 全章导学教案
- PEP四年级下教案
- 《劳动最光荣》教案及教学反思
- 广东省梅州市2023-2024学年高一年级下册7月期末考试语文试题(解析版)
- 科技馆木门油漆改造合同
- 医保政策宣传与教育规定
- 医疗器械买卖合同
- 机场建设延期合同
- 仓库防火门安装合同模板
- 展览会空地租赁合同样本
- 2024年人教版小学四年级科学(上册)期中试卷附答案
- DB11T 489-2024 建筑基坑支护技术规程
- JTGT F20-2015 公路路面基层施工技术细则
- 近三年任教学科学生学业水平和综合素质情况-回复
- 2023届高考语文备考之整句与散句变换(10道真题含答案)
- 公园绿化养护服务投标方案
- 《智慧农业》的ppt完整版
- 预制混凝土管片、钢管片监理实施细则(完整)范本
- 新课标人教版初中数学八年级下精第十六章《分式》简介
- 卫生间装修施工方案(完整版)
- (2021年整理)云南省义务教育学校办学基本标准
评论
0/150
提交评论