计算机操作系统课后题答案3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章存储管理
3.1 存储管理的功能及目的是什么?
答:在多道程序环境中,存储管理的主要目的有两个:一是提高资源的利用率,尽量满足多个用户对内存的要求;二是能方便用户使用内存,使用户不必考虑作业具体放在内存哪块区域,是如何实现正确运行等复杂问题。为此,存储管理一般应能实现如下所述的基本功能:
①按作业要求进行内存分配并进行适时回收。
②实现程序中的逻辑地址到物理地址的转换。
③对操作系统及用户信息提供存储保护。
④实现内存的逻辑扩充,提供给用户更大的存储空间。
3.2 什么是物理地址?什么是逻辑地址?
答:内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可惟一标识一个存储单元,称为内存地址(或物理地址)。源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据——单元号取代。这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。
3.3 什么是地址重定位?为什么要进行地址重定位?
答:为了实现静态或动态存储分配策略,必须考虑地址的重定位问题。我们把用户程序装入内存时,对有关指令的逻辑地址部分的修改称为地址重定位,即地址重定位是建立用户程序的逻辑地址与物理地址之间的对应关系。按实现地址重定位的时机不同,地址重定位又分为两种:静态地址重定位和动态地址重定位。
3.4 什么是动态地址重定位?试举例说明实现动态地址重定位的过程。
答:动态地址重定位是在程序执行期间进行的。一般说来,这种转换由专门的硬件机构来完成,通常采用一个重定位寄存器,在每次进行存储访问时,对取出的逻辑地址加上重定位寄存器的内容,形成正确的物理地址,重定位寄存器的内容是程序装入内存的起始地址。举例说明略。
3.5 什么是存储保护?举例说明常用的硬件存储保护措施是如何实现的?
答:在多道程序设计环境中,要保证各道程序只能在自己的存储区中活动,不能对别的程序产生干扰和破坏,尤其是不能破坏操作系统的内存区。因此,必须对存储信息采取各种保护措施,这也是存储管理的一个重要功能。存储信息的保护体现在不能越界访问,破坏操作系统或其他用户的程序。实现这种存储保护,可以采用硬件的方法,也可采用软、硬件结合的方法。举例说明略。
3.6 实存管理和虚拟存储器管理方案的区别在哪里?常用的实存管理方案有哪些?
答:虚拟存储技术的基本思想是把有限的内存空间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的逻辑延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行所必需的一部分信息存入内存,其它则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。当然,内存中暂时不用的信息也可调至外存,以腾出内存空间供其它作业使用。这些操作都由存储管理系统自动实现,不需用户干预。对用户而言,只感觉到系统提供了一个大容量的内存,但这样大容量的内存实际上并不存在,是一种虚拟的存储器,因此把具有这种功能的存储管理技术称为虚拟存储管理。
实现虚拟存储管理的方法有请求页式存储管理和请求段式存储管理。常用的实存管理方案有连续存储管理、分页式存储管理、分段式存储管理、段页式存储管理。
3.7 可变式分区存储管理常用的分配算法有哪几种?比较它们的优缺点。
答:可变式分区存储管理,可采用最佳适应算法、首次适应算法和最差适应算法。最佳适应算法,理论上看起来比较完美,但每次分配时总产生极小的空闲分区,经过一段时间运行,内存中可能有多个这样的小分区,因太小而无法分配给其它作业使用。这些无法使用的小分区,我们称之为外部碎片,外部碎片的增多会降低空闲区链表的查找速度。为此,人们又在此算法中设定一个参数G,当从一个分区中,分配X k给某作业后,剩余部分小于G时,就把整个分区分配给该作业,不再划分成两部分。采用最佳适应法的另一个问题是,回收一个分区时,为了把它插入到空闲区链表的合适位置,也是比较费时的。最差适应算法的优点是查询简单,而且每次分配的总是最大的空闲区,除用户使用的外,剩余的空闲区还可能相当大,还能装入较大的程序,但缺点也在于此,每次总从最大的空闲分区分配,当有大的作业到来时,其存储分配申请往往得不到满足。首次适应算法的优点是分配和回收算法都比较简单,查找速度快,因这个算法总是从低地址开始查找,因此留在高地址部分的大空闲区被划分机会少,在大作业到来时容易满足。这三种算法,各有利弊。到底哪一种好,不能一概而论,应针对具体的作业序列来分析。如果对于某一作业序列来说,某种算法能将该作业序列中的所有作业安置完毕,那么我们就认为该算法对这一作业序列而言是合适的。
3.8 假设某系统内存共256kb,其中操作系统占用低址20 kb ,有这样一个作业序列:作业1(80kb),作业2(16kb),作业3(140kb),连续进入系统,经过一段时间运行,作业1、3先后完成。此时,作业4(120kb),作业5(80kb)要求进入系统,分别采用首次适应算法和最佳适应算法,处理上述作业序列,完成下列要求:
⑴画出作业1、2、3进入内存后,内存的分配情况。
⑵画出作业1、3完成后,内存分配情况。
⑶画出两种算法中空白区的链接情况。
⑷哪种算法该对作业序列而言是合适的?
答:
(1)
(2)
(3)画出两种算法的空闲区链接情况
首次适应算法(FF):
最佳适应算法(BF):
(4) 首次适应算法(FF)更好
3.9 什么是内部碎片?什么是外部碎片?如何克服外部碎片问题?
假设某作业为3.5k大小,在逻辑地址1000号单元处有指令Mov R1,[3000],3000号单元有数据5678。采用分页式存储管理,页面大小为1k字节,该作业进入内存后,其页面0,1,2,3被分配到内存的2、4、6、7块中,完成下列要求:
⑴画出该作业的页表
⑵画出当执行指令Mov R1,[3000]时,如何进行地址重定位,将逻辑地址3000
号单元处数据5678送入R1 寄存器。
答:
(1)画出该作业的页表
(2)画出当执行指令MOV R1,[3000] 时,如何进行地址重地位,将逻辑地址3000号单元处数据5678送入R1寄存器。