1、第4章 存放器管理计算机科学与技术级专升本计算机科学与技术级专升本第1页内存管理概念n1.内存管理功效内存管理功效存放管理主要任务时为多道程序运行提供良好环境,存放管理主要任务时为多道程序运行提供良好环境,方便用户使用存放器、提升存放器利用率以及从逻方便用户使用存放器、提升存放器利用率以及从逻辑上扩充存放器。为此,存放管理应含有以下功效:辑上扩充存放器。为此,存放管理应含有以下功效:内存分配和回收内存分配和回收地址变换地址变换扩充内存容量扩充内存容量存放保护存放保护第2页内存管理概念n2.应用程序处理过程应用程序处理过程用户先编辑好应用程序,经过相关语言编译程序将用户先编辑好应用程序,经过相关
2、语言编译程序将其编译成若干个目标模块,再经过链接程序将编译其编译成若干个目标模块,再经过链接程序将编译后目标模块以及它们所需要库函数链接在一起,形后目标模块以及它们所需要库函数链接在一起,形成一个完整装入模块,最终经过装入程序将它们装成一个完整装入模块,最终经过装入程序将它们装入内存进行运行。入内存进行运行。第3页内存管理概念程序链接方式:程序链接方式:静态链接:在程序运行之前,先把各个目标模块及它们所静态链接:在程序运行之前,先把各个目标模块及它们所需要库函数链接成一个完整可执行程序,以后不再拆开。需要库函数链接成一个完整可执行程序,以后不再拆开。装入时动态链接:将应用程序编译后所得到一组目
3、标模块装入时动态链接:将应用程序编译后所得到一组目标模块在装入内存时采取边装入边链接方式。在装入内存时采取边装入边链接方式。运行时动态链接:对一些目标模块链接直到程序运行时才运行时动态链接:对一些目标模块链接直到程序运行时才去对它进行链接,其优点是便于修改和更新,便于实现目去对它进行链接,其优点是便于修改和更新,便于实现目标模块共享。标模块共享。第4页内存管理概念程序装入方式程序装入方式绝对装入:在编译时就知道程序将要驻留内存地址,编译绝对装入:在编译时就知道程序将要驻留内存地址,编译程序产生绝对地址目标代码。不适合多道程序设计。程序产生绝对地址目标代码。不适合多道程序设计。可重定位装入:依据
4、内存当前使用情况,将装入模块装入可重定位装入:依据内存当前使用情况,将装入模块装入到内存适当位置,地址变换通常是在装入时一次性完成,到内存适当位置,地址变换通常是在装入时一次性完成,之后都不再改变,也称为静态重定位。之后都不再改变,也称为静态重定位。特点:在一个作业特点:在一个作业装入内存时必须分配其要求全部内存空间,另外,不能在装入内存时必须分配其要求全部内存空间,另外,不能在内存中移动或增加内存空间。内存中移动或增加内存空间。动态运行装入:允许程序运行时在内存中移动位置,把装动态运行装入:允许程序运行时在内存中移动位置,把装入模块装入到内存后全部地址都是相对地址,只有到程序入模块装入到内存
5、后全部地址都是相对地址,只有到程序需要真正执行时才把相对地址转换成绝对地址,也称为动需要真正执行时才把相对地址转换成绝对地址,也称为动态重定位。态重定位。特点:能够将程序分配到不连续存放区中,课特点:能够将程序分配到不连续存放区中,课装入部分代码。装入部分代码。第5页交换与覆盖n交换(交换(Swappin)技术)技术交换技术就是把暂时不用某个程序及数据部分(或交换技术就是把暂时不用某个程序及数据部分(或全部)从内存一到外存中去,方便腾出必要内存空全部)从内存一到外存中去,方便腾出必要内存空间;或把指定程序或数据从外村读到对应内存中,间;或把指定程序或数据从外村读到对应内存中,并将控制权转给它,
6、让其在系统上运行一个内存扩并将控制权转给它,让其在系统上运行一个内存扩充技术。充技术。交换主要是在进程或作业之间进行;覆盖主要在同交换主要是在进程或作业之间进行;覆盖主要在同一个作业或进程中进行。一个作业或进程中进行。第6页交换与覆盖n覆盖(覆盖(Overlay)技术)技术覆盖管理技术就是把一个大程序划分为一系列覆盖,覆盖管理技术就是把一个大程序划分为一系列覆盖,每个覆盖就是一个相对独立程序单位,把程序执行每个覆盖就是一个相对独立程序单位,把程序执行时并不要求同时装入内存覆盖组成一组,称为覆盖时并不要求同时装入内存覆盖组成一组,称为覆盖段,将一个覆盖段分配到同一个存放区域,这个存段,将一个覆盖
7、段分配到同一个存放区域,这个存放区域称为覆盖区,它与覆盖段一一对应。放区域称为覆盖区,它与覆盖段一一对应。覆盖技术要求程序员必须把一个程序划分成不一样覆盖技术要求程序员必须把一个程序划分成不一样程序段,并要求好它们执行和覆盖次序,操作系统程序段,并要求好它们执行和覆盖次序,操作系统依据程序员提供覆盖结构来完成程序段之间覆盖依据程序员提供覆盖结构来完成程序段之间覆盖特点:打破了必须将一个进程全部信息装入主存后特点:打破了必须将一个进程全部信息装入主存后才能运行限制才能运行限制第7页连续分配方式p固定分区分配固定分区分配划分分区方法:分区大小相等、分区大小不等划分分区方法:分区大小相等、分区大小不
8、等内存分配:将分区按大小进行排序,建立一张分区使内存分配:将分区按大小进行排序,建立一张分区使用表用表优点:可用于多道程序系统最简单存放分配,无外部优点:可用于多道程序系统最简单存放分配,无外部碎片碎片缺点:不能实现多进程共享一个主存区,所以存放空缺点:不能实现多进程共享一个主存区,所以存放空间利用率较低,有内部碎片。间利用率较低,有内部碎片。第8页连续分配方式p可变分区分配可变分区分配数据结构:空闲分区表、空闲分区链数据结构:空闲分区表、空闲分区链分配算法:分配算法:(1)首次适应)首次适应优点:优先利用内存低址部分内存空间,无内部碎片优点:优先利用内存低址部分内存空间,无内部碎片缺点:低址
9、部分不停划分,有外部碎片;每次查找从低址缺点:低址部分不停划分,有外部碎片;每次查找从低址部分开始,增加了查找开销。部分开始,增加了查找开销。要求:空闲分区表或空闲分区链按地址从低到高排列要求:空闲分区表或空闲分区链按地址从低到高排列循环首次适应、最正确(差)适应循环首次适应、最正确(差)适应第9页连续分配方式p可变分区分配可变分区分配数据结构:空闲分区表、空闲分区链数据结构:空闲分区表、空闲分区链分配算法:分配算法:(2)循环首次适应)循环首次适应优点:使内存空闲分区分布均匀,降低查找开销,无内部优点:使内存空闲分区分布均匀,降低查找开销,无内部碎片碎片缺点:会造成缺乏大空闲分区,有外部碎片
10、缺点:会造成缺乏大空闲分区,有外部碎片要求:空闲分区表或空闲分区链按地址从低到高排列要求:空闲分区表或空闲分区链按地址从低到高排列第10页连续分配方式p可变分区分配可变分区分配数据结构:空闲分区表、空闲分区链数据结构:空闲分区表、空闲分区链分配算法:分配算法:(3)最正确适应算法)最正确适应算法优点:产生外部碎片很小,无内部碎片优点:产生外部碎片很小,无内部碎片缺点:产生许多难以利用小空闲区,仍有外部碎片缺点:产生许多难以利用小空闲区,仍有外部碎片要求:空闲分区表或空闲分区链按其容量从小到大排列要求:空闲分区表或空闲分区链按其容量从小到大排列(4)最坏适应算法)最坏适应算法优点:使得留下来空闲
11、区较大,便于下次利用,无内部碎片优点:使得留下来空闲区较大,便于下次利用,无内部碎片缺点:大空闲区不轻易保留,有外部碎片缺点:大空闲区不轻易保留,有外部碎片要求:空闲分区表或空闲分区链按其容量从大到小排列要求:空闲分区表或空闲分区链按其容量从大到小排列第11页连续分配方式p可变分区分配可变分区分配数据结构:空闲分区表、空闲分区链数据结构:空闲分区表、空闲分区链分配算法:分配算法:回收:合并相邻空闲区回收:合并相邻空闲区拼接技术拼接技术分区存放保护:分区存放保护:上下界存放器方法、基址限长存放器方法上下界存放器方法、基址限长存放器方法动态分区分配优缺点动态分区分配优缺点优点:实现了多道程序共享主
12、存、管理方案相对简单,不优点:实现了多道程序共享主存、管理方案相对简单,不需要更多软硬件开销,实现存放保护伎俩比较简单需要更多软硬件开销,实现存放保护伎俩比较简单缺点:主存利用不够充分,即存在内部碎片,无法实现多缺点:主存利用不够充分,即存在内部碎片,无法实现多进程共享存放器信息,无法实现主存扩充进程共享存放器信息,无法实现主存扩充第12页虚拟内存管理n虚拟存放器定义虚拟存放器定义n实现虚拟存放技术硬件支持实现虚拟存放技术硬件支持要有相当数量外存:足以存放多个用户程序要有相当数量外存:足以存放多个用户程序要有一定容量内存:因为在处理机上运行程序必须要有一定容量内存:因为在处理机上运行程序必须有
13、一部分信息存放在内存中。有一部分信息存放在内存中。地址变换机构:以动态实现虚地址到实地址地址变地址变换机构:以动态实现虚地址到实地址地址变换换n惯用虚拟存放技术惯用虚拟存放技术请求分页存放管理请求分页存放管理请求分段存放管理请求分段存放管理请求段页式存放管理请求段页式存放管理第13页n基本分页存放管理实现思想基本分页存放管理实现思想作业分页,内存分块,页大小等于块大小作业分页,内存分块,页大小等于块大小页面大小由机器地质结构决定页面大小由机器地质结构决定基当地址变换机构(图)基当地址变换机构(图)含有快表地址变换机构(图)含有快表地址变换机构(图)基本分页存放管理方式优缺点基本分页存放管理方式
14、优缺点优点:存在页内碎片,但碎片相对较小,内存利用率教高;优点:存在页内碎片,但碎片相对较小,内存利用率教高;实现了离散分配,消除了程序浮动;便于存放访问控制,实现了离散分配,消除了程序浮动;便于存放访问控制,有利于代码共享;无外部碎片。有利于代码共享;无外部碎片。缺点:需要专门硬件支持,尤其是快表;内存访问效率下缺点:需要专门硬件支持,尤其是快表;内存访问效率下降;不支持动态链接,不能实现真正共享;有内部碎片降;不支持动态链接,不能实现真正共享;有内部碎片非连续分配方式第14页非连续分配方式n页面置换算法页面置换算法n页面分配策略页面分配策略物理块分配策略物理块分配策略固定分配局部置换固定分配局部置换可变分配全局置换可变分配全局置换可变分配局部置换可变分配局部置换页面调入策略页面调入策略请求调页策略请求调页策略预调页策略预调页策略n缺页率缺页率页面置换算法:其优页面置换算法:其优略影响缺页中止次数略影响缺页中止次数主存物理块数:其数主存物理块数:其数目越多,缺页率越低目越多,缺页率越低页面大小:页面大,页面大小:页面大,缺页率低,反之,缺缺页率低,反之,缺页率高页率高程序特征:编程方法程序特征:编程方法对缺页中止次数有影对缺页中止次数有影响响第15页第16页