第4章_内存管理_第1页
第4章_内存管理_第2页
第4章_内存管理_第3页
第4章_内存管理_第4页
第4章_内存管理_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 内存管理内存管理4.1 4.1 内存管理功能内存管理功能4.2 4.2 分区管理分区管理4.3 4.3 页式管理页式管理 4.4 4.4 段式管理段式管理 4.5 4.5 段页式管理段页式管理 4.1 4.1 内存管理的功能内存管理的功能 内存空间的分配和回收内存空间的分配和回收地址转换地址转换内存空间的共享和保护内存空间的共享和保护内存空间的逻辑扩充内存空间的逻辑扩充4.1.1 4.1.1 内存的分配与回收内存的分配与回收内存分配按分配时机的不同,可分为三种方式:内存分配按分配时机的不同,可分为三种方式: 1.1.直接分配直接分配 采用物理内存地址编写程序。使用这种方式,采用物理

2、内存地址编写程序。使用这种方式,必必须事先划定内存的使用空间须事先划定内存的使用空间,因此,内存利用率不高,因此,内存利用率不高,用户使用较困难。用户使用较困难。 2.2.静态分配静态分配 在作业运行之前各目标模块连接后,把整个作业在作业运行之前各目标模块连接后,把整个作业一次性全部装入内存,并在作业的整个运行过程中,一次性全部装入内存,并在作业的整个运行过程中,不允许作业再申请其他内存,或在内存中移动位置。不允许作业再申请其他内存,或在内存中移动位置。也就是说,也就是说,内存分配是在作业运行前一次性完成的。内存分配是在作业运行前一次性完成的。 4.1.1 4.1.1 内存的分配与回收内存的分

3、配与回收3.3.动态分配动态分配 作业要求的基本内存空间是在目标模块装作业要求的基本内存空间是在目标模块装入内存时分配的,但在作业运行过程中,允许入内存时分配的,但在作业运行过程中,允许作业申请附加的内存空间,或是在内存中移动,作业申请附加的内存空间,或是在内存中移动,即即分配工作可以在作业运行前及运行过程中逐分配工作可以在作业运行前及运行过程中逐步完成。步完成。4.1.2 4.1.2 地址转换地址转换 把用户程序装入内存时对有关指令的把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地地址部分的修改定义为从程序地址到内存地址的址的地址转换地址转换,或称为,或称为地址重定位地

4、址重定位。1.1.物理地址与逻辑地址物理地址与逻辑地址 物理地址物理地址也称内存地址,它是用于唯一也称内存地址,它是用于唯一标识一个内存单元的编号。所有的物理地址标识一个内存单元的编号。所有的物理地址构成了构成了物理空间物理空间。4.1.2 4.1.2 地址转换地址转换 逻辑地址逻辑地址也称也称程序地址程序地址,它是指在源程序经,它是指在源程序经过汇编或编译后形成的目标代码中,用于反映目过汇编或编译后形成的目标代码中,用于反映目标代码中指令或数据的相对位置关系的地址。标代码中指令或数据的相对位置关系的地址。 逻辑地址都是以逻辑地址都是以“0”0”为基址顺序进行编址的,为基址顺序进行编址的,这样

5、生成的目标程序占据一定的地址空间,称为这样生成的目标程序占据一定的地址空间,称为程序的程序的逻辑地址空间逻辑地址空间,简称,简称逻辑空间逻辑空间。 用符号地址(符号名)表示的程序空间称为用符号地址(符号名)表示的程序空间称为名空间名空间。 地址重定位的原因是什么地址重定位的原因是什么? 因为程序在装入内存后,其逻辑地因为程序在装入内存后,其逻辑地址和物理地址不一致。址和物理地址不一致。地址映射地址映射Load A 200Load A 200 3456 3456 。 。12001200物理地址空间物理地址空间Load A data1Load A data1data1 3456data1 3456

