华南理工大学 操作系统课件第5章内存管理

上传人:ldj****22 文档编号:48598916 上传时间:2018-07-17 格式:PPT 页数:108 大小:1.79MB
返回 下载 相关 举报
华南理工大学 操作系统课件第5章内存管理_第1页
第1页 / 共108页
华南理工大学 操作系统课件第5章内存管理_第2页
第2页 / 共108页
华南理工大学 操作系统课件第5章内存管理_第3页
第3页 / 共108页
华南理工大学 操作系统课件第5章内存管理_第4页
第4页 / 共108页
华南理工大学 操作系统课件第5章内存管理_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《华南理工大学 操作系统课件第5章内存管理》由会员分享,可在线阅读,更多相关《华南理工大学 操作系统课件第5章内存管理(108页珍藏版)》请在金锄头文库上搜索。

1、计算机操作系统第5章 内存管理1内容5.1 概述 5.2 存储管理的基本技术 5.3 分页存储管理 5.4 分段存储管理 5.5 段页式存储管理 5.6 虚拟内存的置换算法25.1 概述1)、基本概念 l存储器的层次结构 l地址 l逻辑地址与物理地址 l程序的链接和装入 l地址转换(重定位)2)、内存管理要解决的问题 l内存空间分配 l地址转换和重定位 l存储扩充 l存储保护和主存共享3) 虚拟存储器35.1.1基本概念1)存储器的层次 结构: 任何一种存储装置 ,都无法同时从速度与 容量两方面,满足用户 的需求。它们组成了一个速 度由快到慢,容量由小 到大的存储装置层次。由操作系统协调这 些

2、存储器的使用4地址 主存的最小单位是“位”主存对存储位置进行编号,这些编号称为“ 地址”,最小的编址单位是“字节”,一般包含八个 “位”地址空间 程序用来访问信息所用地址单元的集合5逻辑地址与物理地址逻辑地址(相对地址,虚地址) : l 用户的程序经过汇编或编译后,形成目标代码 ,目标代码通常采用相对地址的形式,其首地址为 0,其余指令中的地址都相对于首地址而编址。物理地址(绝对地址,实地址) l 内存中存储单元的地址,可直接寻址6程序的链接和装入7地址转换把作业地址空间中使用的逻辑地址,变换成为- 内存空间中的物理地址的过程。 又称地址映射,重定位程序地址如果不反映其真实的存储位置,就不可

3、能得到正确的执行 但在多道程序设计环境下,用户无法事先约定各 自占用内存的哪个区域,也不知道自己的程序会放在 内存的什么位置,P135 5.1.3 重定位8静态重定位 当用户程序被装入内存时,一次性实现逻辑地址 到物理地址的转换,以后不再转换12345Load R1,500010050012345Load R1,51005500500051000动态9动态重定位动态重定位: 动态重定位在指令执行过程中,每次访问内存前 动态地进行地址转换。静态重定位:当用户程序被装入内存时,一 次性实现逻辑地址到物理地址的转换,以后 不再转换10动态重定位 在程序运行过程中要访问数据时再进行地址变 换。由地址变

4、换机构进行的地址变换,硬件上需要重 定位寄存器的支持。静态112)、主存管理要解决的问题P119内存空间管理 当用户需要内存时,系统为之分配相应的存储空间;不需 要时,及时回收,以供其它用户使用。 l 记录内存的使用情况:设置相应的内存分配表 l 内存空间划分问题? 静态或动态,等长或不等长。 l 确定分配算法地址转换(重定位) 把逻辑地址转换为相应的物理地址的过程122)、主存管理要解决的问题存储扩充 用户在编制程序时,不应该受内存容量限制,所以要采 用一定技术来“扩充”内存的容量,使用户得到比实际内 存容量大的多的内存空间。 存储保护和主存共享 为多个程序共享内存提供保障,使在内存中的各道

5、程序 ,只能访问它自己的区域,避免各道程序间相互干扰, 特别是当一道程序发生错误时,不致于影响其他程序的 运行先考虑问题1、2、4;最后考虑问题3135.1.2 虚拟存储器 虚拟存储器是具有请求调入和交换功能 、能从逻辑上对内存容量进行扩充、给用户 提供了一个比真实的内存空间大得多的地址 空间,在作业运行前可以只将一部分装入内存 便可运行的、以逻辑方式存在的存储器。实质上是让程序的访问地址,和内存的 可用地址相脱离。 特性:虚拟性,还有离散性、多次性和交换性等。 14内容5.1 概述 5.2 存储管理的基本技术 5.3 分页存储管理 5.4 分段存储管理 5.5 段页式存储管理 5.6 虚拟内

