第四章 存储器管理(1-2) 2_第1页
第四章 存储器管理(1-2) 2_第2页
第四章 存储器管理(1-2) 2_第3页
第四章 存储器管理(1-2) 2_第4页
第四章 存储器管理(1-2) 2_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 存 储 器 管 理 第四章第四章 存储器管理存储器管理 4.1 4.1 程序的装入和链接程序的装入和链接 4.2 4.2 连续分配方式连续分配方式 4.3 4.3 基本分页存储管理方式基本分页存储管理方式 4.4 4.4 基本分段存储管理方式基本分段存储管理方式 4.5 4.5 虚拟存储器的基本概念虚拟存储器的基本概念 4.6 4.6 请求分页存储管理方式请求分页存储管理方式 4.7 4.7 页面置换算法页面置换算法 4.8 4.8 请求分段存储管理方式请求分段存储管理方式 第四章 存 储 器 管 理 存储器管理:存储器管理:指内存的管理,外存管理在文件部分讲述;指内存的管理,外存管理

2、在文件部分讲述; 单道程序系统:单道程序系统:内存被划分成两部分:一部分供内存被划分成两部分:一部分供OSOS使用,使用,一部分供当前正在执行的程序使用。一部分供当前正在执行的程序使用。多道程序系统:多道程序系统:存储器的存储器的用户部分用户部分必须进一步地细分,以必须进一步地细分,以适应多个进程的要求。细分的任务由操作系统动态实适应多个进程的要求。细分的任务由操作系统动态实现,这就是存储器管理。现,这就是存储器管理。存储器管理的目的:存储器管理的目的:一是方便用户使用,二是提高存储器一是方便用户使用,二是提高存储器的利用率的利用率。 4.0 基本概念补充第四章 存 储 器 管 理 1、存储器

3、管理功能主存的分配和回收:主存的分配和回收:系统应能记住每个存储区的状态;系统应能记住每个存储区的状态;实施存储器的分配;回收系统或用户释放的存储区。实施存储器的分配;回收系统或用户释放的存储区。提高主存利用率:提高主存利用率:使多道程序能使多道程序能动态动态地地共享主存共享主存,最好,最好能共享主存中的信息。能共享主存中的信息。 地址转换或重定位地址转换或重定位 主存保护:主存保护:保证进入主存的各道作业都在自己的存储空保证进入主存的各道作业都在自己的存储空间内运行,互不干扰。由硬件和软件配合完成。间内运行,互不干扰。由硬件和软件配合完成。主存扩充:主存扩充:借助于借助于虚拟存储技术虚拟存储

4、技术,为用户提供比主存空,为用户提供比主存空间大的地址空间。间大的地址空间。第四章 存 储 器 管 理 内存的每个存储单元都有一个编号,这种编号称为内存的每个存储单元都有一个编号,这种编号称为内存内存地址地址(或称为(或称为物理地址,绝对地址物理地址,绝对地址)。)。内存地址的集合称为内存地址的集合称为内存空间(或物理地址空间)。内存空间(或物理地址空间)。例例如,我们常说内存为:如,我们常说内存为:512MB要求用户用内存地址编程是非常困难的,尤其是在多道要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环境中(不知道)。程序设计的环境中(不知道)。2 2、地址映射、地址映射( (地

5、址重定位地址重定位) ) 第四章 存 储 器 管 理 用户编程所用的地址称为用户编程所用的地址称为逻辑地址(或程序地址,或逻辑地址(或程序地址,或虚地址)虚地址),由逻辑地址组成的空间称为由逻辑地址组成的空间称为逻辑地址空间逻辑地址空间(或程序地址空间)(或程序地址空间)。我们把用户程序装入内存时,或在程序执行时,对有我们把用户程序装入内存时,或在程序执行时,对有关指令或数据地址的修改称为关指令或数据地址的修改称为从程序地址到内存地址从程序地址到内存地址的地址映射,或称为地址重定位。的地址映射,或称为地址重定位。第四章 存 储 器 管 理 地址映射地址映射Load A 1200 3456 。

6、。1200物理地址空间物理地址空间Load A data1data1 3456源程序源程序Load A 200 34560100200编译编译连接连接逻辑地址空间逻辑地址空间BR=10001100第四章 存 储 器 管 理 地址映射的方式静态地址映射静态地址映射静态地址映射:静态地址映射:1 1)程序被装入内存时由操作系统的连接装入程序完成)程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换;程序的逻辑地址到内存地址的转换;2 2)地址转换工作是在程序执行)地址转换工作是在程序执行由装入程序集中一次由装入程序集中一次完成。完成。n 假定程序装入内存的首地址为假定程序装入

