L存储管理

上传人:jiups****uk12 文档编号:45557999 上传时间:2018-06-17 格式:PPT 页数:50 大小:439KB
返回 下载 相关 举报
L存储管理_第1页
第1页 / 共50页
L存储管理_第2页
第2页 / 共50页
L存储管理_第3页
第3页 / 共50页
L存储管理_第4页
第4页 / 共50页
L存储管理_第5页
第5页 / 共50页
点击查看更多>>
资源描述

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

1、第3章 存 储 管 理3.1 虚拟存储器 3.2 内存管理方式 3.3 80386段页机制 3.4 Linux存储管理 3.5 小结1 1存储管理机构要解决的问题u存储分配问题。 重点是研究存储共享和各种分 配算法。u地址再定位问题。 研究各种地址变换机构,以 及静态和动态再定位方法。u存储共享问题。 研究多个进程如何共享内存。u存储保护问题。 研究保护各类程序、数据区之 间不相互冲突的方法。u存储扩充问题。 主要研究虚拟存储器问题及其 各种调度算法。 2 2存储组织和层次结构操作系统协调各存储器的使用高速缓存Cache:少量的、 非常快速、昂贵、易变的 内存RAM:若干兆字节、 中等速度、中

2、等价格、易变 的 磁盘:数百兆或数千兆字节 、低速、价廉、不易变的3 3l 每一个要运行的程序,必须首先进入内存, 然而,每一台计算机的内存容量都是有限而宝 贵的。存储管理的任务是方便用户使用存储资 源,在有限的物理空间内使更多的用户进程高 效地获得和使用尽可能多的存储空间,从而提 高系统的整体性能。l 现代操作系统中普遍采用基于虚拟存储器的 概念来统一管理内存和外存,实现逻辑上的大 容量存储空间。4 4l 本章首先介绍虚拟存储器的基本概念及使用虚拟 存储器的依据和出发点局部性原理,即在程序 的运行过程中,总是集中地访问某一个程序段。根 据这样的原理,可以把物理内存按照一定的规则划 分为小部分

3、,每次只装入某个进程必要的一部分内 容就开始运行,在运行过程中,再根据需要装入新 的内容。l 不同的划分规则形成不同的存储管理技术,我们 简单介绍分区、页式、段式和段页式管理的基本思 想。接着介绍Intel 80386硬件存储管理机制,最后 学习Linux系统在这种硬件平台的基本存储管理机 制。5 53.1 虚拟存储器l 计算机系统的存储器分为内存(主存)和外存 (硬盘)。内存的价格昂贵,速度高,存储容量 有限;外存价格便宜,速度慢,存储容量很大, 适合于存放大量数据。 l 为了使更多的用户进程合理、充分地使用存储 资源,操作系统统一管理内存和外存,即把内存 中暂时不用的内容放在硬盘上,内存中

4、就可以腾 出一部分空间,可以从硬盘装入其他迫切需要的 内容。因此,从效果上看,计算机系统好像为用 户提供了一个其存储容量比实际主存大得多的存 储器。人们称这个存储器为虚拟存储器。6 63.1.1 局部性原理l 实验证明,在几乎所有进程的执行过程中,某一个 特定的时间段中,CPU不是随机地访问整个程序或 数据,而是集中地访问程序或数据的某一个部分。进 程的这种访问特性称为局部性原理。l 与CPU访问该局部内的数据和代码的次数相比, 局部段的变化很缓慢,正是基于这样的原理,我们才 有可能实现虚拟存储管理。把进程的所有内容划分为 一个个小的部分,首先只把系统所必需的部分数据装 入内存,其余部分就放在

5、外存中,开始运行之后,再 把所需要的其他部分换入内存,同时把不再需要的部 分从内存中换到硬盘或者清除掉。当然,与之相配合 ,实际的内存也要划分为对应的小部分。7 7l 这种内外存之间的数据交换对用户进程来讲 是透明的。从用户进程的角度来看,系统好像 提供了一个很大的内存一样,整个进程都能装 进去而且正常运行,这种逻辑上的大容量存储 空间就可以称为虚拟存储器。实际上,是操作 系统的存储管理起了作用,用多次内外存数据 交换的时间换来了大容量的并不真正存在的( 虚拟的)内存。因此,可以想象,访问虚拟存 储器的速度要比访问真正内存的速度要慢。8 83.1.2 虚拟地址和虚拟地址空间l 内存中同时存在多

