“操作系统概论”习题解答之并发进程_第1页
“操作系统概论”习题解答之并发进程_第2页
“操作系统概论”习题解答之并发进程_第3页
“操作系统概论”习题解答之并发进程_第4页
“操作系统概论”习题解答之并发进程_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、“操作系统概论”习题解答之并发进程第7章习题解答1什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮 流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。2临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。对若干个并发进程共享某一变量的相关临界区得管理有三点要求: 一次至多一个进程能够进入临界区,当有进程在临界区执行时,其他想进

2、入临界区执行的进程必须等待。 不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。 不能强迫一个进程无限期等待键入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。3. 采用PV操作作为同步机构时,假定与某共享变量相关的信号量S的值可在-1,l :之间,问S的初值是哪个值?当 S= 1, S=0, S=l时它们各自的物理含义是什么?答:S的初值是1.S= I,表示有一个进程在等待进入临界区执行。S= 0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。S= I,表示无进程在临界区执行,若有进程想进入临界区则可

3、以立即进入。4. A、B两个火车站之间是单轨连接的,现有许多列车同时到 A站,须经A再到达B站,列车出B站后又可分路行驶(如图 7 2)为保证行车安全,请你当调度时,你将如何调度 列车?请你用PV操作为工具设计一个能实现你的调度方案的自动调度系统。答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人 A B站之间行驶。当A石站之间有列车在行驶时,则到达A站者必须在站外等待。当有列车到达B站后,让等在A站外的一列车进入。用一个信号量S来控制到达A站的列车能否进入单轨道行驶,S的初始值为I.列车到达 A站后,先执行P ( S),若无列车在 A、B站之间行驶,则执行 P ( S)后立即进人单轨

4、道行驶,到达B站后,执行V (S),可释放一个等待进入的列车进入行驶。若A、B站之间已有列车在行驶,则执行 P( S)后就等待,直到行驶者到了 B站执行V (S)后释放一个欲进入 者。5. 今有三个进程R、M P,它们共享一个缓冲区。R负责从输入设备读信息,每次读出一个记录并把它存放在缓冲区中:M在缓冲区加工读入的记录;P把加工后的记录打印输出。输入的记录经加工输出后,缓冲区中又可存放下一个记录。请用P、V操作为同步机构写出他们并发执行时能正确工作的程序。答:三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:S1 :表示是否可把读人的记录放到缓冲区,初始值为1.S2:表示是否可对缓冲

5、区中的记录加工,初始值为0.S3:表示记录是否加工好,可以输出,初始值也为0.三个进程可如下设计:beginS1 , S2, S3: semaphore;S1 := I ; S2:= S3:= 0;cobeginprocess RbeginL1 :读记录;P( S1);记录存入缓冲区;V( S2);goto L1 ;end;process MbeginL2: P( S2);加工记录;V( S3);goto L2 ;end;process PbeginL3:P( S3);输出加工后的记录;V(S1);goto L3 ;end;coend;end.6. 现有4个进程R1, R2, W1 W2它们共

6、享可以存放一个数的缓冲器B.进程R1每次把从键盘上投入的一个数存放到缓冲器B中,供进程 W1打印输出;进程R2每次从磁盘上读一个数放到缓冲器 B中,供进程 W2打印输出。当一个进程把数据存放到缓冲器后,在该数还 没有被打印输出之前不准任何进程再向缓冲器中存数。 在缓冲器中还没有存入一个新的数之 前不允许任何进程加快从缓冲区中取出打印是怎样才能使这四个进程在并发执行是协调的 工作?答:这四个进程实际上是两个生产者R1,R2和两个消费者 W1, W2各自生成不同的产品中各自的消费对象去消费,他们共享一个的缓冲器。由于缓冲器只能存放一个数,所以, R1和R2在存放数时必须互斥。而 R1和W1 R2和

7、W2之间存在同步。为了协调它们的工作 可定义三个信号量:S:表示能否把数存人缓冲器B,初始值为1.S1:表示R1是否已向缓冲器存入从键盘上读入的一个数,初始值为0.S2:表示R2是否已向缓冲器存入从磁盘上读入的一个数,初始值为0.beginS, S1, S2: semaphore;S:= 1 ; S1:= S2:= 0;cobeginprocess R1xl : integerbeginL1:从键盘读一个数;x1 : =读入的数;P(S);B:= xl ;V(S1); goto L1 ; end; process R2 x2 : integer ; beginL2:从磁盘读一数;x2 : =读