7、内存的首地址为BRBR,程序地址为,程序地址为VRVR,内存,内存地址为地址为MRMR,则地址映射按下式进行:,则地址映射按下式进行:MR=BR+VRMR=BR+VR第四章 存 储 器 管 理 把程序装入起始地址为把程序装入起始地址为10001000的内存区的内存区Mov r1,500Mov r1,500123412340 0100100500500600600Mov r1,1500Mov r1,15000 01000100011001100150015001600160012341234作业的地址空间作业的地址空间存储空间存储空间装入程序装入程序第四章 存 储 器 管 理 静态映射优缺点静态

8、映射优缺点优点:不需要硬件的支持,简单易实现,成本低;优点:不需要硬件的支持,简单易实现,成本低;缺点:程序必须占用连续的内存空间;一旦程序装入缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动;后不能移动;主存利用率低;难以做到程序和数据的主存利用率低;难以做到程序和数据的共享。共享。第四章 存 储 器 管 理 动态地址映射(重定位)动态地址映射(重定位)动态地址重定位:动态地址重定位:在程序执行的过程中,每次将要访问的指令或数在程序执行的过程中,每次将要访问的指令或数据逻辑地址转换为内存地址。据逻辑地址转换为内存地址。动态映射方法:动态映射方法:装入程序把程序和数据装入程序把程序和数

9、据原样装入原样装入到已分配的存储区到已分配的存储区中,然后把这个存储区的起始地址送入中,然后把这个存储区的起始地址送入重定位寄存器重定位寄存器中。在程序执中。在程序执行时,再将相对地址转换成绝对地址。行时,再将相对地址转换成绝对地址。硬件支持:硬件支持:在动态地址重定位机构中,有一个在动态地址重定位机构中,有一个基地址寄存器基地址寄存器BRBR和一和一个个程序地址寄存器程序地址寄存器VRVR,一个,一个内存地址寄存器内存地址寄存器MRMR。 转换过程:转换过程:MR=BR+VRMR=BR+VR第四章 存 储 器 管 理 把程序装入起始地址为把程序装入起始地址为10001000的内存区的内存区1

10、23412340 0100100500500599599作业的地址空间作业的地址空间0 01000100011001100150015001599159912341234存储空间存储空间10001000+ +重定位寄存器重定位寄存器逻辑地址逻辑地址VRVR物理地址物理地址MRMRMOV r1MOV r1, 5050 MOV r1MOV r1, 5050 第四章 存 储 器 管 理 动态地址映射的过程动态地址映射的过程程序装入内存后,它所占用的内存区的程序装入内存后,它所占用的内存区的首地址首地址由系统送入由系统送入基地址寄存器基地址寄存器BRBR中。中。在程序执行的过程中,若要访问内存,将访问

11、的逻辑地址在程序执行的过程中,若要访问内存,将访问的逻辑地址送入送入VRVR中。中。 地址转换机构把地址转换机构把VRVR和和BRBR中的内容相加,并将结果送入中的内容相加,并将结果送入MRMR中,中,作为实际访问的地址。作为实际访问的地址。第四章 存 储 器 管 理 动态重定位优缺点动态重定位优缺点优点:优点:1 1)程序占用的内存空间是动态可变的,当程序从程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器某个存储区移到另一个区域时,只需要修改相应的寄存器BRBR的内容即可;的内容即可;2 2)一个程序不一定要求占用一个连续的)一个程序不一定要求占用一

12、个连续的内存空间,可以部分地装入程序运行;内存空间,可以部分地装入程序运行;3 3)便于多个进程)便于多个进程共享同一个程序的代码。共享同一个程序的代码。动态地址重定位的代价:动态地址重定位的代价:1 1)需要硬件的支持;)需要硬件的支持;2 2)实现存)实现存储管理的软件算法较为复杂。储管理的软件算法较为复杂。第四章 存 储 器 管 理 4.1 程序的装入和链接程序的装入和链接 图 4-1 对用户程序的处理步骤 库链接程序装入模块装入程序编译程序产生的目标模块第一步第二步第三步内存可执行程序(文件)编译链接装入二进制内存映像第四章 存 储 器 管 理 4.1.1 4.1.1 程序的装入程序的