6、源程序源程序Load A 200Load A 200 3456 34560 0100100200200编译编译连接连接逻辑地址空间逻辑地址空间BA=1000BA=1000(名空间)(名空间)静态重定位静态重定位 是在程序执行之前由操作系统的连接装入程序是在程序执行之前由操作系统的连接装入程序完成地址转换。完成地址转换。 优点:不需要硬件的支持。优点:不需要硬件的支持。 缺点:程序必须占用连续的内存空间;缺点:程序必须占用连续的内存空间; 一旦程序装入后不能移动。一旦程序装入后不能移动。 2.2.地址重定位的方式地址重定位的方式动态重定位动态重定位 在程序执行期间进行的地址转换,是由专门的在程序

7、执行期间进行的地址转换,是由专门的硬件机构来完成的。硬件机构来完成的。优点:程序占用的内存空间是动态可变的,当程序从优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的某个存储区移到另一个区域时,只需要修改相应的寄存器寄存器BRBR的内容即可。的内容即可。缺点:需要硬件的支持;缺点:需要硬件的支持; 实现存储管理的软件算法较为复杂。实现存储管理的软件算法较为复杂。03456.LOAD A 200.0100200300.LOAD A 2003456110012001300200VR+1000BR动态重定位示意图动态重定位示意图4.1.3 4.1.3 内存的共

8、享和保护内存的共享和保护4.1.3 4.1.3 内存的共享和保护内存的共享和保护 在实现内存分配与共享时,必须解决内存中信在实现内存分配与共享时,必须解决内存中信息的保护问题。存储保护的工作一般由硬件和软件息的保护问题。存储保护的工作一般由硬件和软件配合实现。配合实现。1.1.上、下界存储保护上、下界存储保护:系统可为每个作业设置一对:系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序存空间的上、下边界地址,用它们来限制用户程序的活动范围。的活动范围。 2.2.基址限长存储保护基址限长存储

9、保护:上、下界保护的一个变种:上、下界保护的一个变种是采用基址是采用基址限长存储保护。限长存储保护。 4.1.3 4.1.3 内存的保护内存的保护4.1.4 4.1.4 内存空间的逻辑扩充内存空间的逻辑扩充 对内存进行逻辑上的扩充,现在普遍采用覆盖、对内存进行逻辑上的扩充,现在普遍采用覆盖、交换和虚拟存储器技术。交换和虚拟存储器技术。 虚拟存储器虚拟存储器是具有请求调入功能和置换功能,是具有请求调入功能和置换功能,能仅把作业的一部分装入内存便可运行作业的存储能仅把作业的一部分装入内存便可运行作业的存储器系统,它是一种能从逻辑上对内存容量进行扩充器系统,它是一种能从逻辑上对内存容量进行扩充的虚构

10、的存储器系统。的虚构的存储器系统。 虚拟存储器的理论基础是程序的局部性原理。虚拟存储器的理论基础是程序的局部性原理。包括包括时间局部性时间局部性和和空间局部性空间局部性。什么是时间局部性什么是时间局部性? ? 什么是空间局部性什么是空间局部性? ?4.1.4 4.1.4 内存空间的逻辑扩充内存空间的逻辑扩充 虚拟存储器的基本思想虚拟存储器的基本思想是把有限的内存空间与是把有限的内存空间与大容量的外存统一管理,构成一个远大于实际内存大容量的外存统一管理,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的直接的、虚拟的存储器。此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区

11、别,即把两延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。级存储器当作一级存储器来看待。 一个作业运行时,其全部信息装入虚存,实际一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,上可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系其他则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。统自动将其从外存调入内存。4.2.1 4.2.1 单分区管理单分区管理4.2.2 4.2.2 固定分区固定分区4.2.3 4.2.3 可变分区可变分区4.2.4 4.2.4 覆盖与交换覆盖与交换4.2

12、4.2 分区管理分区管理 4.2.1 4.2.1 单分区管理单分区管理 这是一种最简单的连续存储管理方式。但只能用于这是一种最简单的连续存储管理方式。但只能用于单用户、单任务的操作系统中。单用户、单任务的操作系统中。系统区:仅提供给操作系统使用,通常设置在内系统区:仅提供给操作系统使用,通常设置在内存的低址部分;存的低址部分;用户区:指除系统区以外的全部内存空间,提供用户区:指除系统区以外的全部内存空间,提供给用户使用。给用户使用。空闲区:指剩余部分存储区。空闲区:指剩余部分存储区。4.2.2 4.2.2 固定分区固定分区 把可用空间划分成若干个固定大小的把可用空间划分成若干个固定大小的存储区

