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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机操作系统习题与答案4.docx

1、计算机操作系统习题与答案4第 4 章 进程同步与通信1)选择题( 1)在操作系统中,P、 V操作是一种_D_ 。A. 机器指令C. 作业控制命令( 2)若信号量 S 的初值为A. 0 个C. 2 个2,当前值为B. l 个D. 3 个B. 系统调用命令D. 低级进程通信原语-1,则表示有 _B_ 等待进程。( 3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中参数应是 _C_。Send 原语中A. sender,messageC. receiver, messageB. sender, mailboxD. receiver , mailbox( 4)下述那个选项不是管程的组成部分_

2、A_ 。A. 管程外过程调用管程内数据结构的说明B. 管程内对数据结构进行操作的一组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句( 5)某通信方式通过共享存储区来实现,其属于_D_ 。A. 消息通信 B. 低级通信C. 管道通信 D. 高级通信( 6)用 P、 V 操作管理临界区时,信号量的初值应定义为_C_。A. -1B. 0C. 1D. 任意值( 7)临界区是_B_ 。A. 一个缓冲区C. 一段共享数据区B. 一段程序D. 一个互斥资源( 8)信箱通信是一种A. 直接通信C. 低级通信_D_通信方式。B. 信号量D. 间接通信( 9)对于两个并发进程,设互斥

3、信号量为 mutex ,若 mutex=0则 _A_ 。A. 表示有一个进程进入临界区B. 表示没有进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区( 10)对信号量 S 执行 V 操作后,下述选项正确的是 _C_。A. 当 S 小于等于 0 时唤醒一个阻塞进程B. 当 S 小于 0 时唤醒一个阻塞进程C. 当 S 小于等于 0 时唤醒一个就绪进程D. 当 S 小于 0 时唤醒一个就绪进程( 11)在消息缓冲通信中,消息队列属于_A_ 资源。( 12)在消息缓冲通信机制中,使用的临界资源是_D_。A. 信箱B. 消息队列中的某个缓冲区C. 管道 D

4、. 整个消息队列2)填空题( 1)信号量的物理意义是:当信号量值大于 0 时表示 可用资源的个数 ;当信号量值小于 0 时,其绝对值为 等待该信号量的进程数 。( 2)如果信号量的当前值为 -4 ,则表示系统中在该信号量上有 _4_ 个等待进程。( 3)对于信号量可以做 P 操作和 V 操作, P 操作用于阻塞进程, V操作用于释放进程。 程序中的 P 和 V 操作应谨慎使用, 以保证其使用的正确性,否则执行时可能发生死锁。( 4)有 m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是 _-(m-1),1_ 。( 5)管程由 局部于管程(资源对象)的共享

5、变量的说明 、 对管程(资源对象)数据进行操作的一组过程 和 对局部于管程的数据设置初始值的语句 三部分组成。( 6)访问临界资源的进程应该遵循的条件有: 空闲让进 、 忙则等待 、 有限等待 和 让权等待 。( 7)每个信箱可以包含 信箱头 和 信箱体 两部分。( 8)为了实现消息缓冲通信, 在 PCB 中应增加的数据项有 消息队列中消息资源的信号量 、 对消息队列互斥操作的信号量 和 指向消息队列的指针 。3)解答题( 1)什么是临界资源?什么是临界区?对临界资源的访问有哪些原则?答:一次仅允许一个进程使用的共享资源被称为临界资源。每个进程中访问临界资源的那段程序称为临界区。对临界资源的访

6、问原则是:空闲让进,如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。忙则等待,任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。有限等待,进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。让权等待, 如果进程不能进入自己的临界区, 则应让出 CPU,避免进程出现 “忙等”现象。( 2)请给出 P、 V 操作的定义。如何用 P、 V 操作实现进程间的互斥?解: P 原语操作的动作是: sem 减 1;若 sem 减 1 后仍大于或等于零,则进程继续执行;若 sem 减 1 后小于零,则该进程被阻塞后进入