13、装入1. 1. 绝对装入方式绝对装入方式(Absolute Loading Mode) (Absolute Loading Mode) 程序中所使用的绝对地址,既可在编译或汇编时给出,程序中所使用的绝对地址,既可在编译或汇编时给出, 也可也可由程序员直接赋予;由程序员直接赋予;编译程序生成的目标模块其逻辑地址与要装入内存的物理地编译程序生成的目标模块其逻辑地址与要装入内存的物理地址相同;址相同;缺点:单道程序可用,多道程序环境不能用。缺点:单道程序可用,多道程序环境不能用。 采用绝对地址装入,目前很少使用采用绝对地址装入,目前很少使用第四章 存 储 器 管 理 2. 2. 可重定位装入方式可重

14、定位装入方式(Relocation Loading Mode) (Relocation Loading Mode) 图 4-2 作业装入内存时的情况 LOAD 1,2500365LOAD 1,2500365100001100012500150005000250010000作业地址空间内存空间又称静态重定位:地址变换在装入时又称静态重定位:地址变换在装入时一次完成,其后不能移动。一次完成,其后不能移动。逻辑地址(相对地址)逻辑地址(相对地址)物理地址物理地址(绝对地(绝对地址)址)LOAD 1,LOAD 1,1250012500第四章 存 储 器 管 理 3. 3. 动态运行时装入方式动态运行时

15、装入方式(Denamle Run-time Loading) (Denamle Run-time Loading) 动态运行时装方式:动态运行时装方式:装入内存后的所有地址都仍是相对装入内存后的所有地址都仍是相对地址;地址;逻辑地址到物理地址的变换要推迟到程序真正逻辑地址到物理地址的变换要推迟到程序真正执行时才进行;执行时才进行;为使地址转换不影响程序执行速度,为使地址转换不影响程序执行速度,必须使用硬件支持。必须使用硬件支持。第四章 存 储 器 管 理 4.1.2 4.1.2 程序的链接程序的链接 1. 1. 静态链接方式静态链接方式(Static Linking) (Static Link

16、ing) 图 4-3 程序链接示意图 模块 ACALL B;Return;0L1模块 BCALL C;Return;0M1模块 CReturn;0N10模块 AJSR“L”Return;L1模块 BJSR“LM”Return;LLM1LMLMN1模块 CReturn;(a) 目标模块(b) 装入模块链接前,链接前,每个模每个模块都有块都有各自的各自的相对起相对起始地址始地址0 0链接后,链接后,每个模每个模块使用块使用同一个同一个相对起相对起始地址始地址0 0名空间名空间逻辑地址空间逻辑地址空间解决:对相对地址进行修改;变换外部调用符解决:对相对地址进行修改;变换外部调用符号号第四章 存 储

17、器 管 理 2. 2. 装入时动态链接装入时动态链接(Load(Loadtime Dynamic Linking) time Dynamic Linking) 基本思想:基本思想:源程序被编译生成的目标模块,是在装入内源程序被编译生成的目标模块,是在装入内存时,边装入边连接。装入程序根据外部模块调用而存时,边装入边连接。装入程序根据外部模块调用而逐个装入和连接。装入时动态链接方式有以下优点逐个装入和连接。装入时动态链接方式有以下优点 便于修改和更新:便于修改和更新:各个模块的修改极易编译和连接;各个模块的修改极易编译和连接; 便于实现对目标模块的共享:便于实现对目标模块的共享:将内存中的一个模

18、块可将内存中的一个模块可以连接到多个程序中。以连接到多个程序中。 要运行的程序都必须在装入时,全部连接调入内存。要运行的程序都必须在装入时,全部连接调入内存。 第四章 存 储 器 管 理 3. 3. 运行时动态链接运行时动态链接(Run-time Dynamic Linking) (Run-time Dynamic Linking) 动态链接方式:动态链接方式:将对某些模块的链接推迟到执行时才实施,将对某些模块的链接推迟到执行时才实施,亦即,在执行过程中,当发现一个被调用模块尚未装亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由入内存时,立即由OSOS去找到该模块并将之装入内存,

19、去找到该模块并将之装入内存,把它链接到调用者模块上。特点如下:把它链接到调用者模块上。特点如下:特点:特点:凡在执行过程中未被用到的目标模块,都不会被调凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。的装入过程,而且可节省大量的内存空间。 第四章 存 储 器 管 理 4.2 4.2 连续分配方式连续分配方式4.2.1 4.2.1 单一连续分配单一连续分配 特征:特征:最简单的一种存储管理方最简单的一种存储管理方式,但只能用于单用户、单任务式,但只能用于单用户、单任务的操