13、,除操作系统占用一个区域外,其存储区,除操作系统占用一个区域外,其余区域为系统中多个用户共享,因为在系余区域为系统中多个用户共享,因为在系统运行期间,分区大小、数目都不变,所统运行期间,分区大小、数目都不变,所以固定分区也称为以固定分区也称为静态分区静态分区。分区说明表分区说明表4.2.3 4.2.3 可变分区可变分区1 1、基本思想:、基本思想:分区大小、数目可变,所以可变分区大小、数目可变,所以可变分区也称为分区也称为动态分区动态分区。 它是根据用户作业的大小,在作业要求装它是根据用户作业的大小,在作业要求装入主存时,动态地划分分区,使分区的大小正入主存时,动态地划分分区,使分区的大小正好

14、适应作业的要求。好适应作业的要求。 可变分区存储管理方式必须解决三个问题:可变分区存储管理方式必须解决三个问题:一是分区分配中所用的数据结构;一是分区分配中所用的数据结构;二是分区的分配算法;二是分区的分配算法;三是分区的分配和回收。三是分区的分配和回收。 可变分区内存使用情况示意图可变分区内存使用情况示意图2 2可变分区管理中的数据结构可变分区管理中的数据结构 最先适应算法最先适应算法 按空闲区地址递增的次序分配按空闲区地址递增的次序分配最优适应算法最优适应算法 按空闲区由小到大的次序分配按空闲区由小到大的次序分配最坏适应算法最坏适应算法 按空闲区由大到小的次序分配按空闲区由大到小的次序分配

15、3 3内存的分配算法内存的分配算法 (1 1)最先适应分配算法()最先适应分配算法(FFFF) 它要求空闲分区表中的记录它要求空闲分区表中的记录按地址递增的顺序按地址递增的顺序排列排列。在每次分配主存时,总是从第。在每次分配主存时,总是从第1 1条记录开始条记录开始顺序查找空闲分区表,找到第一个能满足作业长度顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区。一部分分配给作要求的空闲区,分割这个空闲区。一部分分配给作业,另一部分仍作为空闲区。业,另一部分仍作为空闲区。 特点是算法简单,容易产生过多的主存碎片。特点是算法简单,容易产生过多的主存碎片。 主存碎片主存碎片是指小

16、的不能使用的主存空间;这种是指小的不能使用的主存空间;这种算法把大的空闲区分成了小的空闲区,当有大作业算法把大的空闲区分成了小的空闲区,当有大作业要求分配时,不能满足要求,降低了系统的效率。要求分配时,不能满足要求,降低了系统的效率。 (2 2)最优适应分配算法()最优适应分配算法(BFBF)(3 3)最坏适应分配算法()最坏适应分配算法(WFWF) 有作业序列:作业有作业序列:作业A A要求要求18K18K;作业;作业B B要求要求25K25K,作业,作业C C要求要求30K30K。如下图。如下图。 系统中空闲区按三种算法组成的空系统中空闲区按三种算法组成的空闲区队列如下,闲区队列如下,经分

17、析可知:最佳适应经分析可知:最佳适应法对这个作业序列是合适的,而其它两法对这个作业序列是合适的,而其它两种对该作业序列是不合适的。种对该作业序列是不合适的。举例举例 有作业序列:作业有作业序列:作业A A要求要求21K21K;作业;作业B B要求要求30K30K,作业作业C C要求要求25K25K,分析使用哪种分配算法最佳?,分析使用哪种分配算法最佳?课堂练习:课堂练习:4 4内存的回收内存的回收 当某一个用户作业完成释放所占分区当某一个用户作业完成释放所占分区时,系统应进行回收。时,系统应进行回收。 在可变式分区中,应该检查回收区与在可变式分区中,应该检查回收区与内存中前后空闲区是否相邻:内

