当前位置:文档之家› 操作系统第五章作业答案

操作系统第五章作业答案

第5章习题答案3、可变分区管理方式下,采用移动技术有什么优点?移动一道作业时操作系统要做哪些工作?答:消除外部碎片.经过一段时间的分配回收后,会产生很多碎片,这些碎片都很小,不足以满足程序分配重内存的要求,但总和可以满足程序的分配要求.通过移动技术,在适当的时候,在内存中移动程序,把所有空闲碎片合并成一个连续的大空闲空间放在内存一端,就可以满足分配的要求移动一道作业时,操作系统需要修改被移动进程的地址信息,还要复制进程空间;而且在移动时必须停止所有其他程序的运行。

4、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32K ,10K ,5K ,228K ,100K 。

现有五个作业J1,J2,J3,J4和J5。

它们各需主存1K ,10K ,108K ,28K 和115K 。

若采用最先适应分配算法能把这五个作业按J1~J5的次序全部装入主存吗?你认为按怎样的次序装入这五个作业可使主存空间利用率最高。

答:(1)不行。

(2)以J1,J2,J3,J5,J4的次序装入这五个作业可使主存空间利用率最高。

以上述顺序模拟装入过程列表如下:6、段式存储管理系统中是如何实现存储保护的? 答:因为段是按逻辑意义来划分的,可以按段名访问所以段式存储管理可以方便地实现内存信息的共享并进行有效的内存保护。

段式管理的保护主要有两种。

一种是地址越界保护法,另一种是存取方式控制保护法。

具体措施有:(1)利用段表及段长来实现段的保护,防止程序执行时地址越界。

(2)存取权限保护法:在段表中设有“存取权”一项,可对程序的保护权限进行各种必要的限制。

(3)存储保护键保护:由于I/O通道对存储器访问是不经过段表的,因此有的机器还采用存储保护键保护。

地址越界保护是利用表中的段长项与虚拟地址中的段内相对地址比较进行的。

若段内相对地址大于段长,系统就会产生保护中断。

不过,在允许段动态增长的系统中,段内相对地址大于段长是允许的。

为此,段表中设置相应的增补位以指示是否允许该段动态增长。

建立存取控制指在段表的每个表目中,除指明段长以外,还增加“存取方式”一项。

这种段的保护,对非共享段来说,主要是用来指示程序设计的错误。

而对于共享段来说,则显得特别重要。

采取存取保护键。

由于I/O通道对存储器的访问是不经过段表的,因此有的机器除了段保护之外,还采用存储保护键。

因为这种保护对I/O通道十分有效。

总之,在一个段式存储管理系统中,通过建立段表,施加存取控制,以及设置存储保护键等,可以提供一个多级的存储保护体系。

10、有一个操作系统采用段式存储管理方案,用户区内存为512K,分配时截取空闲块的前半部分(小地址部分)。

初始时内存全部空闲。

系统执行如下申请、释放操作序列。

申请300K,申请100K,释放300K,申请150K,申请50K,申请90K(1)若采用首先适应算法,空闲块表中有哪些空块(指出大小,地址);(2)若采用最佳适应算法,空闲块表中有哪些空块(指出大小,地址);(3)若随后又申请80K,针对上述两种情况说明结果?其结果说明了什么问题?答:操作系统采用段式存储。

执行申请释放序列后,结果如下:a、如果采用首先适应算法,空闲块表中的空块有地址大小290k 10k400k 112kb、如果采用最佳适应算法,空闲块表中的空块有地址大小240k 60k450k 62kc、若继续申请80k如果之前采用首先适应算法,则直接分配起始地址为400k的连续80k空间如果之前采用最佳适应算法,则需要首先采用拼接技术对空闲空间进行合并,然后在合并后的空闲空间中分配连续80k空间。

在上述情况中采用最佳适应算法却导致后来的内存直接分配失败而不得不进行内存空间整理。

这说明最佳适应算法并不是所有时候都能够保持大块连续的空闲空间。

11、假如一个程序的段表如下:段号状态位段起始地址段长存取控制0 0 100 40 W1 1 2010 20 W2 0 1590 100 E3 0 75 50 R其中,状态位为“1”表示该段不在内存。

存取控制:W表示可写,R表示可读,E表示可执行。

对于以下的逻辑地址可能会发生什么情况:(1)STORE 1,[0,50](2)STORE 1,[1,10](3)LOAD 1,[2,77](4)LOAD 1,[3,20]答:(1)地址越界保护;(2)发生链接中断,由操作系统的链接中断处理程序处理,根据间接字中的地址找到链接地址的符号名,并将目标段调入内存分配段号,再根据标号找到段内地址,修改间接字,置状态位为0,完成链接后,重新执行该指令,将R1中的寄存器写入目标地址;(3)内存保护错误。

可执行数据不能被load(4)可以将第3段,偏移为20处所存的地址指向的内存单元的数据读入R1中12、设在内存中按地址递增次序有三个不连续的空闲区F1、F2、F3,它们的容量分别是60K、130K、20K。

请给出一个后备作业序列,使得实施存储分配时(1)采用最佳适应算法将取得好的效果,而采用最差适应算法和首先适应算法效果都不好;(2)采用最佳适应算法效果不好,而采用最差适应算法和首先适应算法都可取得好的效果;(3)采用最差适应算法将取得好的效果,而采用首先适应算法和最佳适应算法效果都不好;(4)采用这三种算法都可取得好效果;(5)采用这三种算法效果都不好。

