存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1

上传人:bin****86 文档编号:55573373 上传时间:2018-10-02 格式:PPT 页数:67 大小:529KB
返回 下载 相关 举报
存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1_第1页
第1页 / 共67页
存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1_第2页
第2页 / 共67页
存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1_第3页
第3页 / 共67页
存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1_第4页
第4页 / 共67页
存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1》由会员分享,可在线阅读,更多相关《存储器管理是指存储器资源(主要指内存)的管理存储空间课件_1(67页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 存储器管理,存储器管理是指存储器资源(主要指内存)的管理。 存储空间的分配与管理; 地址重定位(逻辑地址与物理地址的对应关系) 存储保护 存储空间扩充:虚拟存储器技术以及各种调度算法。,2,4.1 地址重定位 4.2 分区存储管理 4.3 覆盖和交换 4.4 页面式存储管理 4.5 请求式页面存储管理 4.6 段式存储管理 4.7 段页式存储管理,3,4.1 地址重定位,主存储器分为两部分:系统区,用户区 存储管理主要管理用户区的存储空间,地址空间和存储空间,名空间:程序中由符号名组成的空间。 逻辑地址(相对地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的

2、形式。相对于0编址。 逻辑地址空间(地址空间):相对地址的集合。 物理地址(绝对地址):主存储器中一系列物理单元的编号。物理地址可直接寻址。 物理地址空间(存储空间):物理地址的集合。,4,逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。, 逻辑地址、物理地址和地址映射,5,逻辑地址、物理地址和地址映射,地址映

3、射,1100,Load A,1200,3456,。,。,。,1200,物理地址空间,Load A,data1,data1 3456,源程序,Load A,200,3456,0,100,200,编译连接,逻辑地址空间,BA=1000,6,地址重定位:实现程序的相对地址空间到绝对地址空间之间的映射。 程序在成为进程前的准备工作 编辑:形成源文件(符号地址) 编译:形成目标模块(模块内符号地址解析) 链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析) 装入:构造PCB,形成进程(使用物理地址) 重定位方法: 静态重定位 动态重定位,地址重定位,7,优点:容易实现,无需硬件支持。 缺点:

4、程序在主存中只能连续分配;程序装入内存后不能移动;对共享的同一程序,各用户必须使用自己的副本,浪费存储空间。,在程序执行之前进行地址重定位,即可执行文件中装入主存时,由操作系统中的加载程序来完成地址映射。 重定位项:程序中涉及直接寻址的每条指令都要进行修改,需要修改的位置称为重定位项。 重定位项表:用相对地址给出需修改的位置。列出各个需要重定位的地址单元和相对地址值。,静态重定位,8,地址映射,1100,Load A,1200,3456,。,。,。,1200,物理地址空间,Load A,data1,data1 3456,源程序,Load A,200,3456,0,100,200,编译连接,逻辑

5、地址空间,BA=1000,静态重定位,9,可执行文件在内存中的重定位,说明:重定位表中列出所有修改的位置。如:重定位表的150表示相对地址150处的内容为相对地址(即100为从0起头的相对位置)。在装入时,要依据重定位后的起始位置(2000)修改相对地址。 重定位修改:重定位表中的150-绝对地址2150(=2000+150) 内容修改:内容100变成2100(=100+2000)。,jmp,150,100,150,.,Relocation,Table,0,jmp,150,2100,2150,.,2000,10,优点: OS可以将一个程序分散存放于不连续的内存空间;可以移动程序。 有利用实现共

6、享。 缺点:需要硬件支持(通常是CPU),是虚拟存储的基础。,在程序运行期间进行重定位,装入和执行时通过硬件地址变换机构,完成虚拟地址到实际内存地址的变换,动态重定位,11,动态重定位,0,100,200,300,.,.,.,.,.,.,.,.,.,LOAD A,200,3456,逻辑地址空间,1100,1200,1300,物理地址空间,200,VR,+,1000,BR(基址寄存器),LOAD A,200,3456,12,缺点:不能充分使用存储空间。,4.2分区存储管理,基本思想:将主存储空间划分成若干个连续的存储区,称为分区。每个分区只能存储一道程序,一个程序只能访问其所在分区的存储单元。,

7、13,内存分为两个连续区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单道程序设计的OS。 优点:易于管理。 缺点:对要求内存空间少的程序,造成内存浪费(空闲存储区)。,4.2分区存储管理,单一连续区存储管理,适用于单道程序系统,14,单一连续区存储管理,0H,7FFFH,FFFFFH,操作系统,用户程序区,08000H,界限寄存器,中断矢量表,空闲区,15,基本思想:把内存分为一些大小相等或不等连续区域分区(partition),每个分区只能驻留一个程序。操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统 支持多个程序并发执行问题:存在碎片(小得

8、难以使用的分区)问题,可能存在内部碎片和外部碎片。 内部碎片:占用分区之内未被利用的空间 外部碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。,分区存储管理,16,分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象)。 分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。,把内存划分为若干个固定大小的连续分区。一旦划分好,在系统运行期间不再重新划分。,固定分区(fixed partitioning),17,固定分区(大小相同),固定分区(多种大小),18,优点:简单易于实现,开销小。 缺点: 内部碎片造成浪费 分区