6、存的置换算法155.2 存储管理的基本技术 最基本的4种存储管理技术: 分区法、 可重定位分区法、 覆盖技术、 交换技术 。165.2.1 分区法最简单。 基本原理: 给每一个内存中的进程,划分一块 适当大小的存储块,以连续存储。管理方式: 固定分区 动态分区(可变分区) 回顾内存管理的3/4个问题175.2.1 分区法1. 固定分区法 l 主存分成若干个固定大小的连续区域(存储块) l 每个存储区分给某一个作业使用, l 分区长度和个数不变。简单,内存利用率不高。 操作系统分区 1分区 2分区 3 18分区说明表记录存储分区情况及存储 区使用状况的信息分区号大小起始位置状态18K312K已分

7、配232K320K已分配332K352K未分配4128K384K未分配5512K512K未分配OS312K 320K352K384K512K进程A(6K)进程B(25K)进程C(36K)分区的碎片:分区内没有使用的剩下的部分大大的问题:有资源但没法使用195.2.1 分区法2. 动态分区法 根据进程的实际需要,动态地为它分配连续的内存 空间。 各个分区是在相应作业装入内存时建立的,其大小 恰好等于作业的大小。 系统中设置了相应的数据结构,来记录内存的使用 情况: l有空闲分区表l空闲分区链 序号大小始址状态 18K312K空闲 232K320K空闲 332K352K空闲20OS312K 320

8、K352K384K512K进程A(6K)进程B(25K)进程C(36K)OS312K 318K333K369K512K进程A (6K)进程C (36K)进程 B (25K)动态分区法固定分区法21OS312K 320K352K384K512K进程A(6K)进程B(25K)进程C(36K)OS312K 318K333K369K512K(6K)进程C (36K)进程 B (25K)固定分区法动态分区法22存储分配算法(1)最佳适应法挑选最接近作业尺寸且大于或等于作业大小的分 区, 从而使分区内未用部分(又称碎片)浪费的最少。(2)最先适应法即按分区序号最先找到的且大于或等于作业大小 的未分配分区,

9、分给要求的作业。着眼点是在于缩短查 找时间。(3)最坏适应法挑选最大的且大于和等于作业大小的分区分给要 求的作业。为什么?23算法的利弊最佳适应算法: 尽量多保留些大的分区,使被选中分区剩下尽可能小的 未用碎片。但也正是这种做法使得系统中产生了许多小 得无法再用的碎片。最先适应算法: 尽可能缩短存储分配时间。为此目的许多设计者不但在 算法上想办法,而且对空闲块的管理上也采取了不同方 法。最坏适应算法: 保证分配后剩下的分区足够大,以便满足后续要求。 24碎片大大的问题:有资源但没法使用内存碎片:由于各作业请求和释放主存块的结果 ,会导致内存中经常出现大量分散的小空闲区。内存 中这种容量太小,无

10、法被利用的小分区称为碎片。内碎片 固定分区中外碎片 可变分区中问题: l 减少了内存中作业的并发数 l 内存浪费、利用率低 l 存储分配和释放速度慢 解决方法25方法1: 把小碎片合并起来使之成为一个大分区。 实现方法:移动各用户分区中的程序,使他们集中于主存的一端(顶部或底部),而使碎片集中于另一端,从而连成一个完整 的大分区,这种技术通常称为存储器的“紧凑” 。方法2: 把程序分成几部分装入不同的分区中去,也就是改变 程序连续存放的要求。 实现方法: 分页、分段等存储管理技术。碎片问题的解决办法265.2.2 可重定位分区法 解决碎片问题引出的新问题:在找不到足够大的空闲分区来满足用户需求

11、时 ,进行紧凑处理,用户程序需要在主存中移动。程 序移动后会无法正确执行(为什么?)用户程序 (60K)27解决方法(程序移动后会无法正确执行)回顾原来地址转换的方法: 当用户程序被装入内存时,一次性实现逻辑地址到 物理地址的转换,以后不再转换。无法确定何时发生程序移动,移动到何处。所以不能预先转换地址 在执行指令的时候进行地址转换(动态重定位)285.2.2 可重定位分区法动态分区加动态重定位实现过程,需要额外硬件作业3大小为24KB,被装入起始地址为64KB的内存空 间295.2.3 覆盖技术 早期,当程序的长度大于内存的容量,怎么办?部分装入! 覆盖、交换!对主存进行了逻辑扩充覆盖技术,