20、作系统中;常把内存分为系的操作系统中;常把内存分为系统区和用户区两部分,系统区仅统区和用户区两部分,系统区仅提供给提供给OSOS使用,通常是放在内使用,通常是放在内存的低址部分;用户区是指除系存的低址部分;用户区是指除系统区以外的全部内存空间,统区以外的全部内存空间, 提供提供给用户使用。给用户使用。 OS用户区用户区第四章 存 储 器 管 理 4.2.2 4.2.2 固定分区分配固定分区分配 1. 1. 划分分区的方法划分分区的方法 分区大小相等,分区大小相等, 即使所有的内存分区大小相等。即使所有的内存分区大小相等。缺点:缺缺点:缺乏灵活性,大作业无法运行,小作业浪费空间。乏灵活性,大作业

21、无法运行,小作业浪费空间。 分区大小不等,即划分为小、中、大不等的固定分区。分区大小不等,即划分为小、中、大不等的固定分区。优优点:灵活性好。点:灵活性好。 分配方法:分配方法:将用户空间划分为若干个固定大小的区域,在每个分将用户空间划分为若干个固定大小的区域,在每个分区中装入一道作业;有几个分区,就有几道并发的作业;有区中装入一道作业;有几个分区,就有几道并发的作业;有空闲分区时,可调入一适当大小的作业;最简单的一种空闲分区时,可调入一适当大小的作业;最简单的一种多道多道程序程序存储管理方法。存储管理方法。第四章 存 储 器 管 理 2. 2. 内存分配内存分配 :为了便于内存分配,将分区按

22、照大小排队,并建为了便于内存分配,将分区按照大小排队,并建立一个分区表。如图所示。当为作业分配空间时,分配程序按照此立一个分区表。如图所示。当为作业分配空间时,分配程序按照此表检索以合适分区分配;否则,拒绝分配。表检索以合适分区分配;否则,拒绝分配。缺点:缺点:空间浪费。空间浪费。图 4-4 固定分区使用表 20K第四章 存 储 器 管 理 4.2.3 4.2.3 动态分区分配动态分区分配 1. 1. 分区分配中的数据结构分区分配中的数据结构 (1) 空闲分区表。 (2) 空闲分区链。 图 4-5 空闲链结构 前向指针N20N个字节可用后向指针N20分配思想:分配思想:根据进程的实际需要,动态

23、的为进程分配(切分)内根据进程的实际需要,动态的为进程分配(切分)内存空间,即:存空间,即:需要多大,分配多大需要多大,分配多大。提高内存的利用率。提高内存的利用率。第四章 存 储 器 管 理 未分配区表用空闲区链表表示:未分配区表用空闲区链表表示:0010k10k270k00730k730k 100k100k100k270k 空闲区链空闲区链head第四章 存 储 器 管 理 2. 2. 分区分配算法分区分配算法 首次适应算法首次适应算法FFFF:空闲分区按地址递增成链表;每次分配从链首空闲分区按地址递增成链表;每次分配从链首依次查找一空间首次满足作业的空闲分区;再从该分区中切出与依次查找一

24、空间首次满足作业的空闲分区;再从该分区中切出与作业等量的空间分之,余者挂到链表中;若找不到满足作业空间作业等量的空间分之,余者挂到链表中;若找不到满足作业空间要求的空闲分区,分配失败。要求的空闲分区,分配失败。优缺点:优缺点:低地址部分将产生多个较小的空闲分区(碎片),增加低地址部分将产生多个较小的空闲分区(碎片),增加分配开销。分配开销。问题:问题:如何从空闲分区表或链表中,选择一分区分配个作业,如何从空闲分区表或链表中,选择一分区分配个作业,常用的算法如下:常用的算法如下:第四章 存 储 器 管 理 循环首次适应算法:循环首次适应算法:该算法是由首次适应算法演变而成的,区别该算法是由首次适

25、应算法演变而成的,区别仅是从上次已分配分区的下一个分区依次查找首次满足作业的空仅是从上次已分配分区的下一个分区依次查找首次满足作业的空闲分区,并从中划分出作业需要的分区。闲分区,并从中划分出作业需要的分区。实现方法:实现方法:起始循环指针起始循环指针+ +循环空闲分区链表循环空闲分区链表 最佳适应算法:最佳适应算法:空闲链表依照空间大小排列,每次从链首为作业空闲链表依照空间大小排列,每次从链首为作业找一个大小最合适的分区分配。找一个大小最合适的分区分配。缺点:缺点:最佳适应必将产生最小的空闲碎片。最佳适应必将产生最小的空闲碎片。第四章 存 储 器 管 理 3. 3. 分区分配操作分区分配操作

