第五章 存储管理(1).ppt
《第五章 存储管理(1).ppt》由会员分享,可在线阅读,更多相关《第五章 存储管理(1).ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章存储管理(1)第五章第五章 存储管理存储管理v5.1 存储管理的功能存储管理的功能v5.2 分区存储管理分区存储管理v5.3 覆盖和交换覆盖和交换v5.4 页式管理页式管理v5.5 段式与段页式管理段式与段页式管理v5.6 局部性原理与抖动问题局部性原理与抖动问题25.1.1 虚拟存储器虚拟存储器源程序源程序目标代码目标代码 地址安排?地址安排?v按照物理存储器中的位置赋予实际物理地址。按照物理存储器中的位置赋予实际物理地址。优点:优点:CPU 执行目标代码时的执行速度高。执行目标代码时的执行速度高。缺点:缺点:能装入内存并发执行的进程数大大减少,对于某能装入内存并发执行的进程数大大减少
2、,对于某些较大的进程可能会无法执行;编译程序将非常复杂,些较大的进程可能会无法执行;编译程序将非常复杂,编译程序必须知道内存的当前空闲部分及其地址,并编译程序必须知道内存的当前空闲部分及其地址,并且把一个进程的不同程序段连续地存放起来且把一个进程的不同程序段连续地存放起来6 由编译链接程序编译后链接(静态、动态)到一由编译链接程序编译后链接(静态、动态)到一个以个以0地址为始地址的线性或多维地址为始地址的线性或多维虚拟地址空间虚拟地址空间(逻辑地址空间逻辑地址空间)。每个进程都拥有一个虚拟地址空间。每个指令或数据单每个进程都拥有一个虚拟地址空间。每个指令或数据单元都在这个虚拟空间中拥有确定的地
3、址,把这个地址元都在这个虚拟空间中拥有确定的地址,把这个地址称为称为虚拟地址虚拟地址(virtual address)(逻辑地址逻辑地址)。地址转换地址转换Load A 200 3456 。1200物理地址空间物理地址空间Load A data1data1 3456源程序源程序Load A 200 34560100200编译编译链接链接虚拟地址空间虚拟地址空间BA=100075.1.1 虚拟存储器虚拟存储器v虚拟存储器:虚拟存储器:进程中的目标代码、数据等的进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。虚拟地址组成的虚拟空间称为虚拟存储器。8实现虚拟内存的基本原理实现虚拟内存
4、的基本原理v将将程程序序正正在在使使用用的的部部分分内内容容放放在在内内存存,而而暂暂时时不不用用的的部部分分放放在在外外存存,在在需需要要时时由由系系统统调调入入内内存存,并并将将不需要(或暂不需要)的部分调出内存。不需要(或暂不需要)的部分调出内存。v由由于于程程序序在在执执行行时时,在在一一段段时时间间内内一一般般仅仅使使用用它它的的程程序序的的一一部部分分(或或一一小小部部分分),所所以以程程序序仅仅有有部部分分装入内存完全能够正确执行。装入内存完全能够正确执行。v要由操作系统结合相关硬件来完成上述工件,这样要由操作系统结合相关硬件来完成上述工件,这样计算机好象为用户提供了一个容量远大
5、于内存的存计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为储器,这个存储器称为虚拟存储器虚拟存储器。95.1.1 虚拟存储器虚拟存储器v虚拟存储器虚拟存储器呈现在用户面前的是一个在呈现在用户面前的是一个在物理上只受物理上只受内存和外存总容量限制内存和外存总容量限制的存储系统,这要求存储管的存储系统,这要求存储管理系统只把进程执行时频繁使用和立即需要的指令理系统只把进程执行时频繁使用和立即需要的指令与数据等存放在内存中,而把那些暂时不需要的部与数据等存放在内存中,而把那些暂时不需要的部分存放在外存中,待需要时自动调入,以提高内存分存放在外存中,待需要时自动调入,以提高内存的利用率
6、和并行执行的作业道数。的利用率和并行执行的作业道数。v虚拟存储器虚拟存储器不考虑不考虑物理存储器的大小和信息存放的物理存储器的大小和信息存放的实际位置实际位置,只规定只规定每个进程中互相关联的信息的每个进程中互相关联的信息的相相对位置对位置。v每个进程都拥有自己的虚拟存储器,且虚拟存储器每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计算机的地址结构和寻址方式确定的。的容量是由计算机的地址结构和寻址方式确定的。105.1.2 地址变换地址变换v地址重定位:地址重定位:从虚拟地址到内存地址的转换从虚拟地址到内存地址的转换称为称为地址重定位地址重定位,或称为,或称为地址映射地址映射。v地址映
7、射的方式:地址映射的方式:1 1、静态地址重定位、静态地址重定位2 2、动态地址重定位、动态地址重定位111、静态地址重定位、静态地址重定位v在虚拟空间程序执行之前由装配程序完成在虚拟空间程序执行之前由装配程序完成地址映射的工作。地址映射的工作。不能实现虚拟存储器不能实现虚拟存储器v假定程序装入内存的首地址为假定程序装入内存的首地址为BA,程序地,程序地址为址为VA,内存地址为,内存地址为MA,则地址映射按下,则地址映射按下式进行:式进行:MA=(BA)+(VA)。12例例v程序装入内存的首地址为程序装入内存的首地址为1000,则,则装配程序就按装配程序就按MA=1000+VA对程序对程序中所
8、有地址部分进行修改,修改后中所有地址部分进行修改,修改后指令指令Load A,200就变为就变为Load A,120013静态地址重定位的静态地址重定位的优缺点优缺点v优点:优点:不需要硬件的支持。不需要硬件的支持。v缺点:缺点:程序必须占用连续的内存空间,程序程序必须占用连续的内存空间,程序和数据不能共享;和数据不能共享;程序一旦装入内存之后就程序一旦装入内存之后就不能再移动,并且必须在程序执行之前将有不能再移动,并且必须在程序执行之前将有关部分全部装入。关部分全部装入。142、动态地址重定位、动态地址重定位v动态地址重定位是在程序执行的过程中,在动态地址重定位是在程序执行的过程中,在CPU
9、CPU访问访问内存之前,将要访问的程序地址转换为内存地址。内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的一般来说这种转换是由专门的硬件机构硬件机构来完成的。来完成的。v在在地地址址重重定定位位机机构构中中,有有一一个个基基地地址址寄寄存存器器BR和和一一个个程序地址寄存器程序地址寄存器VR,一个,一个内存地址寄存器内存地址寄存器MR。MA=(BR)+(VR)152、动态地址重定位、动态地址重定位v动态地址重定位的具体过程:动态地址重定位的具体过程:程序装入内存后,它所占用的内存区的程序装入内存后,它所占用的内存区的首地址首地址由系统由系统送入送入基地址寄存器基地址寄存器
10、BRBR中。中。在程序在程序执行的过程中执行的过程中,若要访问内存,将访问,若要访问内存,将访问的的逻辑地址送入逻辑地址送入程序地址寄存器程序地址寄存器VRVR中。中。地址转换机构地址转换机构把把VRVR和和BRBR中的内容相加中的内容相加,并将结,并将结果果送入送入MRMR中,作为实际访问的物理地址。中,作为实际访问的物理地址。16图图5.3 动态地址重定位动态地址重定位172、动态地址重定位、动态地址重定位v动态地址重定位的动态地址重定位的优点优点可可以以对对内内存存进进行行非非连连续续分分配配。程程序序占占用用的的内内存存空空间间是是动动态态可可变变的的,当当程程序序从从某某个个存存储储
11、区区移移到到另另一一个个区区域域时时,只只需需要要修修改改相相应应的的寄寄存存器器BRBR的的内内容容即即可。可。提提供供了了实实现现虚虚拟拟存存储储器器的的基基础础。一一个个程程序序不不一一定定要要求求占占用用一一个个连连续续的的内内存存空空间间。可可以以部部分分地地装装入入程序运行。程序运行。便于多个进程共享同一个程序的代码。便于多个进程共享同一个程序的代码。182、动态地址重定位、动态地址重定位v动态地址重定位的代价:动态地址重定位的代价:需要硬件的支持。需要硬件的支持。实现存储管理的软件算法较为复杂。实现存储管理的软件算法较为复杂。195.1.3 内外存数据传输的控制内外存数据传输的控
12、制v内外存数据传输的控制:内外存数据传输的控制:用户程序自己控制:用户程序自己控制:覆盖技术覆盖技术用户负担很用户负担很大,程序段的最大长度受内存容量限制,不能大,程序段的最大长度受内存容量限制,不能实现虚拟存储器。实现虚拟存储器。操作系统控制:操作系统控制:v交换交换(swapping)方式方式:不同的进程或作业之间:不同的进程或作业之间v请求调入请求调入(on demand)方式和方式和预调入预调入(on prefetch)方式方式205.1.4 内存的分配与回收内存的分配与回收v要要完完成成内内存存的的分分配配和和回回收收工工作作,要要求求设设计计者者选择和确定以下几种策略和结构:选择和
13、确定以下几种策略和结构:分配结构分配结构调入策略调入策略放置策略放置策略交换策略交换策略回收策略回收策略215.1.4 内存的分配与回收内存的分配与回收v分配结构分配结构分配结构是用来登记内存使用情分配结构是用来登记内存使用情况的数据结构。如况的数据结构。如空闲区表、空闲区队列等。空闲区表、空闲区队列等。v调入策略调入策略用户程序在何时、怎样调入内存用户程序在何时、怎样调入内存的策略。的策略。v放置策略放置策略用户程序调入内存时,确定将其用户程序调入内存时,确定将其放置在何处的策略。放置在何处的策略。225.1.4 内存的分配与回收内存的分配与回收v交换策略交换策略当需要将某个用户程序调入内存
14、当需要将某个用户程序调入内存而内存空间又不够时,就要确定哪个或哪些而内存空间又不够时,就要确定哪个或哪些程序可以从内存中移走。程序可以从内存中移走。v回收策略回收策略确定回收的时机和对所回收的内确定回收的时机和对所回收的内存空闲区和已存在的内存空闲区进行调整。存空闲区和已存在的内存空闲区进行调整。235.1.5 内存信息的共享与保护内存信息的共享与保护v保保证证在在内内存存中中的的多多道道程程序序只只能能在在给给定定的存储区域内活动并互不产生干扰。的存储区域内活动并互不产生干扰。v包括:包括:防止地址越界防止地址越界防止越权防止越权(对共享区有访问权对共享区有访问权)245.1.5 内存信息的
15、共享与保护内存信息的共享与保护v内存保护的方法:内存保护的方法:硬件法、软件法硬件法、软件法和和软硬件法软硬件法。v上下界保护法上下界保护法:硬件法:硬件法 1 1、在、在CPUCPU中设置一对下限寄存器和上限寄存器存放中设置一对下限寄存器和上限寄存器存放用户作业在主存中的下限和上限地址用户作业在主存中的下限和上限地址 2 2、每当、每当CPUCPU要访问主存,硬件自动将被访问的主存要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界地址与界限寄存器的内容进行比较,以判断是否越界 3 3、如果未越界,则按此地址访问主存,否则将产生、如果未越界,则按此地址访问主存,否
16、则将产生程序中断程序中断越界中断越界中断(存储保护中断)(存储保护中断)25图图5.4 上、下界寄存器保护法上、下界寄存器保护法265.1.5 内存信息的共享与保护内存信息的共享与保护v保护键法:保护键法:软件法软件法 为每一个被保护的存储块分配一个单独为每一个被保护的存储块分配一个单独的保护键。在程序状态字中设置相应的保的保护键。在程序状态字中设置相应的保护键开关字段,访问过程中比较保护开关护键开关字段,访问过程中比较保护开关字段的内容和保护键是否匹配,匹配则允字段的内容和保护键是否匹配,匹配则允许访问,否则产生访问出错中断。许访问,否则产生访问出错中断。27图图5.5 保护键保护法保护键保
17、护法285.1.5 内存信息的共享与保护内存信息的共享与保护v界限寄存器与界限寄存器与CPU的用户态或核心态工作方的用户态或核心态工作方式相结合的保护方式。式相结合的保护方式。软硬件法软硬件法 用户态进程只能访问那些在界限寄存器用户态进程只能访问那些在界限寄存器所规定范围内的内存部分,而核心态进程则所规定范围内的内存部分,而核心态进程则可以访问整个内存地址空间。可以访问整个内存地址空间。295.2 分区存储管理分区存储管理v把把整整个个内内存存划划分分为为若若干干大大小小不不等等的的区区域域,操操作作系系统统占占用用一一个个区区域域,其其它它区区域域供供系系统统中中的的多多个进程共享,这种方法
18、称为个进程共享,这种方法称为分区存储管理分区存储管理。5.2.1 5.2.1 分区存储管理的基本原理分区存储管理的基本原理5.2.2 5.2.2 分区的分配与回收分区的分配与回收5.2.3 5.2.3 有关分区管理其他问题讨论有关分区管理其他问题讨论 305.2.1 5.2.1 分区存储管理的基本原理分区存储管理的基本原理v基基本本原原理理:给给每每一一个个内内存存中中的的进进程程划划分分一一块块适适当当大大小小的的存存储储区区,以以连连续续存存储储各各进进程程的的程程序序和数据,使各进程得以并发执行。和数据,使各进程得以并发执行。这是最简单的一种存储管理这是最简单的一种存储管理,按分区划分按
19、分区划分的时机可分为:的时机可分为:1 1、固定分区、固定分区 2 2、动态分区、动态分区311 1、固定分区、固定分区v固固定定分分区区:把把内内存存固固定定地地划划分分为为若若干干个个大大小小不不等等的的区区域域。分分区区的的划划分分由由计计算算机机的的操操作作员员或或者者由由操操作作系系统统给给出出,并并给给出出分分区区说说明明表表。在在调调度度作作业业时时,由由存存储储管管理理根根据据所所需需量量在在分分区说明表中找出一个单元分配给它。区说明表中找出一个单元分配给它。321 1、固定分区、固定分区v分区说明表分区说明表分区号分区号大小大小(KB)始址始址状态状态1820已分配已分配23
20、228已分配已分配36460已分配已分配4132124未分配未分配33图图5.6 固定分区法固定分区法341 1、固定分区、固定分区v在在作作业业大大小小和和出出现现频频率率均均已已知知的的情情况况下下,固固定定分分区区是是合合适适的的。在在这这种种情情况况下下分分区区的的大大小小选选择择与与作作业业大大小小相相当当,这这样样内内存存的的使使用用效效率率较高。较高。v但但是是若若作作业业的的大大小小和和出出现现的的频频率率不不知知道道时时,势势必必造造成成分分区区的的大大小小和和作作业业的的大大小小相相差差甚甚远远,这这样样就就会会造造成成存存储储空空间间的的浪浪费费,从从而而影影响响整整个系
21、统的效率。个系统的效率。352 2、动态分区、动态分区v动动态态分分区区:在在系系统统运运行行的的过过程程中中建建立立分分区区,并使分区的大小刚好与作业的大小相等。并使分区的大小刚好与作业的大小相等。v这这种种存存储储管管理理的的方方法法解解决决了了固固定定分分区区严严重重浪浪费费内内存存的的问问题题。是是一一种种较较为为实实用用的的存存储储管管理理方法。方法。36图图5.7 动态分区内存初始分配情况动态分区内存初始分配情况372 2、动态分区、动态分区v 在实现动态分区分配的时候需要涉及到以下在实现动态分区分配的时候需要涉及到以下三个方面的问题:三个方面的问题:动态分配中所用到的数据结构动态
22、分配中所用到的数据结构;分区的分配算法;分区的分配算法;分区的分配和回收操作。分区的分配和回收操作。382 2、动态分区、动态分区v实现动态分区的数据结构:实现动态分区的数据结构:在在动动态态分分区区存存储储管管理理中中,要要有有相相应应的的数数据据结结构构来来登登记记空空闲闲区区的的说说明明信信息息,它它包包括括空空闲闲区区的的大大小小和和位位置置。其其数数据据结结构构有有:分分区区说说明明表表、可可用用分分区表(或自由链)、请求表。区表(或自由链)、请求表。分区说明表分区说明表可用分区表:可用分区表:用于为内存中每个还没有分区设用于为内存中每个还没有分区设置一个表项,每个分区表项包含分区序
23、号、分置一个表项,每个分区表项包含分区序号、分区起始地址以及分区大小。(占用内存)区起始地址以及分区大小。(占用内存)392 2、动态分区、动态分区v实现动态分区的数据结构:实现动态分区的数据结构:自由链:自由链:利用每个内存空闲区的头几个单元存放利用每个内存空闲区的头几个单元存放本空闲区的大小和下个空闲区的起始地址,将所本空闲区的大小和下个空闲区的起始地址,将所有空闲区组成一条链。(不占用内存)有空闲区组成一条链。(不占用内存)请求表:请求表:表的每个表目描述请求内存资源的作表的每个表目描述请求内存资源的作业或进程号以及所请求的内存大小。业或进程号以及所请求的内存大小。40图图5.9 可用表
24、、自由链及请求表可用表、自由链及请求表41图图5.8 内存分配变化过程内存分配变化过程425.2.2 分区的分配与回收分区的分配与回收v1、固定分区的分配与回收、固定分区的分配与回收v2、动态分区时的分配与回收、动态分区时的分配与回收v3、动态分区时的回收与拼接、动态分区时的回收与拼接v4、几种分配算法的比较、几种分配算法的比较431、固定分区的分配与回收、固定分区的分配与回收v分配:分配:当用户程序要装入执行时,通过请求当用户程序要装入执行时,通过请求表提出内存分配要求和所要求的内存空间大表提出内存分配要求和所要求的内存空间大小。存储管理程序小。存储管理程序根据请求表要求查询分区根据请求表要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 存储管理1 第五 存储 管理
限制150内