操作系统作业答案.doc
《操作系统作业答案.doc》由会员分享,可在线阅读,更多相关《操作系统作业答案.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流操作系统作业答案.精品文档.第二章 进程管理P82-8322题:(b)Var a,b,c,d,e,f,g,h,i,j:semaphore:=0,0,0,0,0,0,0,0;Begin ParbeginBegin S1:signal(a);signal(b);end;Begin wait(a);S2;signal(c);signal(d);end;Begin wait(b);S3;signal(e);signal(f);end;Begin wait(c);S4;signal(g);end;Begin wait(d);S5;signal(h);e
2、nd;Begin wait(e);S6;signal(i);end;Begin wait(f);S7;signal(j);end;Begin wait(g);wait(h);wait(i);wait(j);S8;end; Parend;End;23题:如果缺少了signal(full)或signal(empty)操作,生产者可以不断地往缓冲池送消息,如果缓冲池满,就会覆盖原有数据,造成数据混乱.而消费者因wait(full)操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待。24题:wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完
3、wait(mutex),则mutex赋值为0,倘若full也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0而进行等待,使full始终为0,这样就形成了死锁。而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的。25题:开锁原语:unlock(W):W=0;关锁原语:lock(W);if(W=1) do no_op;W=1;利用开关锁原语实现互斥:var W: semaphore:=0;beginparbeginprocess :beginrepeatlock(W);critical sectionunlock(W);r
4、emainder sectionuntil false;endparend26题:producer:beginrepeatproducer an item in nextp;wait(mutex);wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */buffer(in):=nextp;/* 缓冲池数组游标应前移: in:=(in+1) mod n; */signal(mutex);/* signal(full); */until false;endconsumer:beginrepeatwait(mutex);wait(empty); /*
5、应为wait(full),而且还应该在wait(mutex)的前面 */nextc:=buffer(out);out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */signal(mutex);/* signal(empty); */consumer item in nextc;until false;end27题:设初始值为1的信号量cI表示I号筷子被拿(I=1,2,3,4,.,2n),其中n为自然数.send(I):Beginif I mod 2=1 thenP(cI);P(cI+1 mod n);Eat;V(cI+1 mod n);V(cI);els
6、eP(cI+1 mod n);P(cI);Eat;V(cI);V(cI+1 mod n);End28题:int mutex=1;int empty=n;int full=0;int in=0;int out=0;main()cobeginsend();coendsend()while(1)collect data in nextp;wait(empty);wait(mutex);buffer(in)=nextp;in=(in+1) mod n;signal(mutex);signal(full);/sendobtain()while(1)wait(full);wait(mutex);nextc
7、:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);culculate the data in nextc;/while/obtain35题:消息队列通信机制应具有如下几方面的功能:构成消息、发送消息、接收消息、互斥与同步38题:调度性:在传统的操作系统中,摇篮有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位。并发性:在引入线程OS中,不仅进程间可以并发执行,而且在一个进程的多个线程间也可以并发执行,因而它比传统的OS具有更好的并发性。
8、拥有资源:在这两种OS中,拥有资源的基本单位是进程。线程除了一点在运行中必不可少的资源外,本身基本拥有资源,但它可访问其隶属进程的资源。系统开销:由于创建或撤消进程时,系统都要为之分配和回收资源,如内存空间和I/O设备等fj程切换时所要保存和设置的现场信息也要明显地多于线程,因此OS在创建、撤消和切换进程时所付出的开销明显地大于线程。另外,由于隶属于同一个进程的多个线程共享一地址空间和该进程的所有已打开文件,从而使它们之间的同步和通信的实现也比进程更方便。第三章 处理机调度与死锁P11518题:a. 死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.
9、 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;c. 必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件.20题:a. 摒弃请求和保持条件,就是如果系统有足够的资源,便一次性地把进程所需的所有资源分配给它;b. 摒弃不剥夺条件,就是已经保持了资源的进程,当它提出新的资源请求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请;c. 摒弃环路等待条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出.21题:可以.首先,Request0(0,1,0)=Need0(7,4,3), Request0(0,1,0)=Avail
10、able(2,3,0);分配后可修改得资源数据表如下:进程WorkNeedAllocationWork+AllocationFinishA B CA B CA B CA B CP1P4P3P2P02 2 03 2 25 3 47 4 510 4 70 1 04 3 10 1 16 0 07 4 33 1 20 0 22 1 13 0 20 1 05 3 25 3 47 4 510 4 710 5 7TureTureTureTureTure因此,可以找到一个安全序列P1,P4,P3,P2,P0,系统是安全的,可以立即将资源分配给P0.22题:(1)利用安全算法对T0时刻资源分配进行分析:进程Wo
11、rkNeedAllocationWork+AllocationFinishA B C DA B C DA B C DA B C DP0P3P4P1P21 6 2 21 6 5 41 9 8 61 9 9 102 9 9 100 0 1 20 6 5 20 6 5 61 7 5 02 5 3 60 0 3 20 3 3 20 0 1 41 0 0 01 3 5 41 6 5 41 9 8 61 9 9 102 9 9 103 12 14 14TureTureTureTureTure在T0时刻存在着一个安全序列P0,P3,P4,P1,P2,故系统是安全的。(2)Request2(1,2,2,2)N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 作业 答案
限制150内