26、1)1)分配内存操作分配内存操作 分配操作如左分配操作如左图所示图所示从头开始查表检索完否?m.sizeu.size?m.sizeu.sizesize?从该分区中划出u.size大小的分区将该分区分配给请求者修改有关数据结构返回返回继续检索下一个表项将该分区从链中移出YNNYYN第四章 存 储 器 管 理 2)2)回收内存操作回收内存操作 回收的分区有回收的分区有4 4种情况:与前、后、前后空分区相邻,如下图所示。种情况:与前、后、前后空分区相邻,如下图所示。图 4-7 内存回收时的情况 第四章 存 储 器 管 理 当回收分区与前后空闲分区均不相邻时,为回收分区建当回收分区与前后空闲分区均不相

27、邻时,为回收分区建立一个空闲分区结点,并插入链表适当位置。立一个空闲分区结点,并插入链表适当位置。回收分区回收分区第四章 存 储 器 管 理 4.2.4 4.2.4 可重定位分区分配可重定位分区分配 1. 1. 动态重定位的引入:动态重定位的引入:动态回收碎片,将小而不可用的空闲分区拼接动态回收碎片,将小而不可用的空闲分区拼接成较大的一个空闲分区。移动作业分区,必然要重定位。成较大的一个空闲分区。移动作业分区,必然要重定位。 图 4-8 紧凑的示意 操作系统用户程序1用户程序310 KB30 KB用户程序614 KB用户程序926 KB操作系统用户程序1用户程序3用户程序6用户程序980 KB

28、(a) 紧凑前(b) 紧凑后第四章 存 储 器 管 理 2.2.动态重定位的实现:动态重定位的实现:作业在内存中仍保持逻辑地址,在执作业在内存中仍保持逻辑地址,在执行时再实施重定位。具体过程如下图。行时再实施重定位。具体过程如下图。图 4-9 动态重定位示意图 LOAD1,25003650100250050002500相对地址10000重定位寄存器LOAD1,250036510000101001250015000作业J处理机一侧 存储器一侧主存第四章 存 储 器 管 理 3. 3. 动态重定位分区分配算法:在动态分区算法动态重定位分区分配算法:在动态分区算法增加了回收碎片增加了回收碎片的功能。

29、的功能。图 4-10 动态分区分配算法流程图 请求分配u.size分区检索空闲分区链(表)找到大于u.size的可用区否?按动态分区方式进行分配修改有关的数据结构返回分区号及首批空闲分区总和u.size?进行紧凑形成连续空闲区修改有关的数据结构否是无法分配返回否第四章 存 储 器 管 理 作业4-1第四章 存 储 器 管 理 4.2.5 4.2.5 对换对换(Swapping) (Swapping) 1. 1. 对换的引入对换的引入 对换定义:对换定义:对换对换是指把内存中暂时不能运行的进程或者暂时不用的程是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存

30、空间,再把已具序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。备运行条件的进程或进程所需要的程序和数据调入内存。对换目的:对换目的:提高内存的利用率。提高内存的利用率。进程对换:进程对换:如果对换是以整个进程为单位进行的,则称为进程对换或如果对换是以整个进程为单位进行的,则称为进程对换或整体对换;整体对换;页面对换:页面对换:如果对换是以页或段为单位进行的,称为页面对换或分段如果对换是以页或段为单位进行的,称为页面对换或分段对换,统称部分对换。对换,统称部分对换。在实现虚拟存储系统时候,依靠页面或分在实现虚拟存储系统时候,依靠页面或分段

31、对换。段对换。第四章 存 储 器 管 理 2. 2. 对换空间的管理对换空间的管理 将外存磁盘空间划分为文件区和对换区:将外存磁盘空间划分为文件区和对换区:文件区用于存放文件,管文件区用于存放文件,管理以提高存储空间的利用率为目的;后者用于存储对换的进程,故理以提高存储空间的利用率为目的;后者用于存储对换的进程,故应以提高对换速度为目标。应以提高对换速度为目标。 对换去空间管理:对换去空间管理:建立对换区空闲空间分区表(链)数据结构。建立对换区空闲空间分区表(链)数据结构。其其形式与内存动态分区分配方式中的空闲分区表或空闲分区链。在空形式与内存动态分区分配方式中的空闲分区表或空闲分区链。在空闲