12、是在多道环境下扩充内存的方法,用以解决在较 小的存储空间中,运行较大程序时遇到的矛盾。在程序运行过程中,把同一存储区,在不同时刻,分配给不同 的程序段或数据段来共享。缺点是,程序员必须小心地设计程序及其数据结构,使得要 覆盖的段块具有相对独立性,不存在直接联系或相互交叉访 问。 30A 20KD 20KE 40KC 30KB 50KF 30K作业X的调用结构常驻区(20K)覆盖区0 (50K)覆盖区1 (40K)BCDEF覆盖技术315.2.4 交换技术 交换是指将一个进程从内存拷贝到磁盘上, 以腾出空间给其他进程使用。需要时,再将该进 程调入内存。由换出和换进两个过程组成,换出是把内存中的数

13、据和程序,换到外存的交换区,换进则是把外存交换区中的数据和程序,换到内存 的分区中。在交换系统中,交换所占用的时间相当多 。 32交换与覆盖 比较 都是解决大作业与小主存矛盾的存贮管理技术, 实质上是对主存进行了逻辑扩充。交换技术不要求用户给出程序段之间的逻辑覆盖 结构;交换发生在进程或作业之间,而覆盖发生在同一 进程或作业内。覆盖只能覆盖那些与覆盖段无关的程序段33小结基本概念 地址、逻辑地址与物理地址、程序的链接和装 入 地址转换(重定位)内存管理要解决的问题 1,内存空间管理 2,地址转换(重定位) 3,存储扩充 4,存储保护和主存共享最基本的4种存储管理技术: l 分区法:固定分区、可

14、变分区、内存碎片及解决方 法 l 可重定位分区法:程序移动带来的问题、动态重定 位 l 覆盖技术、 l 交换技术 34内容5.1 概述 5.2 存储管理的基本技术 5.3 分页存储管理 5.4 分段存储管理 5.5 段页式存储管理 5.6 虚拟内存的置换算法355.3 分页存储管理 碎片问题的解决方法1: 紧凑技术可重定位分区法 让储存器去适应程序对连续性的 要求。碎片问题的解决方法2: 把程序分成几部分,装入不同的分区中去,也 就是改变程序连续存放的要求。 分页管理允许程序的存储空间是 不连续的,用户程序的地址空间,被划分为若干 个固定大小的区域。365.3.1 基本概念 分页的基本思想1

15、)、主存空间划分物理块(页框、页架):把主存划分成相同大小的存储块;物理块号:各物理块从0开始依次编号,称为页架号。2)、 逻辑地址空间划分页(页面):把用户的逻辑地址空间按照物理块大小,划分成 若干个页面;页号:各页从0开始依次编号,称为页号(逻辑页号);页内地址:将逻辑页面中的所有单元从0开始依次编址。如此划分后,可将任一页放在内存的任一块中(有什么好处? )373 )、 逻辑地址的表示划分后逻辑地址由两部分组成:可用一个数对(p,d)来表示;若给定一个逻辑地址A,页面大小为L;则p = INTA/L, d = A MOD L4 )、主存分配n 分配主存时,以页架为单位,按用户程序的页数进

16、行分配;n 逻辑上相邻的页在主存中不一定相邻。逻辑页 号p页内地址d5.3.1 基本概念 分页的基本思想38逻辑地址A为1005H,页的大小L为1024Byte,则A的页号、页 内地址:A= 1005H= 4096+5= 212+22+20 , L=1024=210 。p=4d=5(4,5)例:划分后逻辑地址395.3.1 基本概念 页表2. 页表数据结构每个进程都有自己的页面映象表,简称页表,页 表中包含每个帧的基址及相应的页号。页表的作用是实现从页号到物理块号的地址映射。页表的表项中常设置一存取控制字段,用于对该存储块中的内容进行保护。如果要利用分页系统去实现虚拟存储器,还需要增加另外的数据项。 40例:页表页表:由页号和页面号组成,指出逻辑地址中页 号

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号