付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统第4章习题带答案精品文档第四章一、问答题1、同步机制应遵循的准则是什么?2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?3、简述死锁的定义和死锁产生的原因。4、简述死锁定理和解除死锁的方法。5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产生的4个必要条件是什么?它们是彼此独立的吗?二、计算题(共20分)1、当前系统中出现下述资源分配情况:AllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656利用银行家算法,试问如果进程P2提出资源请求Re
2、quest(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0)测试系统是否安全:work=Available,finish=1没有进程的need满足<=work收集于网络,如有侵权请联系管理员删除精品文档系统处于不安全状态,系统拒绝此次资源分配。2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。它们向系统申请资源的次序和数量如表所示。回答:次序进程申请量1Q22P13Q14P35P26Q1问:
3、采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满足。3、一个计算机系统有6个磁带驱动器和4个进程。每个进程最多需要n个磁带驱动器。问当n为什么值时,系统不会发生死锁?并说明理由答:n=2理由同第4题(进程资源最大需求-1)乂进程数量+10系统资源数量4、若系统有某类资源mXn+1个,允许进程执行过程中动态申
4、请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。收集于网络,如有侵权请联系管理员删除精品文档当进程申请资源时只要有资源尚未分配完则满足它的申请,但用限制系统中可同时执行的进程数来防止发生死锁,你认为进程调度允许同时执行的最大进程数应该是多少?并说明原因。答;假设系统中有x个进程的进程,则资源至少要有“<x+1个才不会产生死锁,由于系统资源有mXn+1个,则可列出不等式:mXx+1&mXh+1解不等式,得到x&n,所以系统允许同时执行的最大进程数为n0证明:假设在系统允许同时执行的最大进程数为n时,仍然出现了死锁,此时应该存在一组进程都在
5、等待资源,而且系统已无资源可用。则此时该组进程最多n个,每个进程没有执行完时最多占用m个资源,所以现在系统分配出去的资源最多mXn,少于系统资源nixn+1,所以不可能有死锁出现。若系统进程数量为n+1,每个进程占有最大资源数量为m+1,则会出现死锁。例如,当其中n个进程均占有m个资源,剩下的一个进程占有了最后一个资源,所有进程都都还需要资源才可运行完,而此时系统已经无资源可用,产生死锁。因此,系统允许同时执行的最大进程数为n时系统不会有死锁发生5、设系统中有3种类型的资源A、B、C和5个进程P0、P1、P2、P3、P4,A资源的数量为10,B资源的数量为5,C资源的数量为7。在T0时刻系统状
6、态如下表所示。系统采用银行家算法实施死锁避免策略。(12分)AMaxBCAAllocationBCNeedAAvailableBCABCP0753r010743332P1322200122P2902302600P3222211011P4433002431.T0时刻是否为安全状态?若是,请给出安全序列收集于网络,如有侵权请联系管理员删除精品文档在T0时刻若进程P1发出资源请求Request(1,0,2),是否能够实施资源分配?在的基础上P4发出资源请求Request(3,3,0),是否能够实施资源分配?在的基础上P0发出资源请求Request(0,2,0),是否能够实施资源分配?见课本五、应用题
7、1、如果有三个进程R、W1、W2共享一个缓冲器B,而B中每次只能存放一个数。当缓冲器中无数时,进程R可以将从输入设备上读入的数存放到缓冲器中。若存放到缓冲器中的是奇数,则允许进程W1将其取出打印;若存放到缓冲器中的是偶数,则允许进程W2将其取出打印。同时规定:进程R必须等缓冲区中的数被取出打印后才能再存放一个数;进程W1或W2对每次存入缓冲器的数只能打印一次;W1和W2都不能从空缓冲中取数。写出这三个并发进程能正确工作的程序。semaphoreS=1,SO=SE=0;bufferB;voidR1()intx;while(1)从输入设备上读一个数;乂=接收的数;wait(S);B=x;收集于网络
8、,如有侵权请联系管理员删除精品文档ifB=奇数thensignal(SO);elsesignal(SE);)voidW1()inty;while(1)wait(SO);y=B;signal(S);打印y中数;)voidW2()intz;while(1)wait(SE);z=B;signal(S);打印z中数;main()cobeginR();W1();W2();2、设计一种可以避免死锁的资源分配算法,要求写明数据结构和相应方案或算法。参考课本上方案3、复印室里有一个操作员为顾客复印资料,有5把椅子供顾客休息等待复印如果没有顾客,则操作员休息。当顾客来到复印室时,如果有空椅子则坐下收集于网络,如
9、有侵权请联系管理员删除精品文档来,并唤醒复印操作员;如果没有空椅子则必须离开复印室。利用信号量机制解决该同步互斥问题。设置3个信号量:customers表示正在等待复印的顾客数量(不包括正在复印的顾客);operator记录正在等候顾客的操作员数,只有1和0;mutex用于对变量waiting的互斥访问。1个变量:waiting表示等待的顾客数量。semaphorecustomers=0,operator=0,mutex=1;waiting=0;processoperator()/操作员进程while(1)wait(customers);/等待顾客到来signal(operator);/通知顾
10、客已经完成复印)processcusotmeri()/顾客进程iwait(mutex);if(waiting<5)waiting+;signal(customers);signal(mutex);wait(operator);wait(mutex);waiting-;signal(mutex);elsesignal(mutex);离开复印室;main()cobeginoperator();customeri();4、a,b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另收集于网络,如有侵权请联系管理员删除精
11、品文档一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点和b点同时驶入,当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。请用信号量机制为工具,对ab段实现正确管理以保证行驶安全SemaphoreS1=1,S2=1,Sab=1;intab=ba=0;voidPab()(while(1)(wait(S1);if(ab=0)wait(Sab);ab=ab+1;signal(S1);车辆从a点驶向b点;wait(S1);ab=ab-1;if(ab=0)signal(Sab);signal(S1
12、);voidPba()(while(1)(wait(S2);if(ba=0)wait(Sab);ba=ba+1;signal(S2);车辆从b点驶向a点;wait(S2);ba=ba-1;if(ba=0)signal(Sab);signal(S2);收集于网络,如有侵权请联系管理员删除精品文档)main()(cobeginPab();Pba();)5、某系统五个合作的进程前驱图如下,请用信号量方法控制它们的执行,以确保它们的执行顺序,请写出类c算法。5、一条河上架设了由若干个桥墩组成的一座桥。若一个桥墩只能站一个人,过河的人只能沿着桥向前走而不能向后退。过河时,只要对岸无人过,就可以过。但不允
13、许河对岸的两个人同时过,以防止出现死锁。请给出两个方向的人顺利过河的同步算法。假设桥墩数量为ksemaphores,scounteast,scountwest,scount;s=1,scounteast=1,scountwest=1,scount=k;intCounteast=0,Countwest=0;voideast(inti)wait(scounteast);if(Counteast=0)wait(s);Counteast+;signal(scounteast);wait(scount4);上桥,过桥,下桥;收集于网络,如有侵权请联系管理员删除精品文档signal(scount4);wa
14、it(scounteast);Counteast-;if(Counteast=0)signal(s);signal(scounteast);)voidwest(inti)(wait(scountwest);if(Countwest=0)wait(s);Countwest+;signal(scountwest);wait(scount4);上桥,过桥,下桥;signal(scount4);wait(scountwest);Countwest-;if(Countwest=0)signal(s);signal(scountwest);)main()(cobegineast(1);.east(n);w
15、est(1);.west(m);)6、现有四个进程R1、R2、W1W2它们共享可以存放一个数的缓冲器Bo进程R1每次把来自键盘的一个数存入缓冲器B中,供进程W1打印输出;进程R2每次从磁盘上读一个数存放到缓冲器B中,供进程W2打印输出。为防止数据的丢失和重复打印,问怎样用wait,signal操作来协调这四个进程的并发执行。semaphoreS=1,S1=S2=0;bufferB;voidR1()intx;while(1)接收来自键盘的数;乂=接收的数;收集于网络,如有侵权请联系管理员删除精品文档wait(S);B=x;signal(S1);)voidR2()inty;while(1)从磁盘上
16、读一个数;丫=接收的数;wait(S);B=y;signal(S2);)voidW1()intk;while(1)wait(Sl);k=B;signal(S);打印k中数;)voidW2()intj;while(1)wait(S2);j=B;signal(S);打印j中数;)main()cobeginR1();R2();W1();W2();收集于网络,如有侵权请联系管理员删除精品文档7、系统中有4种类型的资源A、B、C、D和5个进程P0、P1、P2、P3、P4,当前系统出现下表所示资源分配情况:AllocationNeedAvailableABCDABCDABCDP0003200121622P
17、110001750P213542356P303320652P400140656试问:该状态是否安全?分析说明。如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况,如表1-4-7所示。表1-4-7WorkNeedAllocationWork+AllocationFinishPo1622001200321654TrueP31654065203321986TrueP419860656001419910TruePi199101750100029910TrueP2299102356135431
18、21414True从上述分析中可以看出,此时存在一个安全序列P。,P3,P4,P1,P2,故该状态是安全的。(2)P2提出t1求Request(1,2,2,2),按银行家算法进行检查:Request(1,2,2,2)wNeed(2,3,5,6)Request(1,2,2,2)<Available(1,6,2,2)收集于网络,如有侵权请联系管理员删除精品文档试探分配并修改相应的数据结构,资源分配情况如表1-4-8所示表1-4-8AllocationNeedAvailableP0003200120400Pi10001750一一一一P225761134一一一一P303320652一一一一P40
19、0140656一一一一再利用安全性算法检查系统状态是否安全,资源向量Available(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,所以系统不能将资源分配给进程P2。8、某寺庙有小和尚和老和尚各若干人,水缸一只,由小和尚提水入缸给老和尚饮用。水缸可容水10桶,水取自同一口水井中。水井径窄,每次仅能容一只水桶取水,水桶总数为3个。若每次入、取水仅为1桶,而且不可同时进行。试用记录型信号量机制写出小和尚和老和尚的活动过程。互斥资源有水缸和水井,分别用mutex1和mutex2来互斥。水桶总数仅3只,由信号量count控制J,信号量empty和full控制入水和出水量。semap
20、horemutex1,mutex2,empty,full,count;mutex1=1;mutex2=1;count=3;empty=10;full=0;processyoung_monk(inti)(i=1、2、).While(1)wait(empty);wait(count);wait(mutex1);从井中取水;signal(mutex1);wait(mutex2);倒水入缸;signal(mutex2);signal(count);signal(full);processold_monk(intj)j(j=1、2)收集于网络,如有侵权请联系管理员删除精品文档(While(1)wait(
21、full);wait(count);wait(mutex2);从缸中取水;signal(mutex2);signal(count);signal(empty);main()cobeginyoung_monk(i);old_monk(j);一9、考虑三个吸烟者进程和一个经销商进程的系统。每个吸烟者连续不断地做烟卷并抽他做好的烟卷,做一支烟卷需要烟草、纸和火柴三种原料。这三个吸烟者分别掌握有烟草、纸和火柴。经销商源源不断地提供上述三种原料,但他只将其中的两种原料放在桌上,具有另一种原料的吸烟者就可以做烟卷并抽烟,且在做完后给经销商发信号,然后经销商再拿出两种原料放在桌上,如此反复。试设计一个同步算
22、法来描述他们的活动。SemaphoreSA=SB=SC=0,SD=1;i:integer;voidsmokerA()while(1)wait(SA);制烟;signal(SD);吸烟;收集于网络,如有侵权请联系管理员删除精品文档)voidsmokerB()while(1)wait(SB);制烟;signal(SD);吸烟;)voidsmokerC()while(1)wait(SC);制烟;signal(SD);吸烟;)Voidprovider()while(1)2代表i=random(2);/0代表纸和火柴的组合,1代表烟草和火柴的组合,烟草和纸的组合wait(SD);把i放到桌子上;swit
23、ch(i)case0:signal(SA);case 1: signal(SB);收集于网络,如有侵权请联系管理员删除精品文档case 2: signal(SC);)Main()(cobeginsomkerA();somkerB();somkerC();provider();)10、假定有一个信箱可存放N封信,当信箱不满时发信者可把信件送入信箱;当信箱中有信时收信者可从信箱中取信。用指针R,K分别表示可存信和取信的位置,请用信号量来管理这个信箱,使发信者和收信者能正确工作。参考课本生产者消费者问题11、n个进程共享某种资源R,该资源共有m个,每个进程一次一个地申请或释放资源。假设每个进程对该资
24、源的最大需求量均小于m且各进程最大需求量之和小于n,试证明在这个系统中不可能发生死锁。答:设max(i)表示第i个进程的最大资源需求量,need(i)表示第i个进程还需要的资源量,alloc(i)表示第i个进程已分配的资源量。由题中所给条件可知:max(1)+max(n)=need(1)+need(n)+alloc(1)+alloc(n)<m+n如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,即alloc(1)+alloc(n)=m另一方面所有的进程将陷入无限等待状态,need(1)+need(n)>=n收集于网络,如有侵权请联系管理员删除精品文档两式相加,max(
25、1)+max(n)=need+need(n)+alloc+alloc(n)=m+n这与前面的假设矛盾,从而证明了在这个系统中不会发生死锁。12、一个数据文件或记录(统称数据对象),可被多个进程共享。有些读进程要求读,而另一些写进程对数据对象进行写或修改。允许多个写进程同时读一个共享对象,决不允许一个写进程和其他读进程或写进程同时访问共享对象。请用信号量或管程为工具,实现读写进程并发的正确管理。参考课本,题目中没有具体尤其哦球,所以读者优先和写者优先均可13、有一个仓库,可以存放A和B两种产品,但要求:1)每次只能存入一种产品(A或B);2)-N<A产品数量一B产品数量<M其中,N和
26、M是正整数。试用同步算法描述产品A与产品B的入库过程。【分析】A产品的数量不能比B产品的数量少N个以上,A产品的数量不能比B产品的数量多M个以上。设置2个信号量来控制A、B产品的存放数量,sa表示当前允许A产品比B产品多入库的数量,即在当前库存量和B产品不入库的情况下,还可以允许sa个A产品入库;sb表示当前允许B产品比A产品多入库的数量,即在当前库存量和A产品不入库的情况下,还可以允许sb个B产品入库。初始时,sa为M1,sb为N1。当往库中存放入一个A产品时,则允许存入B产品的数量也增加1;当往库中存放入一个B产品时,则允许存入A产品的数量也增加1。semaphoremutex=1,sa=
27、M-1,sb=N-1;processputa()收集于网络,如有侵权请联系管理员删除精品文档while(1)(准备一个产品;wait(sa);wait(mutex);将产品入库;signal(mutex);signal(sb);)processputa()while(1)准备一个产品;wait(sb);wait(mutex);将产品入库;signal(mutex);signal(sa);)main()cobeginputa();Putb();收集于网络,如有侵权请联系管理员删除精品文档14在一个系统中,不采用死锁避免和预防措施,但当死锁发生后需要能够检测出来,请设计一个可行的死锁检测方案。参考课本课本方案15、一个理发店由一个有N张沙发的等候室和一个放有一张理发椅的理发室组成。没有顾客要理发时,理发师便去睡觉。当一个顾客走进理发店时,如果等候室的所有沙发都已经占用,便离开理发店;否则,如果理发师正在为其他顾
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某矿业企业安全管理制度
- 译林版(三起)四年级上册英语 分课时语法+句型专项练习(含解析答案)
- 某玻璃厂包装规范细则
- 数字化职业规划解决方案
- 人工智能培训证书指南
- 2026年城市道路照明改造施工合同
- 2026城市销售面试题目及答案
- 2026道路执法面试题目及答案
- 2026东软面试题目及答案大全
- 2026高速路政面试题及答案
- 口腔护理入编试题及答案
- 2026《超龄劳动者基本权益保障暂行规定》解读
- 桥梁钢筋劳务分包合同
- 湖南农发环保科技有限责任公司招聘笔试题库2026
- 2026年交通辅警测试题及答案
- 2026天津华北地质勘查局及所属事业单位第二批招聘7人笔试备考试题及答案详解
- 全国矿产资源潜力评价总体实施方案
- 青岛大学2012年829物理化学考研真题
- 消防联动报警调试报告
- (完整版)牧场物语精灵驿站详细攻略
- 国家电网公司招聘高校毕业生应聘登记表
评论
0/150
提交评论