6、个进程,每个进程的地址都是以 0地址作为起始地址的虚拟地址空间,这个虚地址空 间可以是线性的(一维的),也可以是多维的,这要 取决于系统采用的存储管理方式。进程中的每一个指 令和数据在这样的虚地址空间中都有一个惟一确定的 地址,即虚拟地址。l 每一个进程都具有各自独立的虚拟地址空间,而整 个系统只有一个物理地址空间。任何一个要执行的进 程,都必须进入真正的内存中,在内存的物理空间中 存在,这就需要在虚拟地址空间和物理地址空间之间 建立适当的映射关系。通过这种映射关系,逐部分地 把存在于虚拟地址空间中的进程要执行的9 9l 部分放在物理地址空间中,而其他暂时不执行的部 分放在外部存储器中,内外存

7、动态地传递数据,最终 完成整个进程所执行的任务。这种映射,也称为地址 变换,是操作系统在硬件的配合下实现的。l 系统中的每一个进程,都有一个惟一的地址映射关 系,也就是说,虚拟地址空间到物理地址空间是一个 多对一的映射关系。这样,不同的进程有不同的虚拟 地址空间和映射变换,可以方便地实现进程之间的存 储保护,避免数据和程序遭受其他进程无意或者恶意 的访问,同时,它们都映射到惟一的物理空间,可以 通过多个进程同时映射同一个物理地址的方式实现数 据和程序的共享。10103.2 内存管理方式l 虚拟存储的每一个要运行的程序,都必须首 先进入内存,但是,每一台计算机的内存容量 都是有限而宝贵的。管理技

8、术,通常是基于局 部性原理的,即把整个进程的虚拟地址空间划 分为小的部分,同时把内存也划分为小的部分 ,在虚拟地址空间和物理地址空间之间建立特 定的映射关系,进程的内容分批分期进入内存 中特定的位置,其余部分在外存中,在需要的 时候再传递到内存,用内存和外存的统一管理 来实现内存扩充。1111l 在虚拟存储技术的发展过程中,使用了不同的 地址空间划分方法和映射关系,这些不同的划分 和映射对应于不同的存储管理方式,本节介绍几 种能够实现虚拟存储的地址空间划分方式。 3.2.1 页 l 把进程的虚拟地址空间划分为相等大小的部 分,每个部分称为页(page),同时把物理内存 空间也按照页的大小划分为

9、小的部分,称为页面 (page frame,也称为页架或页框)。从0开始 编制页号,页内地址是相对于0编址。对于80386 体系,页和页面的大小都为4K字节。页号 页内地址逻辑地址 1212l 在页和页面之间建立一一映射关系,连续的 一维虚拟地址空间可以分别存放在不同物理空 间中,因此,物理存储中,每个页面内部地址 连续,而页面之间的地址可以是不连续的。l 页和页面之间的映射关系记录在一个表格中 ,这样的表称为页表。每一个进程使用惟一的 页表,页表的每一项数据称为页表项,表示虚 拟空间中某一页和实际物理空间中某一页面的 对应关系,页表也存储在物理空间内,如图 3.1所示。1313图3.1 页式

10、管理:页表(左)及相应的页、页面 对应关系(右)示意图1414l 从上图可以看出,连续的一维虚拟空间经过变换, 映射到物理空间中不连续的页面中。利用分页机制实 现虚拟存储管理称为页式存储管理。管理过程中,内 外存的数据传递是以页为单位。页式管理采用请求调 页或者预调页技术实现内外存的统一管理,内存中同 时只存放少量经常执行或者即将执行的页,而其他不 经常使用或暂时不会执行的页,存放在外存中,等需 要的时候再调入内存。l 利用分页技术将一维连续虚拟空间划分为一个个页 ,进程的虚拟地址由两个部分组成:页号P和页内地 址(偏移量)W。这两个部分的虚拟地址经过地址变 换后,映射到物理内存的对应单元。具