7、与该信号相对应的队列中,然后转进程调度。V 原语操作的动作是: sem 加 1;若相加结果大于零,则进程继续执行;若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。由于用于互斥的信号量 sem 与所有的并发进程有关,所以称之为公有信号量。公有信号量的值反映了公有资源的数量。只要把临界区置于 P(sem)和 V(sem) 之间,即可实现进程间的互斥, sem 的初值通常设置成 1。使用 P、 V 操作实现进程互斥时应该注意的是:每个程序中用户实现互斥的 P、 V 操作必须成对出现,先做 P 操作,进临界区,后做 V 操作,出临界区。若有多个分支,

8、要认真检查其成对性。 P、V 操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。互斥信号量的初值一般为 1。( 3)请用 P、V 操作写出一个不会出现死锁的哲学家进餐问题的解?解:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两支筷子,从而可使更多的哲学家进餐。以下将 room 作为信号量,只允许 4 个哲学家同时进入餐厅就餐,这样就能保证至少有一个哲学家可以就餐,而申请进入餐厅的哲学家进入 room 的等待队列,根据 FIFO 的原则,总会进入到餐厅就餐,因此不会出现饿死和死锁的现象。semaphore chopstick5=1 ,

9、 1, 1,1, 1;semaphore room=4;void philosopher(int i)while(true)think();wait(room); / 请求进入房间进餐wait(chopsticki); / 请求左手边的筷子wait(chopstick(i+1)%5); / 请求右手边的筷子eat();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 六个合作进程的并发

11、关系解: semaphore a,b,c,d,e,f=0,0,0,0,0,0;cobeginP1;P2;P3;P4;P5;P6;coendP1() 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)有一个单向行驶的公路桥,每次只允许一辆汽车通过。当汽车到达桥头时,若桥上无车,便可上桥;否则需等待,直到桥上的汽车下桥为止。若每一辆汽车为一个进程,请用 P、 V 操作保证汽车按要求过桥。值为解:本题中使用一个

12、信号量1。m 用于互斥过河, 因为每次允许一辆汽车通过,所以m 初semaphore m=1;main() cobeginpassi();coendpassi()P( m);Pass the river;V( m);passi 表示第 i 辆汽车。( 7)有 3 个并发进程 R、M 、 P,它们共享了一个可循环使用的缓冲区 B ,缓冲区共有 n 个单元。进程 R 负责从输入设备读信息,每读一个字符后,把它存入到缓冲区 B一个单元中;进程 M 负责处理读入的字符;进程 P 负责把处理后的字符取出并打印输出。只有当缓冲区单元中的字符被进程 P 取出后,才又可用来存放下一次读入的字符。请用B的P、V

13、 操作为同步机制写出它们能正确并发执行的程序。解: semaphore buffer_number=n;semaphore char_number=0;semaphore man_number=0;main() cobegin R;M;P;coend R() while (true)P(buffer_number);read a char to buffer;V(char_number);M() while (true)P(char_number);manipulate a char;V(man_number);P() while (true)P(man_number);print a cha

14、r;V(buffer_number);( 8)在生产者 -消费者问题中, 如果对调生产者描述中的两个 P操作会发生什么情况?如果对调生产者描述中的两个 V 操作的顺序又会发生什么情况?答:在生产者 - 消费者问题中, 如果将两个统中缓冲区全满前时,若一生产者进程先执行了P 操作位置对调, 都可能引起死锁。考虑系P(mutex) 操作并获得成功,当再执行P(empty)操作时,它将因失败而进入阻塞状态,它期待消费者执行 V(empty) 来唤醒自己。在此之前,它不可能执行 V(mutex) 操作,从而使企图通过 P(mutex) 进入自己的临界区的其他生产者和所有的消费者进程全部进入阻塞状态,从而引起系统死锁。类似地,消费者进程若先执行 P(mutex) ,后执行 P(full) ,同样可能造成死锁。V(full) 和 V(mutex) 互换位置,或者 V(empty) 和 V(mutcx) 互换位置,则不会引起死锁,其影响只是使临界资源的释放略为推迟一些。(

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

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