41本章知识点-欢迎光临舟山广播电视大学

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第4章存储管理辅导与自测4.1本章知识点存储器是计算机系统中的关键资源,对内存如何处理在很大程度上将影响整个系统的性能。存储管理即对内存的管理,存储管理目前仍是人们研究操作系统的中心问题之一,以至操作系统的命名也往往取决于存储管理的策略。本章的主要知识点为:(1)本章的重要概念本章涉及到的概念比较多,主要有:内存、外存、逻辑地址/相对地址、物理地址/绝对地址、逻辑地址空间/地址空间、内存空间/物理空间/绝对空间、重定位、静态重定位、动态重定位、对换技术、碎片、紧缩、虚拟存储器、页面抖动。存储器作为计算机系统中最主要的组成部分,按照速度、容量和成本划分一个层次结构,分别是寄存器、高速缓存、内存、磁盘和磁带。用户程序必须装入到内存才能运行。进程的地址空间不同于内存的物理空间。经过重定位可以把逻辑地址转变为内存的物理地址。重定位分为静态和动态两种方式,现在的计算机系统中都采用动态重定位方法。对换技术可以利用外存来解决内存不足的问题。现在Linux系统中还采用这种技术。(2)分区管理技术分区分配是为支持多道程序运行而设计的一种最简单的存储管理方式,可分为固定分区法和动态分区法。固定分区就是内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同。每个分区只可装入一个进程。动态分区是在进程要进入内存时才建立的,使其大小恰好适应进程的大小。动态分区法常用的分配策略有两种:最先适应算法(First-fit)和最佳适应算法(Best-fit),前者空闲表按位置排列,后者空闲表以空闲分区的大小为序。具有固定大小分配单元的系统,如MFT(具有固定任务数的多道程序设计)或分页系统,会产生内部碎片;而具有可变大小分配单元的系统,如MVT(具有可变任务数的多道程序设计),会出现外部碎片。为了有效解决碎片问题,实现的方法是移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。这种技术称为紧缩。采用紧缩技术的分区方法称为可重定位分区法。动态重定位由硬件实现,包括基址寄存器和限长寄存器,对CPU生成的所有地址进行合法性检查,并映像到物理地址。(3)分页技术除了用紧缩技术解决碎片问题,还可以使用分页技术,即允许程序的存储空间不一定连续,可以把一个进程分散地放在各个空闲的内存块中。分页存储管理的基本方法是:逻辑空间分页,内存空间分块,块与页的大小相等。页连续而块离散,用页号查页表,由硬件作转换。分页存储管理可以实现页面的共享,但是这样做并不实际,因为逻辑上相对完整的内容不见得存在于一个或几个完整的页面中(段式存储管理更便于共享)。此外,还可以在页表中设置存取控制字段,进行页面保护,禁止非法访问。(4)虚拟存储管理虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。2虚拟存储技术允许把大的逻辑地址空间映射到较小的物理内存上,这样就提高了多道程序并发执行的程度,增加了CPU的利用率。虚拟存储器的特性包括:虚拟扩充、部分装入、离散分配和多次对换等。使用虚拟存储技术的页式管理为请求分页式存储管理。它是根据实际程序执行的顺序,动态申请存储块。并不是把所有页面都放入内存。对一个程序的第一次访问将产生缺页中断,转入操作系统进行相应处理。操作系统依据页表确定页面在外存上的位置,然后找一个空闲块,把该页面从外存上读到内存块中。同时,修改页表有关项目,以反映这种变化,产生缺页中断的那条指令被重新启动执行。这种方式允许一个程序即使它的整个存储映像并没有同时在内存中,也能正确运行。只要缺页率足够低,其性能还是很好的。请求分页可用来减少分配给一个进程的块数,这就允许更多进程同时执行,而且允许程序所需内存量超出可用内存总量。(5)常用页面置换算法当总内存的需求量超出实际内存量时,为释放内存块给新的页面,需要进行页面置换。有各种页面置换算法可供使用。先进先出法(FIFO)是最容易实现的,但性能不是很好。最佳置换法(OPT)需要未来知识,仅有理论价值。最近最少使用置换法(LRU)是OPT的近似算法,但实现时要有硬件的支持和软件开销。最近未使用置换法(NUR)是LRU的近似算法。置换算法的好坏直接影响系统的性能。好的页面置换算法能够适当降低页面更换频率(减少缺页率),尽量避免系统“抖动”。(6)Linux系统的存储管理技术Linux采用对换和请求分页存储管理技术,页面置换采用LRU算法。对换任务是由内核的对换守护进程kswapd完成,以保证系统中有足够的空闲内存页。Linux系统采用三级页表的方式,以节省内存资源。采用位图和链表两种方法来管理内存页。4.2典型例题解析【例1】在目标程序装入内存时,一次性完成地址修改的方式是().A.静态重定位B.动态重定位C.静态连接D.动态连接答案A分析回答这道题需要清楚静态重定位和动态重定位的不同。静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。按照静态重定位方式,一个程序A装入内存时的情况就变成图4.1所示的样子。从图中可以看出,经过静态重定位,原100号单元中的指令放到内存5100号单元,该指令中的相对地址500相应变成5500。以后程序A执行时,CPU是从绝对地址5500号单元中取出数据12345,装入到寄存器A中。静态重定位的优点是无须增加硬件地址转换机构,便于实现程序的静态连接。在早期计算机系统中大多采用这种方案。它的主要缺点是程序的存储空间只能是连续的一片区域,而且在重定位之后就不能再移动,这不利于内存空间的有效使用;另外各个用户进程很难共享内存中的同一程序的副本。3动态重定位是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。动态重定位的过程如图4.2所示。这时,操作对象的绝对地址就是重定位寄存器中的内容+操作对象的相对地址。动态重定位的主要优点是程序占用的内存空间动态可变,也不必连续存放在一处;比较容易实现几个进程对同一程序副本的共享使用。它的主要缺点是需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂。与静态重定位相比,动态重定位的优点突出。所以现在一般计算机系统中都采用动态重定位方法。【例2】动态分区分配按进程的需求量分配内存分区,所以()。A.分区的长度是固定的B.分区的个数是确定的C.分区的长度和个数都是确定的D.分区的长度不是预先固定的,分区的个数是不确定的答案D程序A的地址空间程序A的内存空间图4.1静态重定位示意图010050070070005000510055005700LOADA50012345LOADA550012345…………………………重定位寄存器相对地址程序A的地址空间程序A的内存空间图4.2动态重定位示意图0100500700700LOADA50012345…………05000510055005700LOADA50012345………………50050004分析分区法分为固定分区和动态分区。其中,固定分区内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同。动态分区在最初时,除了操作系统占用的分区外,全部内存对用户进程都是可用的。分区是在进程要进入内存时才建立的,按照进程的需求量划分内存分区,根本无法预测分区的长度和个数。本题的选项A、B、C是针对固定分区而言的,只有选项D是描述动态分区的。【例3】考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:(1)逻辑地址需要多少二进制位表示?(2)物理地址需要多少二进制位表示?解因为页面数为8=23,故需要3位二进制数表示。每页有1024个字节,1024=210,于是页内地址需要10位二进制数表示。32个物理块,需要5位二进制数表示(32=25)。(1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示。(2)页的物理地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。分析在分页存储管理中,逻辑地址结构如下图所示。它由两个部分组成:前一部分表示该地址所在页面的页号p;后一部分表示页内地址(页内位移)d。页号的地址位数决定了页的多少,假设页号有20位,则地址空间中最多可容纳的页面数为220,即1MB个页面。页内地址位数确定了每页的大小,若页内地址为12位,则每页大小为212,即2KB。同理,物理地址中块号的地址位数决定了块的多少,由于页式存储管理内存空间块的大小与页面大小相同,所以物理地址中块内地址与逻辑地址中的页内地址位数相同。【例4】若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。页号块号01232316解本题中,为了描述方便,设页号为p,页内位移为d,则:(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011mod1024=1011。查页表第0页在第2块,所以物理地址为10242+1011=3059。(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148mod1024=100。查页表第2页在第1块,所以物理地址为1024+100=1124。(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000mod1024=928。查页表第3页在第6块,所以物理地址为10246+928=7072。(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012mod1024=916。因页号超过页表长度,该逻辑地址非法。分析页式存储管理的地址结构是一维的,即逻辑地址/物理地址只用一个数值即可表示。若给定的逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得:p=int(A/L)d=AmodL其中,int是取整函数(取值的整数部分),mod是取余函数(取值的余数部分)。图4.3显示了页式管理系统的地址转换机构。页号p页内地址d5页表的作用是实现从页号到物理块号的地址映射。以逻辑地址的页号检索页表,得到该页的物理块号;同时将页内地址d直接送入物理地址寄存器的块内地址字段中。这样,物理块号和块内地址拼接成了实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。【例5】判断:虚拟存储器实际上是一种设计技巧,使主存物理容量得到扩大。答案错误。分析根据程序执行时的互斥性和局部性两个特点,可以只将作业的一部分装入主存,其余的部分放在辅存(如磁盘等)上,当需要的时候,再从辅存调入主存,这样用户编制程序时可以不必考虑主存的实际容量,允许用户的逻辑地址空间大于主存的绝对地址空间,对用户来说,好像计算机具有一个容量很大的主存,这就是“虚拟存储器”。虚拟存储器实际上是为扩大主存容量而采用的一种设计技巧。它与实际的主存物理容量无关,而是大小比主存大得多的假想空间,使用户感觉到所能使用的“主存空间”非常大。【例6】与虚拟存储技术不能配合使用的是()。A.分区管理B.页式存储管理C.段式存储管理D.段页式存储管理答案A分析采用页式、段式、段页式管理可以实现虚拟存储器,但对固定分区、可变分区方式都不能实现虚拟存储器。我们知道实现虚拟存储技术的物质基础是二级存储结构(主存与辅存)和动态的地址转换机构(动态重定位)。固定分区方式没有硬件地址转换机构。可变分区方式管理主存也不能实现虚拟存储。因为在这种管理方式下,每次必须将作业完整地调入主存,并要求连续存放,这不符合虚拟存储器的基本原理;另外,虽然可变分区方式有硬件地址转换机构,但它把绝对地址超出限定范围按出错处理,而不是产生“缺分区中断”。虚拟存储器的特征可以归结为以下16个字:虚拟扩充(并非真正扩充了主存容

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功