您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章存储管理习题答案
第5章存储管理(1)存储管理的任务和功能是什么?解:存储管理的主要任务是:1.支持多道程序的并发执行,使多道程序能共享存储资源,在互不干扰的环境中并发执行。2.方便用户,使用户减少甚至摆脱对存储器的管理,使用户从存储器的分配、保护和共享等繁琐事物中解脱出来。3.提高存储器的利用率和系统吞吐量。4.从逻辑上扩充内存空间,支持大程序能在小的内存空间运行或允许更多的进程并发执行。为了完成上述任务,现代操作系统的存储管理应具有以下功能:1.存储空间的分配和回收。2.地址转换,实现逻辑地址到物理地址的映射。3.主存空间的共享。4.主存空间的保护。5.主存储空间的扩充。6.对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。对换的目的主要是为了提高内存利用率,提高系统的吞吐量。(2)为什么要配置层次式存储器?解:为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存器,中间为主存,最底层是辅存。根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。一个文件的数据可能出现在存储系统的不同层次中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。大容量的辅存常常使用磁盘,磁盘数据经常备份在可移动磁盘或者光盘上,以防止硬盘故障时丢失数据。(3)什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?解:逻辑地址是应用程序中使用的访存地址,有时也称为相对地址,由逻辑地址构成的地址空间称为逻辑空间。每个应用程序的逻辑地址空间都是从零号地址码开始的。物理地址是内存储器的实际存储单元地址,有时也称为绝对地址,由物理地址构成的地址空间称为物理空间。物理地址空间也是从零号地址码开始的。在多道程序环境下,程序逻辑地址空间和内存物理地址空间是不一致的。用户程序的逻辑地址可以是一维线性或多维线性,而内存中的每一个存储单元都有相应的内存地址相对应,属于一维线性地址。在将用户程序部分或全部地装入内存空间时,要实现逻辑地址到物理地址的映射。(4)地址重定位,静态地址重定位和动态地址重定位有什么区别?解:地址重定位指从逻辑地址到物理地址的映射过程,也称为地址映射。静态地址重定位是指在用户程序执行之前完成地址映射工作,即把程序的逻辑地址都转换为实际的内存物理地址。静态地址重定位的地址变换只是在装入时一次完成,而在程序运行期间不再变化。动态地址重定位是指在程序执行过程中,CPU在访问内存之前,将要访问的程序或数据地址转换为内存地址。(5)什么是内部碎片和外部碎片?。解:在一个分区内部出现的碎片(即被浪费的空间)称作内部碎片,如固定分区法就会产生内部碎片;在所有分区之外新增的碎片称作外部碎片,如在动态分区法实施过程中出现的越来越多的小空闲块就是外部碎片,由于它们太小,无法装入一个进程,因而被浪费掉。(6)什么是分页和分段存储技术,两者有何区别?解:在分页系统中,系统会把用户程序的地址空间划分成若干个大小相等的区域,每个区域称作一个页面或页。每个页都有一个编号,叫做页号。页号一般从0开始,如0,1,2,…,等。类似地,也把内存空间划分成若干和页大小相同的物理块,这些物理块叫“帧”(frame)或内存块。同样,每个物理块也有一个编号,块号也是从0开始依次顺序排列。系统为进程分配内存时,以块为单位将进程中的若干页分别装入多个可以不相邻接的块中。在分段存储管理方式中,程序按内容或过程(函数)关系划分为若干个段,每个段定义一组逻辑信息,都有自己的名字。一个用户作业所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位进行内存分配,然后通过地址映射机构把段式虚拟地址转换为实际的内存物理地址。分段和分页有许多相似之处,比如,二者在内存中都采用离散分配方式,而不是整体连续分配方式,而且都要通过地址映射机构来实现地址转换。但二者在概念上却完全不同,具体表现在下述三个方面:1.页是信息的物理单位,而段是信息的逻辑单位。分页是为了实现离散分配,减少内存碎片,提高内存利用率。或者说,分页是由于系统管理的需要,而不是用户的需要。段则是信息的逻辑单位,它含有一组意义相对完整的信息。段的长度不是固定的,取决于用户所编写的程序。分段的目的是为了能更好地满足用户的需要,更方便用户编程,更好地实现信息共享和保护。2.页的大小由系统确定,由系统把逻辑地址划分为页号和页内地址两部分,整个系统只能有一种大小的页面;而段的长度却不固定,它取决于用户的程序。通常由编译程序在对源码进行编译时,根据程序的性质来划分。3.分页的进程地址空间是一维的,即单一的线性空间;而分段的进程地址空间是二维的,由段号和段内地址两部分组成。(7)什么是虚拟存储器?列举采用虚拟存储器的必要性和可能性。解:虚拟存储器是指在具有层次结构存储器的计算机系统中,具有请求调入和交换功能,为用户提供一个比实际物理内存容量大得多的可寻址的一种存储器系统,它能从逻辑上对内存容量进行扩充。采用虚拟存储器的必要性:传统存储管理方式要求将作业全部装入内存之后才能运行,这一特征导致大作业和多个作业要求运行时系统无法满足;另外,传统存储管理方式具有驻留性,即作业装入内存直到运行结束,便一直驻留在内存中。尽管进程在运行中会因I/O等原因而长期处于阻塞状态,或有的程序模块在运行过一次后就不再需要,但它们都仍将继续占用宝贵的内存资源。采用虚拟存储器的可能性:根据程序的局部性定理,应用程序在执行之前,没有必要全部装入内存,而只需要将那些当前要运行的部分页或段先装入内存即可运行,其余部分可以仍然留在外存。程序在执行时,如果它所访问的页(段)已经调入内存,便可继续执行下去。但如果程序所要访问的页(段)不在内存中(称为缺页或缺段),此时程序可以利用操作系统提供的请求调页(段)功能,将它们调入内存,以便程序能够继续执行下去。如果内存已满,无法装入新调入的页(段),则必须利用一定的页(段)置换功能,将内存中暂时不用的页(段)换到外存中,以腾出足够的空间来存放新调入的页(段),从而保证程序的顺利执行。这样,一个大的程序就可以在较小的内存空间中执行。从用户的角度来看,该系统所具有的内存容量比实际内存容量大了很多。但实际上,用户所看到的大容量存储器是不存在的,只是虚拟的,故把这样的存储器称为虚拟存储器。(8)一个计算机系统的虚拟存储器,其最大容量和实际容量分别由什么决定?解:虚拟存储器的最大容量由主存和辅存的容量之和确定。虚拟存储器的实际容量由指令中表示地址的字长决定,也就是计算机的地址结构决定的。(9)描述下列算法:①首次适应;②最佳适应;③最差适应解:最先适应算法又称首次适应算法,该算法要求空闲分区表或空闲分区链按起始地址递增的次序排列。在进行内存分配时,从空闲分区表(链)首开始顺序查找,一旦找到大于或等于所要求内存长度的分区,则结束查找。然后,该算法从该分区中划出所要求的内存长度分配给请求者,余下的空闲分区仍留在空闲分区表(链)中,同时修改其相应的表(链)项。最佳适应算法要求空闲分区按容量大小递增的次序排列。当用户作业申请一个空闲区时,存储管理程序从空闲分区表(链)首开始顺序查找,当找到第一个满足要求的空闲区时,停止查找。按这种方式为作业分配内存,就能把既满足作业要求又与作业大小最接近的空闲分区分配给作业。如果空闲分区大于作业的大小,则与最先适应算法相同,将减去作业请求长度后的剩余空闲区仍然留在空闲分区表(链)中。最坏适应算法要求空闲分区按其大小递减的顺序组成空闲分区表(链)。当用户作业申请一个空闲区时,先检查空闲分区表(链)的第一个空闲分区的大小是否大于或等于所要求的内存长度,若空闲分区表(链)的第一项长度小于所要求的大小,则分配失败,否则从该空闲分区中划出与作业大小相等的一块内存空间分配给作业,余下的空闲分区仍然留在空闲分区表(链)中。(10)如果内存划分为100KB、500KB、200KB、300KB和600KB(按顺序),那么,首次适应、最佳适应和最差适应算法各自将如何放置大小分别为215KB、414KB、110KB和430KB(按顺序)的进程,哪一种算法的内存利用率高?解:见下图,在首次适应和最差适应算法中,最后430KB没有空间分配。由图可知,最佳适应算法的内存利用率高。(11)某操作系统采用分区存储管理技术。操作系统占用了低地址端的100KB的空间,用户区从100KB处开始共占用512KB,初始时,用户区全部空闲,分配时截取空闲区的低地址部分作为一个分配区。在执行了如下的申请、释放操作序列后:作业1申请300KB、作业2申请100KB、作业1释放300KB、作业3申请150KB、作业4申请50KB、作业5申请90KB。①分别画出采用首次适应算法、最佳适应算法进行内存分配后的内存分配图和空闲区队列;②若随后又申请80KB,针对上述两种情况会产生什么后果?解:采用首次适应算法、最佳适应算法进行内存分配后的内存分配图和空闲区队列图如下所示。若随后又申请80KB,只有采用首次适应算法的内存分配还有空间可以分配,分配图如下:(12)假设一个有8个1024字节页面的逻辑地址空间,映射到一个有32帧的物理内存:①逻辑地址有多少位?②物理地址有多少位?解:逻辑地址有13位;物理地址有15位。(13)某虚拟内存的用户编程空间共32页,每页的大小为1KB,内存为16KB,假设某时刻系统为用户的第0、1、2、3页分配的物理块为5、10、4、7,而该用户作业的长度为6页,试将16进制的虚拟地址0A5C、093C、1A5C转换成物理地址。解:1.虚拟地址为0A5C,对应的二进制数为:0000101001011100。其中,页内偏移量占10位地址码,为25C。页号占6位地址码,为2号页。因第2页存储在4号块中,其基地址为:0001000000000000,即十六进制的1000H。这样,其物理地址为十六进制的125C。2.虚拟地址为093C,对应的二进制数为:0000100100111100。其中,页内偏移量占10位地址码,为13C。页号占6位地址码,为2号页。因第2页存储在4号块中,其基地址为:0001000000000000,即十六进制的1000H。这样,其物理地址为十六进制的113C。3.虚拟地址为1A5C,对应的二进制数为:0001101001011100。页内偏移量占10位地址码,为25C。页号占6位地址码,为6号页。因为该用户作业的长度为6页,最大的页号为5号。因为虚拟地址为1A5C对应的6号页超出了地址范围,所以属于越界。(14)覆盖技术和虚拟存储技术有何区别,交换技术和虚拟存储器中使用的调入和调出技术有何区别和联系?解:覆盖技术与虚拟存储技术最本质的不同在于覆盖程序段的最大长度要受内存容量大小的限制,而虚拟存储器中程序的最大长度不受内存容量的限制,只受计算机地址结构的限制。另外,覆盖技术中的覆盖段由程序员设计,且要求覆盖段中的各个覆盖具有相对的独立性,不存在直接联系或相互交叉访问;而虚拟存储技术对用户的程序段之间没有这种要求。交换技术就是把暂时不用的某个程序及数据从内存移到外存中去,以便腾出必要的内存空间,或把指定的程序或数据从外存读到内存中以允许其运行的一种内存扩充技术。交换技术与虚存中使用的调入/调出技术的主要相同点是:都要在内存与外存之间交换信息。主要区别是:交换技术调入/调出整个进程,因此一个进程的大小要受内存容量大小的限制;而虚存中使用的调入/调出技术在内存和外存之间来回传递的是页面或分段,而不是整个进程,从而使得进程的地址映射具有了更大的灵活性,且允许进程的大小比可用的内存空间大。(15)在虚拟页式存储系统中引入了缺页中断,说明引入缺页中断的原因,并给出其实现的方法。解:虚拟页式存储系统中,系统允许作业的一部分页面在内存。当系统产
本文标题:第5章存储管理习题答案
链接地址:https://www.777doc.com/doc-2194482 .html