章题及答案
第四习
第四章 存储器管理
1.为什么要配置层次式存储器?
答:设置多个存储器可以使存储器两端的硬件能并行工作;采用多级存储系统,特别是Cache 技术,是减轻存储器带宽对系统性能影响的最佳结构方案;在微处理机内部设置各种缓冲存储器,减轻对存储器存取的压力。增加CPU中寄存器数量大大缓解对存储器压力。
2.可采用哪几种方式将程序装入内存?它们分别适用于何种场合? 答:(1)绝对装入方式,只适用于单道程序环境。 (2)可重定位装入方式,适用于多道程序环境。
(3)动态运行时装入方式,用于多道程序环境;不允许程序运行时在内存中移位置。 3.何谓静态链接?何谓装入时动态链接和运行时的动态链接?P120
答:静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装入边链接的链接方式。运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。
4.在进行程序链接时,应完成哪些工作?
答:由链接程序Linker将编译后形成的一组目标模块,以及它们需要的库函数链接在一起,形成一个完整的装入模块Load Module。主要工作是修改程序内的相对地址和修改目标程序中的外部调用标号。
5.在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?
答:在每个分区的起始部分,设置一些控制分区分配的信息,以及用于链接各分区所用的前向指针;在分区尾部设置一个后向指针,通过前后向链接指针,将所有空闲分区链成一个双向链。当分区分配出去后,把状态位由“0”改为“1”。
6.为什么要引入动态重定位?如何实现?
答:在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位;
具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现动态重定位。
7.在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况? 答:在采用首次适应算法回收内存时可能出现4种情况:
(1)回收区前邻空闲区。将回收区与前邻空闲区合并,将前邻空闲区大小修改为两者之和。
(2)回收区后邻空闲区。将两区合并,改后邻空闲区始址为回收区始址,大小为两者之和。
(3)回收区前后均邻空闲区。将三个分区合并,修改前邻空闲区大小为三者之和。 (4)回收区前后均不邻空闲区。为回收区设置空闲区表项,填入回收区始址和大小并插入空闲区队列。
8.令的通用表达式。
答:当
9.分区存储管理中常用那些分配策略?比较它们的优缺点。
答:分区存储管理中的常用分配策略:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。首次适应算法优缺点:保留了高址部分的大空闲区,有利于后来的大型作业分配;低址部分不断被划分,留下许多难以利用的小空闲区,每次查找都从低址开始增
时,
;当
时,
表示大小为
、地址为x 的块的伙伴系统地址,试写出
加了系统开销。循环首次适应算法优缺点:内存空闲分区分布均匀,减少了查找系统开销;缺乏大空闲分区,导致不能装入大型作业。最佳适应算法优缺点:每次分配给文件的都是最适合该文件大小的分区,内存中留下许多难以利用的小空闲区。
最坏适应算法优缺点:剩下空闲区不太小,产生碎片几率小,对中小型文件分配分区操作有利;存储器中缺乏大空闲区,对大型文件分区分配不利。
10.在系统中引入对换后可带来哪些好处?
答:交换技术将暂不需要的作业移到外存,让出内存空间以调入其它作业,交换到外存的作业也可以被再次调入。目的是解决内存紧张问题,带来的好处是进一步提高了内存利用率和系统吞吐量。
11.为实现对换,系统应具备哪几方面的功能?
答:系统应具备三方面功能:对换空间管理,进程换出,进程换入。 12.在以进程为单位进行对换时,每次是否都将整个进程换出?为什么? 答:在以进程为单位进行对换时,并非每次都将整个进程换出。这是因为:
(1)从结构上讲,进程由程序段、数据段和进程控制块组成的,其中进程控制块总有部分或全部常驻内存,不被换出。
(2)程序段和数据段可能正被若干进程共享,此时它们也不能换出。 13.为实现分页存储管理,需要哪些硬件的支持?
答:动态重定位技术、虚拟存储技术、多道程序设计技术。
14.较详细的说明引入分段存储管理是为了满足用户哪几方面的需要。
答:1) 方便编程。用户通常把自己的作业按照逻辑关系划分为若干段,每段都从0 编址,并有自己名字和长度。因此,希望要访问的逻辑地址是由段名和段内偏移量决定。
2) 信息共享。在实现对程序和数据的共享时,是以信息逻辑单位为基础。分页系统中的页是存放信息的物理单位,无完整意义,不便于共享;段是信息的逻辑单位。为了实现段的共享,希望存储管理能与用户程序分段的组织方式相适应。
3) 信息保护。对信息的逻辑单位进行保护,分段能更有效方便地实现信息保护功能。 4) 动态增长。在实际应用中,有些段特别是数据段,在使用过程中会不断增长,事先又无法确切知道增长多少。分段存储管理方式能较好解决这个问题。
5) 动态链接。运行时先将主程序对应的目标程序装入内存并启动运行,运行过程中又需要调用某段时,才将该段调入内存链接。所以动态链接也要求以段作为管理单位。
15.在具有快表的段页式存储管理方式中,如何实现地址变换?
答:在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。可直接从快表读出该页对应物理块号,送到物理地址寄存器中。如快表中没有对应页表项,则再访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表,将此页表项存入快表。但若寄存器已满,则OS必须找到合适的页表项换出。
16.为什么说为什么说分段系统比分页系统更易于实现信息的共享和保护?
答:分页系统的每个页面是分散存储的,为了实现信息共享和保护,页面之间需要一一对应,为此需要建立大量的页表项;而分段系统的每个段都从0 编址,并采用一段连续的地址空间,在实现共享和保护时,只需为要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应就能够实现。
17.分段和分页存储管理有何区别?
答:1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外部零头,提高内存利用率。段则是信息的逻辑单位,它含有一组相对完整的信息。