11、体的地址变换 过程如图3.2所示。1515图3.2 页式内存管理地址变换示意图1616l 操作系统为每一个进程维护一个独立的页表,进程 正在执行的时候,页表信息记录在页表控制寄存器中 ,系统根据寄存器的值得到该进程对应页表的地址, 同时利用页号,就可以得到该页对应的页表项。查找 页表,获得了页表所映射的页面号,由页面号和页内 地址,就可以直接找到内存中的对应存储单元。l 在整个变换过程中,需要两次访问物理内存,第一 次是查找页表,第二次是获取数据。l 为了提高效率,硬件一般提供一个高速的联想寄存 器,构成一个快表(translation lookaside buffer), 把当前进程中经常使

12、用的页表项放在快表中,地址变 换过程中,首先访问快表,如果该页表项存在于快表 中,就1717p页表地址越界l比较 P=1pp. . .快表b+页号p 页内地址dPd物理地址页表地址寄存器页表长度寄存器逻辑地址地址映射机制1818引入快表以后的地址变换过程:l同时开始两个变换过程: 一个是利用主存页表进行的正常变换过程; 一个是利用快表进行的快速变换过程。 快表中有待查找的页号。u立即停止正常的访主存页表过程,u由快表中得到主存块号,实现地址转换 。 快表中没有要查询的页。u继续正常的页表查找过程,直到形成 访问主存的绝对地址,u把该页表项写入快表中状态位为0的寄 存器中,同时置该寄存器的状态位

13、和访问位为 1。1919l 可以直接得到对应的页面号,如果不在快表中, 再去查找页表得到页面号,快表的访问速度要比内 存快得多,这样就可以提高内存的访问速度。l 采用页式管理,实现了进程的程序和数据非连续 存放,对内存和外存统一管理,得到更大的虚拟存 储空间,可以同时容纳和运行更多的进程,有利于 系统整体性能的提高。缺点是增加了系统开销,而 且需要一定的硬件支持。由于虚拟空间是连续的, 整个进程按照一维地址顺序排列,同一个程序段在 分页的过程中,可能分别位于不同的页中,代码和 数据的共享比较困难。2020虚拟页氏管理系统在进程开始运行之前,不是装虚拟页氏管理系统在进程开始运行之前,不是装 入全

14、部页面,而是装入一个或零个页面,之后根据入全部页面,而是装入一个或零个页面,之后根据 进程运行的需要,动态装入其它页面;当内存空间进程运行的需要,动态装入其它页面;当内存空间 已满,而又需要装入新的页面时,则根据某种算法已满,而又需要装入新的页面时,则根据某种算法 淘汰某个页面,以便装入新的页面。淘汰某个页面,以便装入新的页面。l l当要放一页面到全满的主存块时,系统需淘汰一当要放一页面到全满的主存块时,系统需淘汰一 页。用来选取淘汰哪一页的规则,叫置换算法。页。用来选取淘汰哪一页的规则,叫置换算法。页面置换算法 先进先出置换算法(先进先出置换算法(FIFOFIFO) 最近最久未用置换算法(最

15、近最久未用置换算法(LRULRU)2121先进先出(FIFO)页面置换算法基本思想:置换时 首先淘汰在内存中驻留 时间最长的页面,即最早进入主存的页面。2222时时刻123456789101112P432143543215MF例 1:设页面走向为P=4, 3, 2, 1, 4, 3, 5, 4, 3, 2, 1, 5 ,当主存容量M=3和M=4时,采用FIFO置换算法 ,分别求出缺页中断次数及缺页率。 2323时时刻123456789101112P432143543215M4+3+42+31+24+13+45+34534532+51+25125F+FIFO M=3缺页中断次数:F=9缺页率:f

16、=9/12=75%+表示有新调入的页面 “”表示下时刻将淘汰页面42424时时刻123456789101112 P432143543215 M4+ 3+42+341+23412341235+124+ 513+4 52+34 1+235+123 F+FIFO M=4 缺页中断次数:F=10 缺页率:f=10/12=83%小测 M=42525最近最久未用(LRU)置换算法 基本思想:当需要置换一页时, 选择在最近 一段时间最久未用的页予以淘汰。2626栈:用栈来保存当前使用的各个页面的页面号 ,当进程访问某页面时,将该页面的页面号从 栈中移出,压入栈顶。因此栈顶始终是最新被 访问页面的编号。4,7,0,7,1,0,1,2,1,2,62727时时刻123456789101112P432143543215MF例 2:设页面走向为P=4, 3, 2, 1, 4, 3, 5, 4,

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

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

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