计算机操作系统习题及答案(4)_第1页
计算机操作系统习题及答案(4)_第2页
计算机操作系统习题及答案(4)_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、肈第4章进程同步与通信蒇1选择题莄1在操作系统中,p、V操作是一种_D_。蒃A.机器指令B.系统调用命令袇C.作业控制命令D.低级进程通信原语薆2假设信号量S的初值为2,当前值为-1,那么表示有_B_等待进程。螅A.0个B个羁C.2个D.3个袀3在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_O蚆 A.sender, messageB.sende, mailbox羂 C.receiver, messageD.receiver, mailbox蚃4下述那个选项不是管程的组成局部A o虿A.管程外过程调用管程内数据结构的说明螆B.管程内对数据结构进行操作的一组

2、过程莃C.局部于管程的共享数据说明肁D.对局部于管程的数据结构设置初值的语句莈5某通信方式通过共享存储区来实现,其属于_D_o螆A.消息通信B.低级通信螄C.管道通信D.高级通信袃6用P、V操作管理临界区时,信号量的初值应定义为C o蒁 祎C.1D.任意值膅7临界区是_B_。芀A. 一个缓冲区B. 一段程序腿C.一段共享数据区 D. 一个互斥资源羆8信箱通信是一种_D_通信方式。薅A.直接通信B.信号量羂C.低级通信D.间接通信羈9对于两个并发进程,设互斥信号量为mutex,假设mutex=O那么_A_。肆A.表示有一个进程进入临界区蚂B.表示没有进程进入临界区蒀C.表示有一个进程进入临界区,

3、另一个进程等待进入螇D.表示有两个进程进入临界区膆10对信号量S执行V操作后,下述选项正确的选项是_。肃A.当S小于等于0时唤醒一个阻塞进程膂B.当S小于0时唤醒一个阻塞进程螀C.当S小于等于0时唤醒一个就绪进程芅D.当S小于0时唤醒一个就绪进程蒄11在消息缓冲通信中,消息队列属于资源。蚀A.临界B.共享C.永久D.可剥夺蕿12在消息缓冲通信机制中,使用的临界资源是_D_O莅A.信箱B.消息队列中的某个缓冲区袅C.管道D.整个消息队列莂2 填空题芈1信号量的物理意义是:当信号量值大于0时表示可用资源的个数;当信号量值小于0时,其绝对值为等待该信号量的进程数。莅2如果信号量的当前值为-4,那么表

4、示系统中在该信号量上有 _4_个等待进程。芆3对于信号量可以做 p操作和V操作,p操作用于阻塞进程,V操作用于释放进程。程序中的 P和V操作 应谨慎使用,以保证其使用的正确性,否那么执行时可能发生死锁。螀4有m个进程共享同一临界资源,假设使用信号量机制实现对临界资源的互斥访问,那么信号量值的变化范 围是-m-1,1_。莁5管程由局部于管程资源对象的共享变量的说明、对管程对局部于管程的数据设置初始值的语句三局部组成蒅6访问临界资源的进程应该遵循的条件有:空闲让进、忙那么等待、有限等待和让权等待蒃7每个信箱可以包含信箱头和信箱体两局部。蒂8为了实现消息缓冲通信,在PCB中应增加的数据项有消息队列中

5、消息资源的信号量、对消息队列互斥操作的信号量和指向消息队列的指针。肀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 操作写出一个不会出现死锁的哲学家进餐问题的解?芁解:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两 支筷子,从而可使更多的哲学家进餐。以下将 room

8、作为信号量,只允许 4 个哲学家同时进入餐厅就餐,这样就 能保证至少有一个哲学家可以就餐,而申请进入餐厅的哲学家进入room 的等待队列,根据 FIFO 的原那么,总会进入到餐厅就餐,因此不会出现饿死和死锁的现象。莈 semap horechopstick 5=1 , 1, 1, 1, 1;羅 semaphoreroom=4;螃 voidphilosopher(inti)肀蒈 while(true)莆膀 think();蝿 wait(room);/ 请求进入房间进餐薈 wait(chopsticki);/ 请求左手边的筷子薃wait(chopstick(i+1)%5);请求右手边的筷子羂 ea