18、存中前后空闲区是否相邻: 若相邻,则应进行合并,形成一个较若相邻,则应进行合并,形成一个较大的空闲区,并对相应的链表指针进行修大的空闲区,并对相应的链表指针进行修改;若不相邻,应将空闲区插入到空闲区改;若不相邻,应将空闲区插入到空闲区链表的适当位置。链表的适当位置。n回收的分区前后没有相邻的空闲分区。回收的分区前后没有相邻的空闲分区。 n回收分区的前面有相邻的空闲分区。回收分区的前面有相邻的空闲分区。 n回收分区的后面有相邻的空闲分区。回收分区的后面有相邻的空闲分区。 n回收分区的前后都有相邻的空闲分区。回收分区的前后都有相邻的空闲分区。5 5、分区保护、分区保护 存储保护是为了防止一个作业破

19、坏操作系统或存储保护是为了防止一个作业破坏操作系统或其他作业。其他作业。1. 1. 上、下界寄存器保护法:上、下界寄存器保护法:上界寄存器上界寄存器物理地址物理地址下界寄存器,超出这个范围便产生保护性中断。下界寄存器,超出这个范围便产生保护性中断。2. 2. 基址、限长寄存器保护法:基址、限长寄存器保护法:基址寄存器基址寄存器物理地物理地址址基址寄存器基址寄存器+ +限长寄存器,如果超过了限长,限长寄存器,如果超过了限长,则发出越界中断信号,并停止作业的运行。则发出越界中断信号,并停止作业的运行。3. 3. 存储保护键方法:存储保护键方法: 系统为每个分区设一个保护键,在程序状态字系统为每个分

20、区设一个保护键,在程序状态字中也设同样的保护键字段,访问内存时检查键的配中也设同样的保护键字段,访问内存时检查键的配对情况,如果不匹配则产生保护性中断。对情况,如果不匹配则产生保护性中断。 4.2.4 碎片问题及其解决办法碎片问题及其解决办法 在分区分配方式中经过不断地分配和释放后,在分区分配方式中经过不断地分配和释放后,内存中空闲分区会变得越来越多和越来越小,产生内存中空闲分区会变得越来越多和越来越小,产生了许多碎片。了许多碎片。 所谓所谓碎片碎片是指内存中出现的一些零散的小空闲是指内存中出现的一些零散的小空闲区域。区域。 由于碎片都很小,故无法再利用。如果内存中由于碎片都很小,故无法再利用

21、。如果内存中碎片很多,将会造成严重的存储资源浪费。碎片很多,将会造成严重的存储资源浪费。 4.2.4 碎片问题及其解决办法碎片问题及其解决办法移动移动( (紧凑紧凑/ /紧缩紧缩/ /拼接拼接) )技术:技术: 解决碎片的方法是移动所有的占用区域,使所解决碎片的方法是移动所有的占用区域,使所有的空闲区合并成一片连续区域,这一技术称为有的空闲区合并成一片连续区域,这一技术称为移移动技术(拼接)动技术(拼接)。 移动技术可解决碎片问题,从而提高内存的利移动技术可解决碎片问题,从而提高内存的利用率。用率。 移动技术可以集中分散的空闲区,便于作业动移动技术可以集中分散的空闲区,便于作业动态扩充内存。态

22、扩充内存。4.2.5 覆盖与交换覆盖与交换n覆盖覆盖:一个作业的若干程序段,或几个作业的某:一个作业的若干程序段,或几个作业的某些部分共享某一个存储空间。些部分共享某一个存储空间。n程序段先保存在磁盘上,当有关程序段的前一部程序段先保存在磁盘上,当有关程序段的前一部分执行结束,把后续程序段调入内存,覆盖前面分执行结束,把后续程序段调入内存,覆盖前面的程序段。的程序段。n一般要求作业各模块之间有明确的调用结构,程一般要求作业各模块之间有明确的调用结构,程序员要向系统指明覆盖结构,然后由操作系统完序员要向系统指明覆盖结构,然后由操作系统完成自动覆盖。成自动覆盖。A8KE4KF10KC10KB8KD

