计算机操作系统第四章存储器管理复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章存储器管理
第一部分教材习题(P159)
15、在具有快表的段页式存储管理方式中,如何实现地址变换?
答:在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段长TL。
进行地址变换时,首先利用段号S,将它与段长TL进行比较。若S 显然,这使访问内存的次数增加了近两倍。 为了提高执行速度,在地址变换机构中增设一个高速缓冲寄存器。每次访问它时,都须同时利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍须再三次访问内存。 19、虚拟存储器有哪些特征?其中最本质的特征是什么? 答:虚拟存储器有以下特征: 多次性:一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。多次性是虚拟存储器最重要的特征,任何其他的存储器管理方式都不具有这一特征。因此,认为虚拟存储器是具有多次性特征的存储器系统。 对换性:允许在作业的运行过程中进行换进、换出,也即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进);甚至还允许将暂不运行的进程调至外存,待它们重又具备运行条件时再调入内存。换进和换出能有效地提高内存利用率。可见,虚拟存储器具有对换性特征。 虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。这是虚拟存储器所表现出来的最重要特征,也是实现虚拟存储器的最重要的目标。 虚拟性是以多次性和对换性为基础的,多次性和对换性又必须建立在离散分配的基础上。所以最本质特征应该是离散性。 22、在请求分页系统中,页表应包括哪些数据项?每项的作用是什么? 答:在请求分页系统中的每一个页表项如下: ●状态位P:用于指示该页是否已调入内存,供程序访问时参考。 ●访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页已有 多长时间没有被访问,供选择换出页面时参考。 ●修改位M:表示该页在调入内存后是否被修改过,由于内存中的每一页都 在外存上保留一分副本,因此,若没有被修改,在置换该页时就不需再将该页写回到外存上,以减少系统的开销和启动磁盘的次数,若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。简言之,M位供置换页面时参考。 ●外存地址,用于指出该页在外存上的地址,通常是物理块号,供调入该 页时参考。 26、在一个请求分页系统中,采用 LRU 、FIFO页面置换算法时,如果一个作业的页面走向为1、3、2、1、1、3、5、1、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得的结果。 答: FIFO 1、为什么要配置层次式存储器? 2、可采用哪几种方式将程序装入内存?它们分别适用于何种场合? 答: 绝对装入方式,在编译时,如果知道程序将驻留在内存的什么位置,那么编译程序将产生绝对地址的目标代码。 可重定位装入方式,在多道程序环境下,由于编译程序不能预知所编译的目标模块在内存的什么位置,因此目标模块的起始地址通常从0开始,程序中所有其他地址都相对于起始地址计算。 动态运行时装入方式,程序在装入内存中后,允许程序在运行中在内存中移动位置。 3、何谓静态链接?何谓装入时动态链接和运行时的动态链接? 答: 静态链接:在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开。这种事先进行链接的方式叫静态链接方式。装入时动态链接:用户源程序编译后所得的一组目标模块,在装入内存时,采用边装入边链接的链接方式。 运行时的动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。 4、在进行程序链接时,应完成哪些工作? 答:在进行程序链接时,应完成: 对相对地址的修改 变换外部调用符号 5、在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链? 答:为了现实对空闲分区的分配和链接,在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,通过前、后向链接指针,可将所有的空闲分区链接成一个双向的链,如图所示(空闲链结构),为了检索方便,在分区尾部重复设置状态位的分区大小表目。当分区被分配出去以后,把状态位由“0”改为“1”,此时,前、后向指针已没有意义。 6、为什么要引入动态重定位?如何实现? 答:在连续分配方式中,必须把一个系统或用户程序装入一连续的内存空间。如果在系统中只有若干个小的分区,即使它们容量的总和大于要装入的程序,但由于这些分区不相邻接,也无法把该程序装入内存。若想把作业装入,可采用的一种方法是:将内存中的所有作业进行移动,使它们全都相邻接,这样,即可把原来分散的多个小分区拼接成一个大分区,这时就可把作业装入该区。这种通过移动内存中作业的位置,以把原来多全分散的小分区拼接成一个大分区的方法方法,称为“拼接”或“紧凑”见图所示。由于经过紧凑后的某些用户程序在内存中的位置发生了变化,此时若不对程序和数据的地址加以修改(变换),则程序必将无法执行。为此,在每次“紧凑”后,都必须对移动了的程序或数据进行重定位,这也就引入的动态重定位。