操作系统但作业答案.doc

上传人:本田雅阁 文档编号:2106455 上传时间:2019-02-14 格式:DOC 页数:9 大小:141.02KB
返回 下载 相关 举报
操作系统但作业答案.doc_第1页
第1页 / 共9页
操作系统但作业答案.doc_第2页
第2页 / 共9页
操作系统但作业答案.doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统但作业答案.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);end;Begin wait(e);S6;signal(i);end;Begin

2、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在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full也为0,则该生产者进程

3、就会转入进程链表进行等待,而生产者进程会因全局变量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);remainder sectionuntil false;endparend26题

4、:producer:beginrepeat. . .producer 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); /* 应为wait(full),而且还应该在wait(mutex)的前面 *

5、/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);elseP(cI+1 mod n);P(cI);Eat;V(cI);V(cI

6、+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:=buffer(out);out:=(out+1) m

7、od n;signal(mutex);signal(empty);culculate the data in nextc;/while/obtain35题:消息队列通信机制应具有如下几方面的功能:构成消息、发送消息、接收消息、互斥与同步38题:调度性:在传统的操作系统中,摇篮有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位。并发性:在引入线程OS中,不仅进程间可以并发执行,而且在一个进程的多个线程间也可以并发执行,因而它比传统的OS具有更好的并发性。拥有资源:在这两种OS中,拥有资源的基本单位是进程。线程

8、除了一点在运行中必不可少的资源外,本身基本拥有资源,但它可访问其隶属进程的资源。系统开销:由于创建或撤消进程时,系统都要为之分配和回收资源,如内存空间和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)=Available(2,3,0);分配后可修改得资源数据表如下:进

10、程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时刻资源分配进行分析:进程WorkNeedAllocationWork+Allocat

11、ionFinishA 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)Need2(2,3,5,6)Request2(1,2,2,

12、2)=TL,表示段号太大,访问越界,产生越界中断信号,于是利用段表始址和段号来求出该段对应的段表项在段表中的位置,从中求出该段的页表始址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再用块号b和页内地址构成物理地址.21题:实现虚拟存储器的关键技术有以下两个:(1)请求调页/段技术。这是指及时将进程所要访问的、不存在内存中的页/段调入内存。(2)置换页/段技术。当内存中已无足够的空间来装入即将调入的页/段时,为了保证进程能继续运行,系统必须换出内存中的部分页/段,以腾出足够的空间,将所需的页/段调入内存。21题:物理块M为3时:4 3 2 1 4 3 5

13、 4 3 2 1 5 521523543143142132434324缺页次数:6 缺页率p=6/12=0.5物理块数为4时: 4 3 2 1 4 3 5 4 3 2 1 51532143254325431542153214321432434缺页次数:6 缺页率p=6/12=0.5第五章 设备管理P20216题:将一个设备分配给某一个进程后,便由该进程独占,直至该进程完成或释放该设备,然后,系统才能再将该设备分配给其他进程使用.19题:(1) 由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中(2) 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入

14、其中,然后将该表挂到打印机的请求打印队列是.24题:(1) 先来先服务算法FCFS:按照输入/输出请求到达的顺序,逐一完成访问请求(2) 最短寻道时间优先SSTF:先完成距当前存取臂距离最近的柱面上的输入/输出请求(3) 扫描算法SCAN:采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的柱面就完成访问请求,直至到达磁盘的另一端,再倒过来,继续完成这一方向上的访问请求(4) 循环扫描算法CSCAN:规定磁头单向移动,如只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,亦即将最小磁道号紧接着最大磁号构成循环,进行循环扫描(5) N-STEP算法:此算法将

15、磁盘请求队列分成若干个长度为N的子队列,磁盘调度按FCFS算法依次处理这些子队列,而每处理一个队列时又是按SCAN算法。对一个队列处理完后,再处理其他队列。(6) FCSCAN算法:该算法实质上是N-STEP算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。课件作业:作业一:假定磁盘有200 个柱面,编号0199,当前存取臂的位置在143 号柱面上,并刚刚完成了125 号柱面的服务请求,如果请求队列的先后顺序是:86,147,91,177,94,150,102,175,130;试问:为完成上述请求,下列算法存取臂移动的总量是多少?并算出存取臂移动的顺序。(1)先来先服务算法FCFS;(2

16、)最短查找时间优先算法SSTF;(3)扫描算法SCAN。(4)CSCAN算法。先来先服务:磁头移动顺序为:143861479117794150102175130,磁头移动共565柱面。最短寻道时间优先(SSTF):磁头移动顺序为:143147150130102949186175177, 磁头移动共162柱面。SCAN算法:磁头移动顺序为:143147150175177130102949186, 磁头移动共125柱面。CSCAN算法:磁头移动顺序为:143147150175177869194102130, 磁头移动共169柱面。作业二:假设磁盘有200 个磁道,磁盘请求队列中是一些随机请求,它们

17、按照到达的次序分别处于98、183、37、122、14、124、65、67号磁道上,当前磁头在53号磁道上,并向磁道号减小的方向上移动。请给出按先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)及循环扫描算法(CSCAN)算法进行磁盘调度时满足请求的次序,并算出它们的平价寻道长度 ?FCFSSSTFSCANCSCAN被访问的下一个磁道号移动的磁道数被访问的下一个磁道号移动的磁道数被访问的下一个磁道号移动的磁道数被访问的下一个磁道号移动的磁道数9845651237163716183856721423142337146373065511831691228514236

18、7212459141089884983112221241101222412224982465591242124267316721835918359652平均寻道长度80平均寻道长度29.5平均寻道长度26平均寻道长度40.75第六章 文件管理P24614题:(1)字节偏移量为9999 逻辑块号为:9999/1024=9 块内偏移量为9999-9*1024=783 逻辑块号10,9即位索引节点地址下标,设为inode9该项内容即是该文件的字节物理盘块号,783即位该文件在该物理块号内的偏移地址 物理地址为inode9+783 (2)字节偏移量为18000,逻辑块号为:18000/1024=17,

19、块内偏移量:18000-17*1024=5921017266 所以该块为一次间接块,从一次间接项中得到一次间接的盘块号,设为M 在M中的第17-10=7项所示的地址即位该文件的物理块号为M7,在该物理块号内的偏移量为592,所以该文件的物理地址为M7+592 (3)字节偏移量为420000 ,逻辑块号为:420000/1024=410 ,块内偏移量:420000-410*1024=160 26641065802 ,所以采用二次间接寻址 ,由系统知二次间接的盘快号为M,由于一次间接快可容纳256个块号,且410-266=144,所以该文件的物理块号在M0所指示的间接快N的第144项中的数据 该地

20、址的第160字节即位文件的物理地址 24题:(1)设位示图需要x个字 则32x=500 x=15.63 取x=16 所以位示图需要16个字 (2)第i字第j位对应的块号为: 块号=32i+j,i=0,1,2.15:j=0,1,2,.31:M=0,1,2.499 (3)申请流程图描述为: 设申请块号为M,则对应的位示图的位置为 i=M/32 ,j=M%32 所以块号M对应的是第i个字的第j位,若该位为1,表示已经分配,申请失败 若该位为0,表示没有分配,分配块号成功,分配之后将该位置位1 归还流程图表示为: 根据块号M计算出对应的i,j i=M/32 ,j=M%32 将第i个字的第j位置为0,归

21、还该块的物理空间 课件作业:作业一:1、假设某磁盘容量为2G,每个盘块大小为1K,请问该磁盘的文件分配表需要占用多大的存储空间?(设FAT的每个表项的长度取半个字节的整数倍)由题目所给条件可知,硬盘大小为2GB,磁盘块的大小为1KB,所以该硬盘共有盘块:2GB/1KB=2MB,因为存储2MB个盘块号要用21位二进制,而每个表项的长度取半个字节(即4位)的整数倍,所以FAT表项应占24位,即文件分配表的每个表目大小为3B。故要占用的存储空间总数为:3*2MB=6MB作业二:对于采用混合索引分配方式的UNIX系统中。如果每个盘块的大小为512字节,若盘块号需要3个字节来描述,而每个盘块最多存放17

22、0个盘块地址:(1) 该文件系统允许的最大长度是多少?(2) 将文件的字节偏移量15000转换为物理块号和块内偏移量。(3) 假设某文件的FCB已在内存中,但其他信息均在外存,为了访问该文件中某个位置的内容,最多需要几次访问磁盘?(1)该文件系统中一个文件的最大长度可达:10+170+170*170+170*170*170块=4942080块4942080*512B=2471040KB(2)15000/512得到的商为29,余数为152,即字节偏移量15000对应的逻辑块号为29,块内偏移最为152.由于102910+170,而29-10=19,故可从FCB的第10个地址项,即一次间址项中得到一次间址块的地址,并从一次间址块的第19项中获得对应的物理块号,块内偏移量为152(3)由于文FCB已经在内存,为了访问文件中某个位置的内容,最少需要1次访问磁盘(即可通过直接读文件盘块),最多需要4次访问磁盘(第一次是读三次间址块,第二次是读二次间址块,第三次是读一次间址块,第四次是读文件盘块)第9页 共9页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1