os_ch4存储器管理

上传人:油条 文档编号:28136789 上传时间:2018-01-15 格式:PPT 页数:97 大小:1.04MB
返回 下载 相关 举报
os_ch4存储器管理_第1页
第1页 / 共97页
os_ch4存储器管理_第2页
第2页 / 共97页
os_ch4存储器管理_第3页
第3页 / 共97页
os_ch4存储器管理_第4页
第4页 / 共97页
os_ch4存储器管理_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《os_ch4存储器管理》由会员分享,可在线阅读,更多相关《os_ch4存储器管理(97页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 存储器管理,存储管理是指存储器资源(主要指内存并涉及外存)的管理。存储器资源的组织(如内存的组织方式)地址变换(逻辑地址与物理地址的对应关系维护)虚拟存储的调度算法,2,4.1 存储器的层次结构4.2 程序的装入和链接4.3 连续分配方式4.4 对换4.5 分页存储管理方式4.6 分段存储管理方式,主要内容,3,4.1 存储器的层次结构,存储器的功能是保存数据存储器的发展方向是高速、大容量和小体积,4,4.1.1 多层存储器结构,5,存储层次结构某台计算机存储器层次配置,CPU中的寄存器100个字;高速缓存512KB,存取周期15ns;主存储器128MB,存取周期60ns;磁盘容量

2、20GB,存取周期毫秒级;后援存储容量1TB,存取周期秒级。,6,4.1.2 主存储器和寄存器,1.主存储器 主存地址 所有的存储单元都按顺序排列,每个单元都有一个编号,单元的编号称为“单元地址”。 地址编号也用二进制数,通过地址编号寻找在存储器中的数据单元称为“寻址”。,7,0000H0001H0002HFFFFH,存储单元(字节),8,举例说明:计算 7+2=?,计算程序的简写形式,指令操作码表,操作数存放单元,9,用二进制表示的计算程序,存储器布局,10,2.寄存器:存放CPU执行时的数据和指令3.高速缓存:存储cpu经常使用的指令和数据4.磁盘缓存:主存的空间,存放频繁使用的部分磁盘上

3、的数据,11,4.2 程序的装入和链接,程序在成为进程前的准备工作编辑:形成源文件(符号地址)编译:形成目标模块(模块内符号地址解析)链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析)装入:构造PCB,形成进程(使用物理地址),12,13,逻辑地址、物理地址和地址映射,逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。其首地址为0,其余指令中的地址都相对于首地址来编址。不能用逻辑地址在内存中读取信息。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。,14,地址映射:将用户程序中的逻辑地址转换为运行时由机器

4、直接寻址的物理地址。当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。,15,逻辑地址、物理地址和地址映射,16,4.2.1 程序的装入,1.绝对装入方式 在程序运行前,按照程序的逻辑地址,将程序和数据装入内存指定的地方。程序的内存地址由逻辑地址决定。优点:装入过程简单。缺点:过于依赖于硬件结构,不适于多道程序系统。,17,2.可重定位装入方式,在可执行文件中,列出各个需要重定位的地址单元和相对地址值。装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内

5、存时由软件完成)。优点:不需硬件支持,可以装入有限多道程序。缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。,18,19,3.动态运行时装入方式,把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。优点:OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利于实现共享。能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。缺点:需要硬件支持(通常是CPU),OS实现较复杂。它是虚拟存储的基础。,20,4.2.2 程序的链接,1. 静态链接(static-linking) 在

6、生成可执行文件时进行。在目标模块中记录符号地址(symbolic address),在可执行文件中改写为指令直接使用的数字地址。,21,22,2.装入时动态链接,在目标模块装入到内存时边装入边链接。装入时动态链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享,23,3. 运行时动态链接,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。,24,各种存储管理方案,(1) 分区存储管理(2) 分页存储管理(3) 分段存储管理(4) 段页式存储管理(5) 交换技术和覆盖技术(6) 虚拟存储管理,掌握各种存储

7、管理方案的内存分配回收、数据结构、地址转换、存储保护、主要技术、优缺点。,离散存储,连续存储,25,4.3.1 单一连续分配,内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。最简单,适用于单用户、单任务的OS。优点:易于管理。缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。,4.3 连续分配方式,26,单一连续区存储管理,27,4.3.2 固定分区分配,把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个或几个分区。操作系统占用其中一个分区。1. 划分分区的方法(1)分区大小相等, 即使所有的内存分

8、区大小相等。 (2) 分区大小不等。,28,固定分区(大小相同),固定分区(多种大小),29,2. 内存分配,30,优点:易于实现,开销小。问题: 1、可能存在内碎片和外碎片。内碎片:占用分区之内未被利用的空间外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。内碎片造成浪费2、分区总数固定,限制了并发执行的程序数目。可以和覆盖、交换技术配合使用。,31,课后作业,1.计算机系统中的各种存储器有何用处?2.何为相对地址和绝对地址?为何程序装入内存需要进行地址转换?3.单一连续区和固定分区各有何特点?,32,4.3.3 动态分区(dynamic partitioning),1. 分区分配