23、12K作业作业X的调用结构的调用结构作业作业X X的常驻区的常驻区 A A(8K8K)覆盖区覆盖区0(10K)覆盖区覆盖区1(12K) BC C D E F为什么引入交换技术?为什么引入交换技术? 当内存空间紧张时,系统将内存中某当内存空间紧张时,系统将内存中某些进程暂时移到外存,把外存中某些进程换些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域,这种技术进内存,占据前者所占用的区域,这种技术是进程在内存与外存之间的动态调度。是进程在内存与外存之间的动态调度。 多用于分时系统中。多用于分时系统中。2.2.交换交换 与覆盖技术相比,交换技术不要求用户与覆盖技术相比,交换技术不要

24、求用户给出程序段之间的逻辑覆盖结构。给出程序段之间的逻辑覆盖结构。交换与覆盖的不同之处:交换与覆盖的不同之处: 交换发生在进程或作业之间,而覆盖发生在交换发生在进程或作业之间,而覆盖发生在同一进程或作业内。同一进程或作业内。 覆盖只能覆盖那些与覆盖段无关的程序段。覆盖只能覆盖那些与覆盖段无关的程序段。2.2.交换交换4.3 4.3 页式管理页式管理 4.3.14.3.1 页式管理概述页式管理概述1.1.基本原理:基本原理: 分页存储管理是将一个进程的分页存储管理是将一个进程的地址空间地址空间划分划分成若干个大小相等的区域,称为成若干个大小相等的区域,称为页页。 相应地,将相应地,将内存空间内存

25、空间划分成与页相同大小的划分成与页相同大小的若干个物理块,称为若干个物理块,称为块或页帧块或页帧。 在为进程分配内存时,将进程中若干页分别在为进程分配内存时,将进程中若干页分别装入多个不相邻接的块中。装入多个不相邻接的块中。 4.3.1 4.3.1 页式管理概述页式管理概述2.2.地址结构:地址结构: 分页系统的地址结构由两部分组成:前一部分分页系统的地址结构由两部分组成:前一部分为为页号页号P P;后一部分为位移量;后一部分为位移量W W,即,即页内位移页内位移。 在下图中地址为在下图中地址为3232位,其中位,其中0 01111位为页内位位为页内位移(每页的大小为移(每页的大小为4K4K)

26、,),12123131位为页号,所以允位为页号,所以允许地址空间的大小最多为许地址空间的大小最多为1M1M个页。个页。 地址结构示例地址结构示例 31 12 11 0 页号页号 P 位移量位移量W4.3.2 4.3.2 静态分页静态分页 基本思想是必须装入作业的全部页面后才能基本思想是必须装入作业的全部页面后才能执行该作业。执行该作业。 1. 1. 页表:页表:系统为每个进程建立了一张系统为每个进程建立了一张页面映射表页面映射表,简称简称页表页表。 每个页在页表中占一个表项,记录该页在内每个页在页表中占一个表项,记录该页在内存中对应的物理块号。进程在执行时,通过查找存中对应的物理块号。进程在执

27、行时,通过查找页表,就可以找到每页所对应的物理块号。页表,就可以找到每页所对应的物理块号。 页表的作用是实现从页号到物理块号的地址页表的作用是实现从页号到物理块号的地址映射。映射。页号页号块号块号0 02 21 13 32 28 8页表页表用户程序0 页1 页2 页3 页4 页5 页n 页页表页号块号02132638495内存012345678910地址空间地址空间物理空间物理空间4.3.2 4.3.2 静态分页静态分页 2.2.静态页式管理的分配与回收:静态页式管理的分配与回收:内存空间以块为单位,内存空间以块为单位,要用数据结构记录内存中块的情况。要用数据结构记录内存中块的情况。1 1、位