9、t();薇 signal(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()螀P1;肅 V(a);蒂 V(b);螂 P2()衿P(a);蒆P2;芄 V(c);蒁 P3()罿P(b);袇P3;蚂 V(d);芀 P4()罿P(c);芈P4;莄 V(e);芃 P5()聿P(d);莅P5;膅 V(f);肂 P6()腿P(e);螅 P(f);薃 P6;袀 6 有一个单向行驶的公路桥,每次只允

11、许一辆汽车通过。当汽车到达桥头时,假设桥上无车,便可上桥;否那么需等待,直到桥上的汽车下桥为止。假设每一辆汽车为一个进程,请用P、V操作保证汽车按要求过桥。艿解:此题中使用一个信号量m 用于互斥过河,因为每次允许一辆汽车通过,所以 m 初值为 1。膆 semaphorem=1;芅 main蕿cobegi n荿 passi;薇 coend螃 passi蚂P m;葿 Passtheriver;螄 Vm;蒅蒁 passi 表示第 i 辆汽车。薈7有3个并发进程R、M、P,它们共享了一个可循环使用的缓冲区 B,缓冲区B共有n个单元。进程R 负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B 的一

12、个单元中;进程 M 负责处理读入的字符;进程 P 负责把处理后的字符取出并打印输出。只有当缓冲区单元中的字符被进程P 取出后,才又可用来存放下一次读入的字符。请用 P、 V 操作为同步机制写出它们能正确并发执行的程序。膅解: semaphorebuffer_number=n;袃 semaphorechar_number=0;膀 semaphoreman_number=0;薈 main()薆cobeg in蚅 R;M;P;芃 coend蚈 R()羇while(true)肃P(buffer_ nu mber);羂 readachartobuffer;螈 V(char_number);莈螄螁 M()

13、薄while(true)芀P(char_ nu mber);羈 manipulateachar;芅 V(man_number);蚄蚁蚀P()芈while(true)螄P(ma n_nu mber);肂 printachar;膈 V(buffer_number);肇袃蒃(8)在生产者-消费者问题中,如果对调生产者描述中的两个P操作会发生什么情况?如果对调生产者描述中的两个 V 操作的顺序又会发生什么情况?袀答:在生产者-消费者问题中,如果将两个P操作位置对调,都可能引起死锁。考虑系统中缓冲区全满前时,假设一生产者进程先执行了P(mutex) 操作并获得成功,当再执行 P(empty) 操作时,它

14、将因失败而进入阻塞状态, 它期待消费者执行 V(empty) 来唤醒自己。在此之前,它不可能执行 V(mutex) 操作,从而使企图通过 P(mutex) 进入 自己的临界区的其他生产者和所有的消费者进程全部进入阻塞状态,从而引起系统死锁。 类似地, 消费者进程假设先执行 P(mutex) ,后执行 P(full) ,同样可能造成死锁。袆 V(full) 和 V(mutex) 互换位置, 或者 V(empty) 和 V(mutcx) 互换位置, 那么不会引起死锁, 其影响只是使临界资源 的释放略为推迟一些。羃( 9) 一个快餐厅有4类职员:领班:接受顾客点菜;厨师:准备顾客的饭菜;打包工:将做

15、好的饭菜打包;出纳员:收款并提交食品。每个职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并 发运行的程序。袄解:莈semaphoreS1=1; S1表示是否可以开始点菜衿semaphoreS2=0; S2表示是否可以开始做菜肃semaphoreS3=0; S3表示是否可以开始打包羁semaphoreS4=0; S4表示是否可以提交食品肀 mai n()蚈cobegi n肃LB ();莂CS();螂DBG ();莇CNY();膃coend螃 LB()艿while(true)膅芃顾客到达;膃 P(S1);羁接受顾客点菜;膈V(S2);莃芀 CS()荿while(true)羇蒃 P(S2

16、);蚁准备顾客的饭菜;肁V(S3);螆螆 DBG()肂while(true)蕿蝿 P(S3);袆打包顾客的饭菜;芅V(S4);肃莀 CNY()螈while(true)蚆薁 P(S4);腿收款并提交食品;袈V(S1);袃芃( 1 0)设公共汽车上,司机和售票员的活动分别如下:袈司机的活动:启动车辆:正常行车;到站停车。羈售票员的活动:关车门;售票;开车门。P、V操作实现它们的同芄在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和步。蚁解:羁sem aphores1=0;/s1表示是否允许司机启动汽车,其初值为0肇semap hores2=0;/s2表示是否允许售票员开门,其

17、初值为0蚅 mai n()蒂蚀cobegi n膈 driver。;肆 busma n();袀coend蒈膈 driver()膂while(true)薂芇 P(s1);芈启动车辆 ;薃正常行车 ;肀到站停车芀 V(s2);莈羄 busma n()螂while(true)聿蒇 关车门 ;莅 V(s1);膀售票 ;螈 P(s2);薇 开车门 ;螆上下乘客 ;羂袁( 1 1 )有一只铁笼子,每次只能放入一只动物,猎手向笼中放入老虎,农民向笼中放入猪,动物园等待取 笼中的老虎,饭店等待取笼中的猪,试用P、V操作实现猎手、农民、动物园和饭店的同步。蚇解:虿semaphorecage=1;/cage表示可用的铁笼子资源莀semaphorepig=0;/pig表示可用的猪资源莆semaphoretiger=0;/tiger表示可用的虎资源蒃 mai n()肀袇cobegi n肄 hun ter();薃

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论