32、分区表中的每个表项中应包含两项,对换区的首址及其大小,它闲分区表中的每个表项中应包含两项,对换区的首址及其大小,它们的单位是盘块号和盘块数。们的单位是盘块号和盘块数。实现进程对换系统必须具备三个功能:实现进程对换系统必须具备三个功能:对换空间管理、进对换空间管理、进程的换出和进程的换入。程的换出和进程的换入。第四章 存 储 器 管 理 2. 2. 对换空间的管理对换空间的管理 对换区分配:对换区分配:采用连续分配,雷同内存动态分区方式的分配算法:采用连续分配,雷同内存动态分区方式的分配算法:可用首次适应算法,循环首次适应算法或最佳适应算法。可用首次适应算法,循环首次适应算法或最佳适应算法。 对

33、换区回收:对换区回收:也与内存动态分区回收算法雷同,要考虑回收区与也与内存动态分区回收算法雷同,要考虑回收区与前后地址相邻(磁盘块号)分区的合并。前后地址相邻(磁盘块号)分区的合并。第四章 存 储 器 管 理 3. 3. 进程的换出与换入进程的换出与换入 进程的换出:进程的换出:每当创建一新进程而又无足够的内存空间时,系统每当创建一新进程而又无足够的内存空间时,系统应将某进程换出。应将某进程换出。 换出过程:换出过程:系统首先选择处于阻塞状态且优先级最低的进程作为系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,并将该进程的程序和数据安全传送到磁盘的对换区上;换出进程,并将该进程的程序和

34、数据安全传送到磁盘的对换区上;然后回收该进程所占用的内存空间,并对该进程的进程控制块做然后回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改(改什么?)。相应的修改(改什么?)。 进程的换入:进程的换入:系统定时找出系统定时找出“静止就绪静止就绪”状态的进程,并将其中状态的进程,并将其中换出时间最久的进程作为换入进程换入,直至已无可换入的进程换出时间最久的进程作为换入进程换入,直至已无可换入的进程 第四章 存 储 器 管 理 4.3 4.3 基本分页存储管理方式基本分页存储管理方式 问题:问题:由于为进程连续分配内存空间,将产生大量碎片;为了利用碎片必由于为进程连续分配内存空间,将

35、产生大量碎片;为了利用碎片必须将其合并,又需要系统开销。能否给进程离散(不连续)地分配内须将其合并,又需要系统开销。能否给进程离散(不连续)地分配内存空间,解决这些问题?存空间,解决这些问题?离散分配:离散分配:当前使用最多的内存分配方式是分页管理方式和分段管理方式;当前使用最多的内存分配方式是分页管理方式和分段管理方式;分页是页面为单位进行内存分配,分段方式是以段为单位进行内存分分页是页面为单位进行内存分配,分段方式是以段为单位进行内存分配。配。基本分页(段)存储管理方式:基本分页(段)存储管理方式:如果分页或分段存储管理方式中不具备页如果分页或分段存储管理方式中不具备页面或分段对换功能,将

36、其称之为基本分页或基本分段存储管理方式。面或分段对换功能,将其称之为基本分页或基本分段存储管理方式。第四章 存 储 器 管 理 4.3.1 4.3.1 页面与页表页面与页表 1. 1. 页面与物理块页面与物理块 页面:页面:将一个进程的逻辑地址空间分成若干个大小相等的片,称为页将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页顺序编号为面或页,并为各页顺序编号为0 0、1 1、2 2、n n。 物理块:物理块:把内存空间分成与页面相同大小的若干个存储块,称为把内存空间分成与页面相同大小的若干个存储块,称为( (物理物理) )块或页框块或页框(frame)(frame), 也

37、同样为它们加以编号,如也同样为它们加以编号,如0 0块、块、1 1块等等。块等等。 内存分配原理:内存分配原理:在为进程分配内存时,以页面为单位给进程离散分配在为进程分配内存时,以页面为单位给进程离散分配与页面数等量的物理块,并分别装入到相应的物理块中与页面数等量的物理块,并分别装入到相应的物理块中(全部转入)(全部转入) 页内碎片:页内碎片:由于进程的最后一页经常装不满一块而形成了不可利用的由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为碎片,称之为“页内碎片页内碎片”。第四章 存 储 器 管 理 举例:举例:如左图所示,如左图所示,按照基本分页存按照基本分页存储管理方式为进储