28、示图:、位示图:每一位对应一个块,每一位对应一个块,0 0 空闲,空闲,1 1 已分配。已分配。2 2、空闲块链:、空闲块链:所有空闲块组成一个空闲块链,链首分所有空闲块组成一个空闲块链,链首分配,链尾回收。配,链尾回收。3 3、内存分块表:、内存分块表:表项包括块号,进程号,页号,状态表项包括块号,进程号,页号,状态等。状态为等。状态为0 0,空闲,空闲,1 1,已分配。,已分配。 4.3.2 4.3.2 静态分页静态分页3.3.地址转换:地址转换: 当进程要访问某个逻辑地址当进程要访问某个逻辑地址M M中的数据时,需中的数据时,需做如下地址变换:做如下地址变换:1 1、将地址空间的逻辑地址

29、、将地址空间的逻辑地址M M转换为转换为页式逻辑地址页式逻辑地址;2 2、以页号、以页号P P为索引去检索页表,找到相对应表项为索引去检索页表,找到相对应表项页表始址页号页表始址页号P P; 从中读出对应的物理块号从中读出对应的物理块号B B;3 3、计算物理地址、计算物理地址B B页长页内位移页长页内位移W W。 求出有效地址求出有效地址20442044所对应的物理地址,要所对应的物理地址,要求写出地址转换过程。求写出地址转换过程。页式逻辑地址:页号:页式逻辑地址:页号:2044/1024=1 2044/1024=1 ,页,页内位移量:内位移量:2044 MOD 1024=10202044

30、MOD 1024=1020物理地址:物理地址:5 5* *1024+1020=61401024+1020=6140在采用页面存储管理的系统中,某作业在采用页面存储管理的系统中,某作业的逻辑地址空间为的逻辑地址空间为4 4页(每页页(每页1k1k),且已知),且已知该作业的页表如下:该作业的页表如下:页号页号块号块号0 07 71 15 52 23 33 39 9分页中的地址转换机构分页中的地址转换机构页表始址页表始址页表长度页表长度页表寄存器页表寄存器页号页号P P页内地址页内地址W W页式逻辑地址页式逻辑地址越界中断越界中断 =Lpp. . .快表快表 b+页号页号p 页内地址页内地址dPd

31、物理地址物理地址页表地址寄存器页表地址寄存器页表长度寄存器页表长度寄存器逻辑地址逻辑地址4.4.引入快表的地址转换引入快表的地址转换5 5页的共享和保护页的共享和保护(1 1)页的共享。)页的共享。页的共享可以节省主存空间。页式页的共享可以节省主存空间。页式存储管理能方便地实现多个作业共享程序和数据。存储管理能方便地实现多个作业共享程序和数据。 共享的方法是共享的方法是使各自页表中的有关表目指向使各自页表中的有关表目指向共享信息的主存块。共享信息的主存块。(2 2)页的保护。)页的保护。在页式存储管理方式下的保护有三在页式存储管理方式下的保护有三种情况:种情况: 共享页的保护、不同作业所占空间

32、的保护、共享页的保护、不同作业所占空间的保护、逻辑地址转换成物理地址的保护。逻辑地址转换成物理地址的保护。4.3.3 4.3.3 动态分页动态分页( (请求分页请求分页) ) 1.1.基本思想:基本思想: 采用采用虚拟存储技术虚拟存储技术,只需装入作业的部分,只需装入作业的部分页面就能启动作业的运行。页面就能启动作业的运行。 以后再通过调页功能和页面置换功能,陆以后再通过调页功能和页面置换功能,陆续把将要运行的页面调入内存,同时把暂不运续把将要运行的页面调入内存,同时把暂不运行的页面置换到外存上,置换时以页面为单位。行的页面置换到外存上,置换时以页面为单位。 2.2.扩充的页表结构扩充的页表结

33、构 0 0 1 1 0 0 0 0修改位修改位 1 1 220220 3 3 1 1 0 0 200200 1515 0 0 0 0 5050 1414 1 1 1 1 112112 1010 1 1访问位访问位外存地址外存地址块号块号驻留位驻留位 3 3 2 2 1 1 0 0页号页号3.3.缺页中断缺页中断 在请求分页系统中,每当所要访问的页面不在在请求分页系统中,每当所要访问的页面不在内存时,便要产生一内存时,便要产生一缺页中断缺页中断,请求,请求OSOS将所缺页调将所缺页调入内存。入内存。与一般中断的主要区别在于:与一般中断的主要区别在于: 缺页中断在指令执行期间产生和处理中断信号,缺

