下载此文档

第三章进程管理课后习题答案.pdf


文档分类:高等教育 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
该【第三章进程管理课后习题答案 】是由【青山代下】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【第三章进程管理课后习题答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..1现代操作系统中为什么要引入“进程”概念?它与程序有什么区别?答:之所以要引入进程的概念,是因为在一些可以并发的程序段之间,存在着某种相互制约的关系,每个程序段的执行不仅要受到其它程序执行的制约,而且还要动态地依赖系统资源的分配情况,因此每个可以并发执行的程序段就会因外界条件的限制而不能运行,被迫处于阻塞状态。仅用程序的概念无法表示程序的走走停停以及程序运行过程中对资源的竞争现象,因此需要采用一种动态的概念描述并发程序这种走走停停的现象,这就产生了进程的概念。进程和程序的区别:(1)进程是程序的执行过程,是动态的过程,属于一种动态概念。程序是一组有序静态指令和数据的集合,用来指示处理机的操作,是一种静态概念。(2)从结构上看,每个进程实体是由程序段和相应的数据段两部分构成,并且进程结构中还要包含PCB,即进程控制块。(3)一个进程可以涉及到一个或几个程序的执行;反之,同一程序可以对应多个进程,即同一个程序段可以在不同数据集合上运行,可以构成不同的进程。(4)进程能真实地描述并发执行的过程,而程序仅仅是静态指令堆积的序列。(5)进程有可创建其他进程的功能,而一般的程序不具有创建其它程序的功能。(6)每一个程序都是在一个进程现场中运行的。2叙述进程的并发性和制约性。答:并发性是进程的重要特征。即多道程序中多个进程同时向前推进的过程,没个进程总是与其它进程并发地执行的。进程的制约性是指一个进程的运行受到另一进程的制约。比如有的进程可能正在等待另一进程的计算结果而无法运行,或者进程所需的资源被别的进程占有而无法运行。3进程的含义是什么?如何构造和描述进程?答:进程是程序的一次执行。进程由“进程控制块+程序+数据”构成,用进程控制块描述进程。4有三个并发进程,R负责从输入设备读入信息并传送给M,M将信息加工并传送给P,P将打印输出,写出下列条件下的并发程序。(1)双缓冲区,每个区大小为K。(2)单缓冲区,其大小为K。答:(1)双缓冲区,每个区大小为K,信号量初值如下:mutexR=mutexP=1;emptyR=emptyP=k;fullR=fullP=0;变量的初值如下:inR=outR=inP=outP=0;用类Pascal编写程序如下:1:..mutexR,mutexP,emptyR,fullR,emptyP,fullP:semaphere;inR,outR,inP,outP:integer;buffer:array0..k-1ofitem;bufferP:array0..k-1ofitem;procedureRbeginwhiletruedobegin输入数据data1;P(emptyR);P(mutexR);bufferR(inR):=data1;inR:=(inR+1)mod(k);V(mutexR);V(fullR);endend;procedureMbeginwhiletruedobeginP(fullR);P(mutexR);data2:=bufferR(outR);outR:=(outR+1)mod(k);V(mutexR);V(emptyR);对data2进行加工;P(emptyP);P(mutexP);bufferP(inP):=data2;inP:=(inP+1)mod(k);V(mutexP);V(fullP);endend;procedureP:beginwhiletruedobeginP(fullP);P(mutexP)data3:=bufferP(outP);2:..V(mutexP);V(emptyP);打印data3;endend;beginseminitinal(,1;,1;,k;,0;,k;,0);inR:=0;outR:=0;inP:=0;outP:=0;cobeginR;M;P;coendend.(2)单缓冲区,大小为kvarempty,full,ok,mutex:semaphere;inR,outR,inP,outP:integer;buffer:array0..k-1ofitem;procedureR:beginwhiletruedobegin输入数据data1;P(empty);P(mutex);buffer(inR):=data1;inR:=(inR+1)mod(k);V(mutex);V(full)endend;procedureM:beginwhileturedobeginP(full);P(mutex);data2:==buffer(outR);outR:=(outR+1)mod(k);V(mutex);3:..data2加工;P(mutex);buffer(inP):=data2;inP:=(inP+1)mod(k);V(mutex);V(ok);endend;proedureP:beginwhileturedobeginP(ok);P(mutex);data3:=buffer(outP);outP:=(outP+1)mod(k);V(mutex);V(empty);打印data3;end;endbeginseminitial(,k;,0;,0;,1);inR:=0;outR:=0;inP:=0;outP:=0;cobeginR;M;P;,交换两个V操作的次序会有什么结果?交换两P操作的次序呢?说明理由。答:交换两P操作的次序有可能造成死锁。例如,当无空缓冲区时,如果此时生产者先做互斥操作,即:P(mutex),然后才做同步操作P(empty),由于此时empty=-1造成生产者被阻塞。当消费者执行到互斥操作P(mutex)时,由于生产者已执行过P(mutex)并未作释放,所以此时mutex=-1,造成消费者也被阻塞,生产者等消费者释放空缓冲区,而消费者则等待生产者释放临界资源的使用权,所以两个进程都无法向前推进而造成死锁。交换两个V操作的次序不会发生死锁。6设有三个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲块组成的缓冲池;B与C也构成一对生产者与消费者(此时B为生产者,C为消费者),共享另一个由m个缓冲块组成的缓冲池。用P、V操作描述它们之间的同步关系。答:4:..mutexA,emptyA,fullA,mutexC,emptyC,fullC:semaphere;i,j,a,b:integer;bufferA:array0..n-1ofitembufferC:array0..m-1ofitem;procedureproduceA:生产者进程AbeginwhileturedobeginProducenextproduct;P(emptyA);P(mutexA);bufferA(i):=products;i:=(i+1)mod(n);V(mutexA);V(fullA)endendprocedureconsumer_procedurerB:消费者和生产者进程BbeginwhileturedobeginP(fullA);P(mutexA);Goods:=buffer(j);j:=(j+1)mod(n);V(mutexA);V(emptyA);ConsumegoodsandProducenextproductC;P(emptyC);P(mutexC);BufferC(a):=productC;a:=(a+1)mod(m);V(mutexC);V(fullC)endend;procedureconsumerC;消费者C进程beginwhileturedobeginP(fullC);P(mutexC);Goods:=bufferC(b);5:..b:=(b+1)mod(m);V(mutexC);V(emptyC);Consumeproduct;endend;beginSeminitsal(,1;,1;,n;,m;,0;,0);i:=0;j:=0;a:=0;b:=0;cobeginproduceAconsumer_procedurerB;,共有100个座位。读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名。读者离开时要消掉登记内容。试用P、V操作描述读者进程的同步结构。答:varmutex:semaphere;信号量,用于互斥full:semaphere;信号量,用于同步table:array0..n-1ofitem;登记表procedurereader;读者进程beginP(full);P(mutex);Register_name(table);V(mutex);Reading;P(mutex);Delet_name(table);V(mutex);V(full)end;beginseminitsal(,1;,100);初始化cobeginreader;reader;...coend6:...?答:引入线程的目的是提高程序执行的并行度。9引入管程的目的是什么?答:引入管程的目的把分散的临界区集中起来管理,为每个可共享的资源设立一个专门的机构来统一管理各进程对该共享资源的访问。这样使互斥操作更安全,既便于系统管理共享资源,又能保证互斥访问。10用管程实现读者与写者关系。管程部分描述如下:monitorrw;conditionwrt;varreadcount:integer;procedureentryread_start();beginreadcount:=readcount+1;end;procedureentryread_finish();beginreadcount:=readcount-1;ifreadcount=0thensingal(wrt)end;procedureentrywrite();beginifreadcount>0thenwait(wrt);performwriting;endbeginreadcount:=0endend;主程序部分:procedurewritter:();untilfalse;endprocedurereader:();performreading;();7:..false;endcobeginreader;writter;?答:进程通信是指进程之间的信息交换。12消息通信机制中应设置哪些基本通信原语?答:应设置send(A)(发送消息)原语,A是原语的参数,表示发送区的起始地址。receive(B)(接受消息)原语,B是接受进程提供的接收区起始地址。13何谓死锁?举例说明之。答:两个以上的进程相互等待一个永远不可能发生的条件而无法向前推进,这种僵局称为死锁。例如:如图所示的单行道上的交通阻塞。?产生死锁的原因和必要条件是什么?解:所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程才能引发的事件而无限期地僵持下去的局面。产生死锁的原因可以归结为两点:1)竞争资源,2)各进程之间的推进顺序不当。产生死锁的必要条件有四个:1)互斥条件,2)不剥夺条件,3)请求和保持条件,4)环路条件。、B、C三类资源,A资源的数量为17,B资源的数量为5,C资源的数量为20。某时刻系统中有5个进程。在T0时刻系统状态如表所示。最大资源需求量已分配资源数量进程ABCABCP0559212P1536402P24011405P3425204P4424314剩余资ABC8:..233系统采用银行家算法实施死锁避免策略。(1)T0时刻是否为安全状态?若是,请给出安全序列。(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?9

第三章进程管理课后习题答案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小674 KB
  • 时间2024-04-17