9、中的数据结构 (1) 空闲分区表 (2) 空闲分区链,33,2. 分区分配算法,(1) 首次适应算法FF。 (2) 循环首次适应算法,该算法是由首次适应算法演变而成的。(3) 最佳适应算法。(4) 最坏适应算法(5) 快速适应算法,34,首次适应算法(first-fit),按分区的先后次序,从头查找,找到符合要求的第一个分区该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。产生外碎片。,35,循环首次适应算法(next-fit),按分区的先后次序,从上次分配的分区起查找(到最后分区时再回到开头),找到符合

10、要求的第一个分区该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留。,36,最佳适应算法(best-fit),找到其大小与要求相差最小的空闲分区从个别来看,外碎片较小,但从整体来看,会形成较多外碎片。较大的空闲分区可以被保留。,37,最坏适应算法(worst-fit),找到最大的空闲分区基本不留下小空闲分区,但较大的空闲分区不被保留。 分配算法演示,38,快速适应算法(quick-fit),将空闲分区根据容量大小进行分类,相同容量的所有空闲分区设一个空闲分区链表,内存中建一张管理索引表,39,3. 分区分配操作,1) 分配内存,40,2) 回收内存可变分区的回收

11、算法,当一个进程X撤离时,可分成四种情况:(1)其邻近都有进程(A和B),(2)一边有进程(A或B),(3)两边均为空闲区。,41,可变分区的回收算法,42,动态分区的地址变换,43,4.3.6 动态可重定位分区分配,1. 动态重定位引入,44,内存紧缩(compaction):将各个占用分区向内存一端移动。使各个空闲分区聚集在另一端,然后将各个空闲分区合并成为一个空闲分区。对占用分区进行内存数据搬移占用CPU时间如果对占用分区中的程序进行浮动,则其重定位需要硬件支持。紧缩时机:每个分区释放后,或内存分配找不到满足条件的空闲分区时优点:没有内碎片。缺点:有外碎片;如果大小不是任意的,也可能出现

12、内碎片。,45,2. 动态重定位的实现,动态重定位示意图,46,3. 动态重定位分区分配算法,动态分区分配算法流程图,47,4.4 对换时间换空间技术,4.4.1多道程序环境下的对换技术最早应用于麻省理工学院的兼容分时系统CTSS中1. 对换的引入 所谓“对换”, 是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。,48,原理:暂停执行内存中的进程,将整个进程的地址空间保存到外存的交换区中(换出swap out),而将外存中由阻塞变为就绪的进程的地址空间读入到内存中,并将该进程送到就绪队列(

13、换入swap in)。,49,覆盖技术时间换空间技术,引入:其目标是在较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。,50,原理:一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。将程序的必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)在其他程序模块中实现,平时存放在外存中(覆盖文件),在需要用到时才装入到内存;不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区),51,注:另一种覆盖方法:(100K)A(20K)占一个分区:20K;B(50K)、D(20K)和E(40K)共用一个分区:50K;

14、F(30K)和C(30K)共用一个分区:30K;,覆盖技术,52,4.5 分页存储管理方式,为什么要引进分页技术?基本原理(1)页框 (2)页面 (3) 逻辑地址形式 (4) 页表和地址转换,53,作业的页面与分给的页框如何建立联系呢?逻辑地址(页面)如何变换成物理地址(页框)呢?作业的物理地址空间由连续变成分散后,如何保证程序正确执行呢?,54,4.5.1 分页存储管理的基本方法,1.基本原理将程序的逻辑地址空间和物理内存划分为固定大小的页或页面(page or page frame),程序加载时,分配其所需的所有页,这些页不必连续。需要CPU的硬件支持。,55,56,57,优点:没有外碎片

15、,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大小。即随着程序运行而动态生成的数据增多,地址空间可相应增长。缺点:程序全部装入内存。,58,2. 地址结构,31,12,11,0,对某特定机器,其地址结构是一定的。若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:,59,3. 数据结构,进程页表:每个进程有一个页表,描述该进程占用的物理页面及逻辑排列顺序;逻辑页号(本进程的地址空间)物理页面号(实际内存空间);物理页面表:整个系统有一个物理页面表,描述物理内存空间的分配使用状况。数据结构:位示图,空闲页面链表;请求表:整个系统有一个请求

16、表,描述系统内各个进程页表的位置和大小,用于地址转换,也可以结合到各进程的PCB里;,60,进程页表,61,4.5.2 地址变换机构,指令所给出地址分为两部分:逻辑页号,页内偏移地址查进程页表,得物理页号物理地址,62,1.基本的地址变换机构,63,分页地址变换举例 分页演示,64,地址变换例题1,某分页存储管理系统的用户编程空间共16KB,每页4KB,内存为32KB。假定某时刻一用户页表如下:逻辑地址053CH(十六进制)和142FH(十六进制)所对应的物理地址是什么?,65,地址变换例题2,某分页存储管理系统,页大小为2KB,用户程序装入程序后的页表如下,分析程序指令:Load A,5200如何执行,该指令执行时访问几次内存?,

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

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

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