34、页中断在指令执行期间产生和处理中断信号,而一般中断在一条指令执行完后检查和处理中断信而一般中断在一条指令执行完后检查和处理中断信号。号。 缺页中断返回到该指令的开始重新执行该指令,缺页中断返回到该指令的开始重新执行该指令,而一般中断返回到该指令的下一条指令执行。而一般中断返回到该指令的下一条指令执行。 一条指令在执行期间,可能产生多次缺页中断。一条指令在执行期间,可能产生多次缺页中断。4.4.地址变换机构地址变换机构 请求分页系统中的地址变换机构,是请求分页系统中的地址变换机构,是在分页系统的地址变换机构的基础上,再在分页系统的地址变换机构的基础上,再为实现虚拟存储器而增加了某些功能所形为实现

35、虚拟存储器而增加了某些功能所形成的,如产生和处理缺页中断,以及从内成的,如产生和处理缺页中断,以及从内存中换出一页的功能等等。存中换出一页的功能等等。5.5.页面置换算法页面置换算法 最优置换算法(最优置换算法(OPTOPT算法)算法) 从内存中移出以后不再使用的页面;如无这从内存中移出以后不再使用的页面;如无这样的页面,则选择以后最长时间内不需要访问的样的页面,则选择以后最长时间内不需要访问的页。这就是最优算法的思想。这种算法本身不是页。这就是最优算法的思想。这种算法本身不是一种实际的方法,因为页面访问的顺序是很难预一种实际的方法,因为页面访问的顺序是很难预知的。知的。 先进先出算法(先进先

36、出算法(FIFOFIFO算法)算法) 总是先淘汰那些驻留在内存时间最长的页面,总是先淘汰那些驻留在内存时间最长的页面,即先进入内存的页面先被置换掉。即先进入内存的页面先被置换掉。 理由是:最先进入内存的页面不再被访问的理由是:最先进入内存的页面不再被访问的可能性最大。可能性最大。 最近最少使用算法(最近最少使用算法(LRULRU算法)算法) 当需要置换一页时,选择在最近一段时间当需要置换一页时,选择在最近一段时间最少使用的页面予以淘汰。最少使用的页面予以淘汰。 ClockClock置换算法置换算法 需要硬件支持,实现代价较大。需要硬件支持,实现代价较大。如何评价算法如何评价算法? ?缺页中断率

