教学课件第6章 内存管理.ppt
《教学课件第6章 内存管理.ppt》由会员分享,可在线阅读,更多相关《教学课件第6章 内存管理.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 6 章章内存管理内存管理本章内容本章内容p6.1 内存管理基础知识内存管理基础知识 p6.2 连续分配方式连续分配方式 p6.3 页式存储管理页式存储管理 p6.4 段式存储管理段式存储管理 p6.5 段页式存储管理段页式存储管理 p6.6 Linux存储管理存储管理 本章学习目标本章学习目标q 掌握内存管理机制的种类掌握内存管理机制的种类q 掌握地址重定位的含义掌握地址重定位的含义q 掌握内存分区管理的基本原理掌握内存分区管理的基本原理q 掌握动态分区的分配算法掌握动态分区的分配算法q 掌握分页存储管理的基本原理掌握分页存储管理的基本原理q 掌握请求分页存储管理机制的页面调度算法掌握请
2、求分页存储管理机制的页面调度算法q 了解分页存储管理的优缺点了解分页存储管理的优缺点q 掌握分段内存管理的基本原理、内存分配与回收机制掌握分段内存管理的基本原理、内存分配与回收机制q 了解分段管理的优缺点了解分段管理的优缺点q 了解了解Linux系统内存管理的机制系统内存管理的机制46.1 内存管理基础知识内存管理基础知识q 6.1.1 地址重定位地址重定位 q 6.1.2 交换交换 q 6.1.3 虚拟存储器虚拟存储器 56.1.1 地址重定位地址重定位 1. 静态重定位静态重定位 q 静态重定位是指,作业在装入内存时,就将程序静态重定位是指,作业在装入内存时,就将程序中所有的指令地址和数据
3、地址的逻辑地址转换为中所有的指令地址和数据地址的逻辑地址转换为物理地址。物理地址。 2. 动态重定位动态重定位q 动态重定位是指,程序在编译时间不知道进程将动态重定位是指,程序在编译时间不知道进程将处于内存的什么位置,那么编译程序必须要产生处于内存的什么位置,那么编译程序必须要产生可重定位代码,程序在装入时或者在运行时再进可重定位代码,程序在装入时或者在运行时再进行重定位。这种机制需要特殊的硬件,这个硬件行重定位。这种机制需要特殊的硬件,这个硬件称为内存管理单元(称为内存管理单元(MMU),大多数通用操作),大多数通用操作系统采用了这种方法。系统采用了这种方法。 66.1.2 交换交换 q 进
4、程必须在内存中才能执行。然而,可以暂时把进程必须在内存中才能执行。然而,可以暂时把一个进程从内存换出到备用存储空间中,然后将一个进程从内存换出到备用存储空间中,然后将它换回继续执行。这种技术称为交换,它广泛地它换回继续执行。这种技术称为交换,它广泛地运用于早期的小型分时系统的存储管理中。运用于早期的小型分时系统的存储管理中。 76.1.3 虚拟存储器虚拟存储器 1. 虚拟存储器的引入虚拟存储器的引入q 基本的问题解决途径有两种,一种是增加物理内基本的问题解决途径有两种,一种是增加物理内存容量,另一种是借助于磁盘等辅助存储器从逻存容量,另一种是借助于磁盘等辅助存储器从逻辑上来扩大主存容量。前者往
5、往受机器自身的限辑上来扩大主存容量。前者往往受机器自身的限制且会大幅度增加系统成本而不可行,后者便成制且会大幅度增加系统成本而不可行,后者便成为存储管理系统改进的方向。为存储管理系统改进的方向。q 这种从逻辑上扩充的存储器其容量接近于外存,这种从逻辑上扩充的存储器其容量接近于外存,访问速度接近于内存,因此这种技术被管饭应用访问速度接近于内存,因此这种技术被管饭应用于各类大、中、小及微型计算机系统中。于各类大、中、小及微型计算机系统中。 86.1.3 虚拟存储器虚拟存储器 2. 虚拟存储器的概念和特征虚拟存储器的概念和特征 概念概念q 虚拟存储器,就是指仅把作业的一部分装入内存虚拟存储器,就是指
6、仅把作业的一部分装入内存便可运行的存储器系统。具体地说,是指具有请便可运行的存储器系统。具体地说,是指具有请求调入功能和置换功能,能从逻辑上对内存容量求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。实际上,用户看到进行扩充的一种存储器系统。实际上,用户看到的大容量只是一种感觉,是虚的。的大容量只是一种感觉,是虚的。 96.1.3 虚拟存储器虚拟存储器 2. 虚拟存储器的概念和特征虚拟存储器的概念和特征 特征特征q 离散型:指内存采用离散分配方式。离散型:指内存采用离散分配方式。q 多次性:指一个作业被分成多次调入内存完成整多次性:指一个作业被分成多次调入内存完成整个运行过程
7、。个运行过程。q 对换性:指允许程序和数据在作业运行过程中将对换性:指允许程序和数据在作业运行过程中将部分内容从内存换到外存,从外存换到内存。部分内容从内存换到外存,从外存换到内存。q 虚拟性:指能够从逻辑上扩充内存容量,使用户虚拟性:指能够从逻辑上扩充内存容量,使用户感受到的内存容量远远大于实际的内存容量。感受到的内存容量远远大于实际的内存容量。106.2 连续分配方式连续分配方式 q 6.2.1 单一连续分配单一连续分配 q 6.1.2 固定分区分配固定分区分配 q 6.1.3 可变分区分配可变分区分配 116.2.1 单一连续分配单一连续分配 q 在这种管理方式下,除操作系统占用的一部分
8、存在这种管理方式下,除操作系统占用的一部分存储空间外,其余的用户区域作为一个连续的分区储空间外,其余的用户区域作为一个连续的分区分配给一个作业使用,即在任何时刻内存中最多分配给一个作业使用,即在任何时刻内存中最多只有一个作业。所以单一连续分配方式只适用于只有一个作业。所以单一连续分配方式只适用于单用户的情况。单用户的情况。 126.2.2 固定分区分配固定分区分配 q 在系统初始化时,将可分配的内存空间分割成若在系统初始化时,将可分配的内存空间分割成若干个连续区域,每个区域的大小可以相同,也可干个连续区域,每个区域的大小可以相同,也可以不同。一旦分好,则每个分区的大小固定不再以不同。一旦分好,
9、则每个分区的大小固定不再变化,且分区的个数也不再改变。变化,且分区的个数也不再改变。q 每个分区可用来装入一个作业,等待进入主存的每个分区可用来装入一个作业,等待进入主存的作业排成队列,当主存器中有空闲的分区时,依作业排成队列,当主存器中有空闲的分区时,依次从作业队列中选择一个能装入该分区的作业。次从作业队列中选择一个能装入该分区的作业。当所有的分区都已装有作业,则其他的作业暂时当所有的分区都已装有作业,则其他的作业暂时不能再装入。不能再装入。 136.2.3 可变分区分配可变分区分配 q 该分配方式是指系统初启时,内存中除常驻内存该分配方式是指系统初启时,内存中除常驻内存的操作系统外,其余的
10、内存是一个完整的大的空的操作系统外,其余的内存是一个完整的大的空闲区。当用户用作业需要装入时,再动态地为之闲区。当用户用作业需要装入时,再动态地为之分配连续的内存空间,空间大小随作业的内存需分配连续的内存空间,空间大小随作业的内存需求量而定。求量而定。 146.2.3 可变分区分配可变分区分配 1. 分区分配中的数据结构分区分配中的数据结构q 空闲分区表。用于为内存中每个尚未分配出去的空闲分区表。用于为内存中每个尚未分配出去的分区设置一个表项,每个分区的表项包含分区号分区设置一个表项,每个分区的表项包含分区号、分区大小和分区始址等表目。、分区大小和分区始址等表目。q 空闲分区链。在每个空闲分区
11、的起始部分设置一空闲分区链。在每个空闲分区的起始部分设置一些用于控制分区分配的信息(如分区大小)和用些用于控制分区分配的信息(如分区大小)和用于链接各空间分区的前向指针(用于指向对应下于链接各空间分区的前向指针(用于指向对应下一空闲分区的首地址),从而将所有的空闲分区一空闲分区的首地址),从而将所有的空闲分区链接成一个空间分区链。链接成一个空间分区链。156.2.3 可变分区分配可变分区分配 2. 分区分配算法分区分配算法 q 首次适应算法:每次分配时,总是从空闲分区表首次适应算法:每次分配时,总是从空闲分区表起始表项或空闲分区链首开始顺序查找,直到找起始表项或空闲分区链首开始顺序查找,直到找
12、到一个能满足程序要求的空闲分区或遍历结束(到一个能满足程序要求的空闲分区或遍历结束(即分配失败)为止。即分配失败)为止。 q 最佳适应算法最佳适应算法:当存储管理程序为用户程序分配:当存储管理程序为用户程序分配内存时,总是把既能满足要求、又是最小的空闲内存时,总是把既能满足要求、又是最小的空闲分区分配给该用户程序,避免了分区分配给该用户程序,避免了“大材小用大材小用”。q 最坏适应算法最坏适应算法:最坏适应算法要求分区分配用数:最坏适应算法要求分区分配用数据结构按其空间大小递减的顺序进行排列。当用据结构按其空间大小递减的顺序进行排列。当用户申请分配内存时,分配当前可用的最大空闲区户申请分配内存
13、时,分配当前可用的最大空闲区并加以分割来满足当前用户程序的需求。并加以分割来满足当前用户程序的需求。 166.2.3 可变分区分配可变分区分配 3. 分区的分配分区的分配q 在可变分区分配算法中通常设置一个零头上限值在可变分区分配算法中通常设置一个零头上限值,即不再切割的剩余分区的大小。当所分配的空,即不再切割的剩余分区的大小。当所分配的空闲分区大小减去用户程序空间请求大小的差值小闲分区大小减去用户程序空间请求大小的差值小于或等于零头上限值,则认为多余的部分太小,于或等于零头上限值,则认为多余的部分太小,可不再切割,而是将整个空闲分区分配给对应程可不再切割,而是将整个空闲分区分配给对应程序;否
14、则从该分区中划分出与用户程序请求大小序;否则从该分区中划分出与用户程序请求大小相同的内存空间,剩余部分仍保留在分区分配用相同的内存空间,剩余部分仍保留在分区分配用数据结构中。数据结构中。 176.2.3 可变分区分配可变分区分配 4. 分区的回收分区的回收 q 当用户程序执行结束时,存储管理程序要收回已当用户程序执行结束时,存储管理程序要收回已使用完毕的空闲分区,并将其插入到空闲分区表使用完毕的空闲分区,并将其插入到空闲分区表或空闲分区链中。或空闲分区链中。q 根据回收区与空闲分区的上下相邻关系,可出现根据回收区与空闲分区的上下相邻关系,可出现4种情况:该空闲区的上相邻区是空闲分区、该种情况:
15、该空闲区的上相邻区是空闲分区、该空闲区的下相邻区是空闲分区、回收区的上下两空闲区的下相邻区是空闲分区、回收区的上下两相邻分区都是空闲分区、两相邻区都不是空闲分相邻分区都是空闲分区、两相邻区都不是空闲分区。区。 186.2.3 可变分区分配可变分区分配 5. “紧凑紧凑”技术技术 q “紧凑紧凑”(或称(或称“拼接拼接”)技术,通过移动内存)技术,通过移动内存中有关作业把内存中的碎片拼接为一个大的连续中有关作业把内存中的碎片拼接为一个大的连续区域,进而把作业装入到拼接后形成的大分区中区域,进而把作业装入到拼接后形成的大分区中。 196.3 连续分配方式连续分配方式 q 6.3.1 基本分页存储管
16、理基本分页存储管理 q 6.3.2 请求分页存储管理请求分页存储管理 206.3.1 基本分页存储管理基本分页存储管理 1. 页面与物理块页面与物理块 q 在分页存储管理方式中,内存空间被划分成一系在分页存储管理方式中,内存空间被划分成一系列大小相等的内存区域,称之为物理块(或页框列大小相等的内存区域,称之为物理块(或页框)。)。q 进程的逻辑地址空间划分成若干个大小相等的区进程的逻辑地址空间划分成若干个大小相等的区域,称之为域,称之为“页面页面”。并且页面和物理块的大小。并且页面和物理块的大小相等。相等。216.3.1 基本分页存储管理基本分页存储管理 2. 地址结构地址结构 q 经过页面划
17、分之后,用户程序的逻辑地址由页号经过页面划分之后,用户程序的逻辑地址由页号P与页内偏移地址与页内偏移地址W所组成。所组成。q 关于逻辑地址与页号及页内地址之间的计算,可关于逻辑地址与页号及页内地址之间的计算,可通过下面的公式来完成。通过下面的公式来完成。 页号页号=INT逻辑地址逻辑地址/页面大小页面大小 页内地址页内地址=逻辑地址逻辑地址MOD 页面大小页面大小226.3.1 基本分页存储管理基本分页存储管理 3. 页表页表 q 为了保证进程的正确运行,需要记录页面和物理为了保证进程的正确运行,需要记录页面和物理块的对应关系,为此,系统为每个进程建立了一块的对应关系,为此,系统为每个进程建立
18、了一张页面映射表,简称页表。张页面映射表,简称页表。q 进程的所有页面,依次在页表中占据一个表项,进程的所有页面,依次在页表中占据一个表项,每个表项记录了相应页面在内存中对应的物理块每个表项记录了相应页面在内存中对应的物理块号。号。236.3.1 基本分页存储管理基本分页存储管理 4. 地址变换地址变换 q 分页存储管理地址转换的主要步骤是:分页存储管理地址转换的主要步骤是:q (1)由指令产生逻辑地址;由指令产生逻辑地址;q (2)若逻辑页号不小于页表长度,则产生越界中若逻辑页号不小于页表长度,则产生越界中断,否则,转(断,否则,转(3););q (3)由逻辑页号查页表,从相应页表项中取出该
19、由逻辑页号查页表,从相应页表项中取出该页面对应的物理块号;页面对应的物理块号;q (4)把物理块号与页内地址写入物理地址寄存器把物理块号与页内地址写入物理地址寄存器的相应位置得物理地址。的相应位置得物理地址。246.3.1 基本分页存储管理基本分页存储管理 4. 地址变换地址变换 q 分页系统中的地址变换机构如分页系统中的地址变换机构如下下图图所示。所示。256.3.1 基本分页存储管理基本分页存储管理 5. 快表快表 q 为了提高运算速度,通常都在为了提高运算速度,通常都在MMU(主存管理(主存管理单元,用来完成逻辑地址到物理地址的转换功能单元,用来完成逻辑地址到物理地址的转换功能)中设置一
20、个专用的高速缓冲存储器,用来存放)中设置一个专用的高速缓冲存储器,用来存放最近访问的部分页表。这种高速存储器称为最近访问的部分页表。这种高速存储器称为“联联想存储器想存储器”或或“快表快表”。 266.3.1 基本分页存储管理基本分页存储管理 6. 内存的分配与回收内存的分配与回收 q 分页存储管理中可以使用位示图的方法进行内存分页存储管理中可以使用位示图的方法进行内存的分配与回收。通常位示图用一个的分配与回收。通常位示图用一个mn二进制二进制位的矩阵来组织,并使位的矩阵来组织,并使mn等于内存可分配的等于内存可分配的物理块的总数,其中每个二进制位用来记录一个物理块的总数,其中每个二进制位用来
21、记录一个内存块的使用情况。内存块的使用情况。0表示对应的物理块是空闲表示对应的物理块是空闲的,的,1表示对应的物理块已分配。表示对应的物理块已分配。 276.3.2 请求分页存储管理请求分页存储管理 1. 基本思想基本思想 q 请求分页内存管理的基本思想是:使用虚拟存储请求分页内存管理的基本思想是:使用虚拟存储技术,将用户程序在运行过程中,当前经常访问技术,将用户程序在运行过程中,当前经常访问的页面装入内存,而将那些暂不访问的页面放入的页面装入内存,而将那些暂不访问的页面放入外存,当访问到放在外存的页面时再将其调入内外存,当访问到放在外存的页面时再将其调入内存。若内存已满,则使用页面淘汰算法,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件第6章 内存管理 教学 课件 内存 管理
限制150内