答:(1)符合要求的后备作业序列为J1:1K, J2:60K, J3:130K①模拟采用最佳适应算法的装入过程如下:只有采用最佳适应算法才能将3个作业全部装入,因为其他两种算法都为了装入较小的作业而划分了较大的空闲区,使得剩余的空闲区相对于未装入的较大的作业小了(2)满足条件的后备队列为:J1:1K, J2:129K, J3:59K, J4:20K。

③模拟采用首先适应算法的装入过程如下:采用首先适应算法和最坏适应算法都可以将4个作业全部装入内存,而最佳适应算法只能将3个作业装入内存。

因为最佳适应算法在装入过程中形成了小的不能有效利用的碎片。

(3)满足条件的后备队列为:J1:30K, J2:80K, J3:60K。

②模拟采用最佳适应算法的装入过程如下:③模拟采用首先适应算法的装入过程如下:只有最差适应算法能把全部的作业装入内存。

因为其余两种算法划分了相对较小的空闲区形成了碎片。

(4)将(2)中的后备队列改为:J1:1K, J2:129K, J3:59K, J4:18K。

则最佳适应算法也可以在最后一步装入J4。

则三种算法都可以装入全部的作业。

具体的过程不再画出,请参照(2)题的表格。

这是因为作业的大小刚好比较合意。

(5)将(3)中的后备队列改为J1:30K, J2:80K, J3:61K。

则最坏适应算法也无法在最后将J3装入内存。

则三种算法都不能装入全部的作业。

具体的过程不再画出,请参照(3)题的表格。

这是因为作业的大小刚好比较不合意。

21、假定磁盘空闲空间表表明有下列存储块空闲:13、11、18、9和20块。

有一个要求为某文件分配10个连续的磁盘块。

(1)如果采用首次适应分配策略,那么将分配哪个块?(2)如果采用最佳适应分配策略,那么将分配哪个块?(3)如果采用最差适应分配策略,那么将分配哪个块?答:(1)13(2)11(3)2023、为什么要引入虚拟存储器?虚拟存储器是什么?它需要什么硬件支持?根据什么说一个计算机系统有虚拟存储器?怎样确定虚拟存储器的容量?答:由于软件容量的迅速扩张,有可能一个进程的程序比内存可用空间还要大,这时候该程序就无法运行;另一方面,由于程序的局部性,在进程运行的任一阶段只须使用程序的一部分,如果预先分配所有的内存空间,内存就会被浪费。

为了能更有效的支持多道程序设计技术的实现和大型程序运行的需要,所以使用了虚拟存储器的概念,利用大容量的外存来扩充内存,产生一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间,从而增强系统的处理能力。

虚拟存储器简称虚存,是把内存与外存有机的结合起来使用,从而得到一个容量很大的、速度足够快的“内存”。

虚拟存储器需要的硬件支持是:系统有一个容量足够大的外存;系统有一个具有相当容量的内存;硬件提供实现虚、实地址映射的机制。

如果一个计算机系统硬件上拥有上述的支持条件、操作系统又支持虚拟存储管理,那么这个计算机系统是有虚拟存储器的。

一个虚拟存储器的最大容量(寻址空间)可以用寄存器的位数来确定,因此比如X86体系的计算机寄存器为32位,因此虚拟存储器的最大容量应该为2的32次方字节,即4GB。

26、有一个虚拟存储系统。

分配给某进程3页内存,开始时内存为空,页面访问序列如下:6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5(1)若采用先进先出页面置换算法(FIFO),缺页次数为多少?(2)若采用最近最少使用页面置换算法(LRU),缺页次数为多少?(3)若采用最佳页面置换算法算法呢?答:(1):17次(2):17次(3)11次27、有一台计算机含有4个页面,每一页的装入时间,最后一次修改时间以及R与M位的值如下(时间为时钟周期):页装入时间最后访问时间R M0 126 279 0 01 230 260 1 02 120 272 1 13 160 280 1 1(1)NRU应淘汰哪一页(2)FIFO应淘汰哪一页(3)LRU应淘汰哪一页(4)第二次机会应淘汰哪一页答:NRU应淘汰第0页FIFO应淘汰第2页LRU应淘汰第1页第二次机会应淘汰第0页29、何谓系统的“抖动”现象?当系统发生“抖动”时,你认为应该采取什么措施来加以克服?答:在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。

这种现象为颠簸(或抖动)。

颠簸或抖动产生的最主要的原因是页面置换算法不合理,分配给进程的物理页面数太少。

可以考虑改进页面的置换算法。

另一方面,程序员编写程序的同时,如果能根据机器寻址的特点,来调整访存指令的执行顺序(例如对大矩阵的操作是先行后列还是先列后行,等)也可以避免抖动的发生。

30、在虚拟页式存储管理中,进程在内外存中的存放有以下两种方法:(1)一部分页面放在内存,其余页面放在外存;(2)一部分页面放在内存,全部页面放在外存;试从系统开销的角度分析两种方法各自的优缺点,并说明页表的差别。

答:第一种方法,一部分页面放内存,其余页面放外存,这样在内存中的页面在外存中不存在副本,第二种方法当前需要的页面放在内存中,全部的页面在外存中都有副本,因此第一种方法比第二种方法占据的存储空间小。

但是在将页面移出内存的过程中,对于第一种方法,不管要移出的页面是否被修改过,都必须将其写回磁盘;对第二种方法,如果要移出的页面没有被修改过,那么它在磁盘上的副本已经是最新的了,则不需要写回,调入的页直接覆盖被淘汰的页就行了。

相关主题