37、缺页中断率= =不成功的访问次数不成功的访问次数/ /访问总次数访问总次数 =缺页中断次数中断次数/ /访问总次数访问总次数OPTOPT算法性能分析(算法性能分析(M=3M=3)时刻时刻 012345678910 11 12页面页面走向走向531525423525块块1块块2块块3缺页缺页中断中断OPTOPT算法性能分析(算法性能分析(M=3M=3)时刻时刻 012345678910 11 12页面页面走向走向531525423525块块1555555444555块块233333333333块块31122222222缺页缺页中断中断缺页率缺页率6/12=0.5=50%FIFOFIFO算法性能分

38、析(算法性能分析(m=3m=3)时刻时刻012345678910 11 12页面页面走向走向531525423525块块1块块2块块3缺页缺页中断中断FIFOFIFO算法性能分析(算法性能分析(m=3m=3)缺页率缺页率9/12=75%时刻时刻012345678910 11 12页面页面走向走向531525423525块块1555522223333块块233335555522块块31111444445缺页缺页中断中断LRULRU算法性能分析(算法性能分析(M=3M=3)时刻时刻 012345678910 11 12页面页面走向走向531525423525块块1块块2块块3缺页缺页中断中断LRU

39、LRU算法性能分析(算法性能分析(M=3M=3)缺页率缺页率7/12=58.3%时刻时刻 012345678910 11 12页面页面走向走向531525423525块块1555555553333块块233322222222块块31111444555缺页缺页中断中断4.4 4.4 段式管理段式管理 引入段式存储管理方式的原因:引入段式存储管理方式的原因:1 1、一个作业是由若干自然段组成,用户希望能把自、一个作业是由若干自然段组成,用户希望能把自己的作业按照逻辑关系划分为若干段,可以通过每己的作业按照逻辑关系划分为若干段,可以通过每段的名字和长度来访问。段的名字和长度来访问。2 2、分段共享。

40、程序和数据的共享是以信息的逻辑单、分段共享。程序和数据的共享是以信息的逻辑单位为基础的,若段的划分也与信息的逻辑单位相对位为基础的,若段的划分也与信息的逻辑单位相对应,则易实现共享。应,则易实现共享。3 3、分段保护。在多道程序环境下,对主存信息的保、分段保护。在多道程序环境下,对主存信息的保护,同样也是以信息的逻辑单位为基础的。护,同样也是以信息的逻辑单位为基础的。4 4、动态链接也要求以段作为管理的单位。、动态链接也要求以段作为管理的单位。5 5、动态增长。、动态增长。4.4.1 4.4.1 段式管理概述段式管理概述 1 1、用户程序划分、用户程序划分 按程序自身的逻辑关系划分为若干个程序

41、段,按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名,且有一个段号。每个程序段都有一个段名,且有一个段号。 段号从段号从0 0开始,每一段段内也从开始,每一段段内也从0 0开始编址,段开始编址,段内地址是连续的。内地址是连续的。3 3、内存分配、内存分配 以段为单位分配内存,每一个段在内存以段为单位分配内存,每一个段在内存中占据连续空间(内存随机分割,需要多少中占据连续空间(内存随机分割,需要多少分配多少),但各段之间可以不连续存放。分配多少),但各段之间可以不连续存放。段号 段内地址2 2、逻辑地址结构:二维、逻辑地址结构:二维4. 4. 段表段表 在段式存储管理方式中,系统为

42、每个段分配一个在段式存储管理方式中,系统为每个段分配一个连续的分区,而进程中的各个段可以离散放入内存中连续的分区,而进程中的各个段可以离散放入内存中不同的分区中。不同的分区中。 像页式存储管理方式那样,在系统中为每个进程像页式存储管理方式那样,在系统中为每个进程建立一个段映射表,称为建立一个段映射表,称为“段表段表”。 段表可以存放在一组寄存器中,可以提高转换速段表可以存放在一组寄存器中,可以提高转换速度;也可以将段表放在内存中。段表的作用是实现了度;也可以将段表放在内存中。段表的作用是实现了从逻辑段到物理内存区的映射。从逻辑段到物理内存区的映射。 4. 4. 段表段表作业空间(MAIN) 0

43、030K(X) 1020K(D) 2015K(S) 3010K30K20K15K10K40K80K120K150K段长基址段号(MAIN) 030K(X) 120K(D) 215K(S) 310K040K80K120K150K段表内存空间01234.4.2 4.4.2 地址转换地址转换4.4.2 4.4.2 地址转换地址转换控制寄存器段表始址段表长度2100段号 S越界1 K段长600段号01236 K4 K5002008 K9200基址位移量W82928K82928692主存物理地址有效地址4.4.4 4.4.4 段的共享段的共享4.4.4 4.4.4 段的共享段的共享editor进程1da

44、ta 1进程2editordata 2段表段长 基址16080402401608040380editordata 1data 2802402803804204.4.5 4.4.5 分段与分页的区别分段与分页的区别 (1) (1) 页是信息的物理单位,分页是为实现离页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。要而不是用户的需要。 段则是信息的逻辑单位,它含有一组其意义段则是信息的逻辑单位,它含有一组其意义相对完整的信息。相对完整的信息。 分段的目的是为了能更好地分段的目的是为了能更好地满足用户的满足用户的需要。需要。 (2) (2) 页的大小固定且由系统决定,由系统把逻页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬辑地址划分为页号和页内地址两部分,是由机器硬件实现的;件实现的; 而段的长度却不固定,决定于用户所编写的程而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。信息的性质来划分。(3) (3) 分页的作业地址空间是一维的,即单一的线分页的作业地址空间是一维的,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论