9、总数固定,限制了并发执行的程序数目。 采用的数据结构:分区表(分区说明表)记录分区的大小和使用情况,Operating System,空闲分区,分区5,作业C,分区4,分区3,分区2,分区1,空闲分区,作业B,作业A,00000H,08000H,0A000H,12000H,1A000H,3A000H,内存分区说明表,19,动态分区:在装入作业和处理过程中,按其要求的内存容量以及当时的内存资源使用情况,将一块大小与所要求相近的存储区分配给作业。 优点:没有内部碎片。 缺点:有外部碎片。,动态分区(dynamic partitioning),20,21,22,23,分区的数据结构:分区表,或分区链

10、表 可以只记录空闲分区,也可以同时记录空闲和占用分区 单一分区表中,表项数目随着内存的分配和释放而动态改变,表长难以确定,分配回收分区时降低查找速度。 分区表可以划分为两个表:空闲分区表,使用分区表。从而减小每个表长度。空闲分区表(一般常用链表结构)中按不同分配算法相应对表项排序。 分区分配和释放算法,动态分区管理:,24,分区分配算法:寻找某个空闲分区,其大小需大于或等于程序的要求。 分区释放算法:需要将相邻的空闲分区合并成一个空闲分区。(这时要解决的问题是:合并条件的判断和合并时机的选择),分区分配算法和释放算法:,25,最先匹配法(first-fit):按分区的先后次序,从头查找,找到符

11、合要求的第一个分区 该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。 但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。 最佳匹配法(best-fit):找到其大小与要求相差最小的空闲分区 从个别来看,外部碎片较小,但从整体来看,会形成较多外部碎片。较大的空闲分区可以被保留。 最差匹配法(worst-fit):找到最大的空闲分区 基本不留下小空闲分区,但较大的空闲分区不被保留。,分区分配算法,26,基本思想:分配算法与可变分区分配基本算法基本相同,并对作业进程分区进行搬迁,以形成大的连续的空闲分区。 特点:解决外部碎片问题的简单有效的方法 对占用分区进

12、行内存数据搬移占用CPU时间 如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持(提供基址界限寄存器对)。 实现空闲分区拼接的时机:每个分区释放后,或内存分配找不到满足条件的空闲分区时,动态重定位式分区分配,27,基本思想:一个作业由一些相对独立的程序段和数据段组成,每个段占用一个连续分区,而相应的各分区之间不要求是连续的。 特点:有效地解决外部碎片问题 要求: 相应的语言编译器能在作业的每个段内生成有效地址(各段相对于0编址) 系统内设置多对基址界限寄存器。 优点: 可以实现分区共享 诸进程可以共享数据分区。,多重分区存储管理不拼接而解决碎片问题,28,引入:其目标是在较小的可用内存

13、中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。 基本思想:一个作业的若干程序段,或几个作业的某些部分共享同一存储区。 优点:解决小主存容量与大作业之间的矛盾。 缺点:实现覆盖管理的系统开销较大。,4.3 覆盖和交换,覆盖(overlay),29,注:另一种覆盖方法:(100K) A(20K)占一个分区:20K; B(50K)、D(20K)和E(40K)共用一个分区:50K; F(30K)和C(30K)共用一个分区:30K;,覆盖技术,不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区),30,缺点: 编程时必须划分程序模块和确定程序模块之

14、间的覆盖关系,增加编程复杂度。 从外存装入覆盖文件,以时间延长来换取空间节省。,31,引入:解决主存容量不足的矛盾。多个程序并发执行,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读入保存在外存中而目前到达就绪状态的进程。交换单位为整个进程的地址空间。常用于多道程序系统或小型分时系统中,与分区存储管理配合使用。又称作“对换”或“滚进/滚出(roll-in/roll-out)”。 基本思想:暂停执行内存中的进程,将整个进程的地址空间保存到外存的交换区中(换出swap out),而将外存中由阻塞变为就绪的进程的地址空间读入到内存中,并将该进程送到就绪队列(换入swap i

15、n)。,交换(swapping),32,优点:增加并发运行的程序数目,并且给用户提供适当的响应时间;编写程序时不影响程序结构。 缺点:对换入和换出的控制增加处理机开销;程序整个地址空间都进行传送,没有考虑执行过程中地址访问的统计特性。 考虑的问题: 程序换入时的重定位; 减少交换中传送的信息量,特别是对大程序; 对外存交换区空间的管理:如动态分区方法;,33,覆盖与交换的区别:,覆盖由用户解决空间不足,交换由系统解决空间不足,34,引入:避开作业的连续性要求,将一个作业存放在 不连续的存储空间中,以很好地解决碎片问题。 基本思想:系统把内存物理空间等分为若干大小相等、位置固定的块(或帧)。将程序的逻辑地址空间划分为与块大小相同的页或页面(page or page frame),程序加载时,分配其所需的所有块,这些块不必连续。需要CPU的硬件支持。,4.4 页面式存储管理,地址空间分成大小相同的部分 页,存贮空间分成大小相同的部分 块(页帧),页大小块大小,35,页表(PMT) :又称页面映象表,记录一个作业程序的页号所对应的内存块号。需要CPU的硬件支持。,页号,块号,0,1,2,2,3,8,分配时页对应块,但不要求连续,页表包括:页号,块号,36,页帧19,Operating System,作业2(页0),00000H,0B000H,0A800H,0B800H,0C000H,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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