8、入的数; P(S);B:= x2 ;V(S2); goto L2 ; end; process W1 y: integer ; beginL3: P( S1); y: =B; V(S); 打印 y 中的数; goto L3 ; end; process W2z: integerbeginL4:P( S2);z:=B;V(S);打印 z 中的数;goto L4 ;end;coend;end.7. 两个并发进程的程序如下:beginN: integer ;N:=3;cobeginprocess AbeginL1 : N = N+ 5;goto L1 ;end;process BbeginL2: p

9、rint ( N);N:= 0;goto L2 ;end;coend;end.若 process A 先执行了三个循环后, process A 和 process B 又并发执行了一个循环, 写出可能出现的打印值。请用 PV 操作实现同步,使两并发进程能正确执行。答:可能的值是18或23.这是因为process A执行三个循环后,N= 18,之后A和B 并发执行,可能先执行 A中的N: =N+ 5,再执行B中的print ( N);这样就会得到23,也 可能先执行B中的pint ( N);这就会得到18.可以利用 P、 V 操作实现同步:beginN: integer ;S: semphore

10、 ;S:= I ;N:= 3;cobeginprocess AbeginL1 : P( S);N:= N+ 5;V( S);gotO L1 ;end;process BbeginL2: P( S);print ( N);N:= 0;V( S);goto L2 ;end;coend;end.8. 通信机制中设置哪些基本通信原语?它们的功能是什么?答:系统提供两个与信箱通信有关的通信原语:send原语(发送)和receive 原语(接收)。send( B, M)原语把信件 M送人到信箱B中,receive ( B, X)原语从信箱 B中取出 一圭寸信存放到指定的地址 X中。9. 什么叫死锁?什么原

11、因会引起死锁? 答:若系统中存在一组进程(二个或多个进程),他们中的每一个进程都占用某种资源而又都在等待其中另一个进程所占用的资源, 这种等待永远不能结束, 就说系统出现“死锁”。进程死锁的起因是系统提供的资源数比要求使用资源的进程数少,或者是若干个个进程要求资源的总数大于系统能提供的资源数。 这时, 进程间就会出现竞争资源的现象, 如果对 进程竞争的资源管理和分配不当就会引起死锁。 死锁的出现是与资源分配策略和并发进程的 执行速度有关。10. 有哪些策略可防止和避兔死锁?答:防止死锁的策略有: 静态分配、 按序分配、剥夺式分配。 银行家算法可以避免死锁。11. 某系统有输入机和打印机各一台,

12、今有两个进程都要同时使用他们,采用PV操作实现请求使用和归还释放后, 还会产生死锁吗?若否, 说明理由; 若会产生死锁则给出一种防 止死锁的方法。答:如果 PV 操作设计不当,仍会产生死锁。假如用 S1 S2 分别代表输入机和打印机能 否被使用的信号量,由于资源是共享的,所以必须互斥使用,因而它们的初始值都为l.如果用如下方式实现请求使用和归还释放:process QIbeginP( S1);使用输入机;P( S2);使用打印机;V( S2);V( S1);end;process Q2beginP( S2);使用打印机;P(S1);使用输入机;V(S2);V(S1);end;那么就会出现 Q1

13、得到输入机而 Q2得到打印机,双方在不释放已经有的资源的情况下 又去申请新的资源,就会造成死锁。可以采用为资源编序号的方法,要求按序申请,如下:process Q1beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);end;process Q2beginP(S1);使用输入机;P(S2);使用打印机;V(S2);V(S1);12. 某一系统分配资源的策略是:当进程提出申请资源时,只要系统有资源中是分配给 它, 系统无资源时让它登台。 任一进程总是先释放以占有的资源后在申请新的资源, 且每次 申请一个资源, 系统中的进程得到资源后总能在有限时间内归还。 证明该系统不会发生死锁。答:任一进程 P

温馨提示

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

评论

0/150

提交评论