38、管理方式为进程分配内存空间。程分配内存空间。设页面大小为设页面大小为1KB1KB第四章 存 储 器 管 理 页面大小设定:页面大小设定:在分页系统中的页面其大小应适中,且页面大小应在分页系统中的页面其大小应适中,且页面大小应是是2 2的幂,通常为的幂,通常为512 B8 KB512 B8 KB。 页面大小利弊:页面大小利弊:若页面太小,若页面太小,内存碎片减小,从而减少了内存碎片内存碎片减小,从而减少了内存碎片的总空间,提高内存利用率;但另一方面也会使每个进程占用较多的总空间,提高内存利用率;但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存等;的页面,从而导致进程的

39、页表过长,占用大量内存等;若页面较大,若页面较大,可以减少页表的长度,节省内存,但却又会使页内碎片增大。可以减少页表的长度,节省内存,但却又会使页内碎片增大。第四章 存 储 器 管 理 2、逻辑地址结构页号页号 页内地址页内地址0111231页号页号P页内位移量页内位移量W编号编号01048575相对地址相对地址04095最大页面数: 220=1M个页面大小: 212=4KB逻辑空间: 0232-1一维的,并针对程序员第四章 存 储 器 管 理 逻辑地址空间中的地址为逻辑地址空间中的地址为A A,页面大小为,页面大小为L L,则有:,则有: P=INTA/L d=A MOD L例:A=2170

40、B,L=1KB时,则有P=2,d=122第四章 存 储 器 管 理 3 3、页表、页表分页存储管理方式按照进程页面的多少,为进程离散分分页存储管理方式按照进程页面的多少,为进程离散分配相同数量的物理块,为了记录每一页所分配的物理块,配相同数量的物理块,为了记录每一页所分配的物理块,必须为每个进程建立一个页表必须为每个进程建立一个页表每个进程一个页表,每个页面一个表项;每个进程一个页表,每个页面一个表项;表项:表项:页号页号:0 0、1 1、2 2、n n;块号块号:离散分配形成;:离散分配形成;存取控制存取控制:读写控制:读写控制第四章 存 储 器 管 理 页表示意图页表示意图 图 4-11

41、页表的作用 用户程序0 页1 页2 页3 页4 页5 页n 页页表页号块号02132638495内存012345678910第四章 存 储 器 管 理 基本分页系统多进程内存分配示意图基本分页系统多进程内存分配示意图第四章 存 储 器 管 理 4.3.2 4.3.2 地址变换机构地址变换机构 1.1.基本的地址变换机构基本的地址变换机构 :实现逻辑地址向物理地址的转换。由于页实现逻辑地址向物理地址的转换。由于页内地址与块内地址一一对应,所以地址转换关键是将逻辑地址中内地址与块内地址一一对应,所以地址转换关键是将逻辑地址中的页号转换为内存中的物理块号。的页号转换为内存中的物理块号。2.2.转换机

42、构设施:转换机构设施:页表寄存器:页表寄存器:存放进程页表在内存中的起地址和存放进程页表在内存中的起地址和页表长度(进程不执行时放在页表长度(进程不执行时放在PCBPCB中,执行时调入寄存器中);中,执行时调入寄存器中);物理地址寄存器:物理地址寄存器:存放转换后的物理地址(内存地址);存放转换后的物理地址(内存地址);3.3.查找表项:查找表项:表项地址表项地址= =页表起始地址页表起始地址+ +页号页号* *表项长度;表项长度;4.4.地址转换过程如下图。地址转换过程如下图。 图 4-12 分页系统的地址变换机构 第四章 存 储 器 管 理 页表寄存器页表始址页表长度页号(3)页内地址逻辑

43、地址L越界中断1块号b页表页号012物理地址3第四章 存 储 器 管 理 例例 说明运行进程的地址变换过程。说明运行进程的地址变换过程。 如下图所示,进程程序地址空间共有如下图所示,进程程序地址空间共有7 7个页,每页的大小个页,每页的大小为为10241024。其对应的主存块在页表中已列出。假定页表在主。其对应的主存块在页表中已列出。假定页表在主存始址为存始址为500500。若该程序从第。若该程序从第0 0页开始运行,且现程序计数页开始运行,且现程序计数器内容为:器内容为:0100程序计数器:程序计数器:逻辑地址逻辑地址第四章 存 储 器 管 理 页表寄存器页表寄存器程序计数器程序计数器500

44、 7500 70 (0 (页号)页号) 100100(页内地址)(页内地址) + +页表页表5 5(内存块号)(内存块号) 100100(页内地址)(页内地址)1 12 23 34 45 50 01 12 23 34 45 56 65 57 79 91515131310101616500500每页的大小每页的大小为为10241024内存地址:内存地址:5 51024+100=52201024+100=5220500+0=500500+0=500第四章 存 储 器 管 理 例:例:有一系统采用页式存储管理,有一作业大小是有一系统采用页式存储管理,有一作业大小是8KB8KB,页,页大小为大小为2K

45、B2KB,依次装入内存的第,依次装入内存的第7 7、9 9、1010、5 5块,试将虚块,试将虚地址地址71457145,34123412转换成内存地址。转换成内存地址。第四章 存 储 器 管 理 虚地址虚地址 71457145P P7145 7145 2048 2048 3 3W W7145 mod 20487145 mod 2048 10011001MR=5MR=5* *2048+1001=112412048+1001=11241虚地址虚地址71457145的内存地址是:的内存地址是:1124111241虚地址虚地址 34123412P P3412 3412 2048 2048 1 1W

46、W3412 mod 20483412 mod 2048 13641364MR=9MR=9* *2048+1364=197962048+1364=19796虚地址虚地址34123412的内存地址是:的内存地址是:1979619796第四章 存 储 器 管 理 2 2、具有快表的地址变换机构、具有快表的地址变换机构问题:问题:两次访问内存两次访问内存( (页表,数据页表,数据) ),运行速度下降一半;,运行速度下降一半;解决方法:解决方法:联想存储器,快表,存放当前访问的页表项;联想存储器,快表,存放当前访问的页表项;思路:思路:将已访问的页号的页表项放入快表,方便下次访问,将已访问的页号的页表项

47、放入快表,方便下次访问,提高访问速度,争取一次访问内存;提高访问速度,争取一次访问内存;联想存储器:联想存储器:通常只要设定通常只要设定8 81616个寄存器作为联想存储器,个寄存器作为联想存储器,即可使程序执行速度大大提高。即可使程序执行速度大大提高。第四章 存 储 器 管 理 具有快表的地址变换过程示意图具有快表的地址变换过程示意图 图 4-13 具有快表的地址变换机构 页表寄存器页表始址页表长度页号页内地址逻辑地址L越界中断块号b页表页号页号输入寄存器块号bb快表d物理地址第四章 存 储 器 管 理 4.3.3 4.3.3 两级和多级页表两级和多级页表 问题:问题:现代的大多数计算机系统

48、,都支持非常大的逻辑地址现代的大多数计算机系统,都支持非常大的逻辑地址空间空间(2(23232226464) )。在这样的环境下,页表就变得非常大,要占。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。例如,对于一个具有用相当大的内存空间。例如,对于一个具有3232位逻辑地址空位逻辑地址空间的分页系统,规定页面大小为间的分页系统,规定页面大小为4 KB4 KB即即2 212 12 B B,则在每个进程,则在每个进程页表中的页表项可达页表中的页表项可达1 1兆个之多,而且还要求是连续的。兆个之多,而且还要求是连续的。解决办法:解决办法: 采用离散分配方式存放页表;采用离散分配方式存放页

49、表; 使用对换方式使用对换方式调入、调出页表。调入、调出页表。 第四章 存 储 器 管 理 1. 1. 两级页表两级页表(Two-Level Page Table) (Two-Level Page Table) 逻辑地址结构可描述如下:页面大小为逻辑地址结构可描述如下:页面大小为4K4K(1212位),每页包含位),每页包含10241024个页表项(个页表项(P2P2,占,占1010位);总共有位);总共有10241024个分页(个分页(P1P1,占,占1010位)位)第四章 存 储 器 管 理 图 4-14 两级页表结构 101110780121742n第0页页表1460121023第1页页表114115011023外部页表012345671141151468第n页页存空间第四章 存 储 器 管 理 图 4-15 具有两级页表的地址变换机构 外部页号P1P2外部页内地址页内地址d逻辑地址外部页表寄存器外部页表db页表页表物理地址二级页表地址转换过程示意图二级页表地址转换过程示意图第四章 存 储 器 管 理 2. 2. 多级页表多级页表 对于对于3232位的机器,采用两级页表结构是合适的;但对于位的机器,采用两级页表结构是合适的;但对于6464位的机器,位的机器,如果页面大小仍采用如果页面大小仍采用4 KB4 KB即即2 21212 B B,那么还剩下

温馨提示

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

评论

0/150

提交评论