操作系统 第四章 存储管理

上传人:子 文档编号:51922321 上传时间:2018-08-17 格式:PPT 页数:67 大小:477.50KB
返回 下载 相关 举报
操作系统 第四章 存储管理_第1页
第1页 / 共67页
操作系统 第四章 存储管理_第2页
第2页 / 共67页
操作系统 第四章 存储管理_第3页
第3页 / 共67页
操作系统 第四章 存储管理_第4页
第4页 / 共67页
操作系统 第四章 存储管理_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《操作系统 第四章 存储管理》由会员分享,可在线阅读,更多相关《操作系统 第四章 存储管理(67页珍藏版)》请在金锄头文库上搜索。

1、第 4 章 存储器管理4.1 存储管理的功能 4.2 分区存储管理 4.3 页式存储管理 4.4 段式存储管理 4.5 虚拟存储技术 4.6 Linux内存管理第四章 存储管理4.1 存储管理的功能主存储器(内存)辅助存储器(外存)处理器可直接访问处理器不可直接访问访问快、容量有限访问慢、容量大操作系统的存储管理主 要是对内存的管理内存空间一般分为系统区和用 户区,分别存放操作系统和用 户的程序与数据。 存储管理主要是对用户区进行 管理。4.1.1 内存分配与回收内存分配与回收(存储管理的首要功能) (1)记录内存空间的使用情况(内存分配登记表) (2)实施内存的分配(3)内存的回收 第四章

2、存储管理4.1.2 地址转换将逻辑地址转换为物理地址1. 逻辑地址与物理地址的概念 (1) 逻辑地址 用户编程时总是从0开始编址,用 这种编址方法所涉及的指令或数据的 地址称为逻辑地址. 内存单元的一维线性地址. (2)物理地址第四章 存储管理 2. 地址重定位方法 (1)静态地址重定位 程序装入时,由装入程序将逻辑地址转换为物理地址 . 实施: 物理地址=程序在内存首址+逻辑地址 CPU执行指令时是按物理地址进行的,而程序的 逻辑地址与之不一致,因此需要地址重定位。 第四章 存储管理程序在运行时将所涉及的指令或数据的地址转换为 物理地址. (2)动态地址重定位实施: a.系统设置:基址reg

3、(BR);虚址reg(VR);物理地址reg(PR)c.程序在运行时将所涉及的指令或数据的地址送虚址reg(VR) d.(BR)+(VR)(PR).b.程序装入时,将其首址送基址reg(BR) 第四章 存储管理 4.1.3 存储保护 1.防止地址越界 (1)上、下界存储保护(2)基址限长存储保护2.存取权限控制限制进程只在自己的存储区活动,除了允许共享的部分外, 不能对其他进程的程序和数据产生干扰和破坏。 第四章 存储管理 4.1.4 存储扩充通过虚拟存储器实现逻辑上的扩充。由系统构造一个存储容量远远超过内存实际容量的 存储器,这种面向编程的存储器称为虚拟存储器, 简称为虚存。 可实现在有限内

4、存容量的情况下,执行比内存容量 大得多的程序。 虚拟存储器的概念 第四章 存储管理 4.2 分区存储管理将内存划分为若干个连续的区域,称为 分区。 4.2.1 单一连续分配法 4.2.2 固定分区管理由操作系统把内存划分成若干个大小固定的存储区, 分区大小各不相同, 除操作系统占用一个区域外, 其余区域为系统中多个用户共享.程序和数据一旦装入分区后就不可再移动,因此也称为静 态地址重定位。 一段时间内,只有一个进程在内存的用户区 第四章 存储管理1.固定分区表2.分区的分配在固定分区表中找到一个大小合适的分区实施分配,并将相 应表项的状态位置“1”3.分区的回收在固定分区表中将释放分区对应表项

5、的状态位清“0”教材P97,图4.5第四章 存储管理 4.2.3 可变分区管理 各分区是根据作业占用的内存大小动态建立的. 是一种动态分区方式。1. 空闲区表 记载内存空闲分区(包括首址,长度)第四章 存储管理(1) 常用的内存分配算法 a) 最先适应算法2.内存分配 空闲块按其首址递增的顺序登记在各空闲区表中 找到第一个满足要求的空闲区即实施分配 并在空闲区表中删除此项登记 将分区中多出的空间作为新的空闲区记录在空闲区表中第四章 存储管理 空闲区按其大小递增顺序登记在空闲区表中 找到第一个满足要求的空闲区实施分配b) 最佳适应算法c) 最差适应算法空闲区按其大小递减顺序登记在空闲区表中 搜索

6、表中首项, 若满足则分配;否则分配失败第四章 存储管理(1) 最先适应算法 三种常用算法的优缺点 优点 总是将内存低端空闲区实施分配,高端空闲区保存下来 ,随时间推移,内存高端会有大的空闲区 分配完后,空闲区表不需排序缺点 导致内存低端有很多内存碎片 若内存存在一个与申请大小相同的空闲区时,不一定会被选中第四章 存储管理 (2)最佳适应算法 优点 总是将所有能满足要求空闲区中最小者实施分配,大的空闲区保存下来 若内存存在一个与申请大小相同的空闲区时,一定会被选中。缺点 随时间推移会形成很多内存碎片 分配完后,空闲区表可能需排序第四章 存储管理(3)最差适应算法 优点 搜索速度快 总是将所有能满

7、足要求空闲区中最大者实施分配,剩余部分还可实施再分配缺点 总是将大的空闲区破坏掉 分配完后,空闲区表可能需排序第四章 存储管理 3可变分区的回收(1)释放区与前面空闲区相邻,则合并 (2)释放区与后面空闲区相邻,则合并 (3)释放区与前后空闲区相邻,则合并 (4)释放区与前面空闲区都不相邻,则在空闲区表中插入该项 第四章 存储管理4地址转换与存储保护采用动态重定位的方式,在进程执行时,由硬件将逻辑地址转 换成物理地址。操作系统将进程分配得到的起始地址和内存长度分别装入基址 寄存器和限长寄存器,并在进程执行时根据两个寄存器的值, 得到绝对地址,完成地址转换。5.分区的共享 如果每个进程只能占用一

8、个分区,则不允许各道 进程有公共的共享区域,当有多道程序要使用同 一程序时必须在各自存储区都存放一个副本,降 低了内存利用率 可提供多对基址/限长寄存器,允许一个进程占用 多个分区 系统规定某对基址/限长寄存器限定区域为共享的 ,共享区只能执行/读出,不能写入6.移动技术 可变分区中由于每次分配的空闲区大小不一定与 作业正好相等,因此会产生内存碎片,虽总和大 ,但不连续而无法利用 可用移动技术解决内存碎片,即朝一个方向移动 已分配的作业,让小的空闲区在另一方向连成一 片 分区移动要求能对作业重定位,系统开销较大 例:P102图4.117.覆盖与交换 可能存在当前内存大小无法满足作业/进程的要求

9、 覆盖:让一个作业的几个代码段/数据段按时间先 后顺序占用公共内存空间,以满足在较小的可用 内存中运行较大的程序(程序必要部分常驻内存 ,其它部分在其它模块实现,存放在外存,需要 时装入)例:p103图4.12 交换:多进程并发时,暂不执行程序(阻塞/低优 先级)送到外存,从外存读入就绪进程/装入新程 序第四章 存储管理 4.3 页式存储管理 分区管理的缺点: 如果连续的空闲区不能满足进程需求,则即使整个内 存中所有的连续分区之和大于进程所需的空间,进程仍 不能装入内存; 存在碎片现象,内存利用率不高; 难以实现虚拟存储技术,无法使有限的内存运行较大 、较多的程序。4.3.1 页的划分技术 系

10、统把内存按2n划分成大小相同、位置固定的 若干个存储块,称为页面; 进程的逻辑地址空间也按2n 划分成若干相等的 部分,每一部分称为一个页面; 进程以页为单位分配内存,一个进程可以分 布在不相邻的存储区域。书P105 图4.13 第四章 存储管理4.3.2 逻辑地址的形式页的大小为212=4K教材P105 例题: 页面大小1024B,相对地址2500,计算逻辑地址。 进程分页后,逻辑地址由两部分组成: 总共有220=1M的页面第四章 存储管理1.页表: 将进程的逻辑页号与内存的物理页号对应起来每个进程拥有一张页表, 它是虚实地址转换的依据. 4.3.3 相关数据结构由页号和块组成, 指出逻辑地

11、址中页号与主存中块号的对应关系 页号-进程地址空间的页序号 块号-内存空间的页序号 页 号块号0 31 52 6 2.空闲块表 记载内存空闲块 整个系统一张空闲块表第0页 第1页 第2页 第3页 第4页 第5页 第6页 0 51 72 93 154 135 106 16.进程的逻辑地址空间页式管理的示意图主存空间页表4.3.4 页式地址转换为了在非连续的内存区域中正确地执行进程, OS完成逻辑地址到物理地址的转换 物理地址(绝对地址) 虚拟地址(逻辑地址)块号块内地址页号页内地址页表长度页表始址控制寄存器存放运行进程的页表起始地址和页表长度信息页页表长长 度页页表始址3 1k2452逻辑地址页

12、页号 页页面号0 21 32 88452OS物理地址86441024*8+452=8644控制寄存器偏移地址 不变书本P107,例题图4.17页式地址转换第四章 存储管理 4.3.5 快表和页表构造 v执行一次访问内存操作至少要访问主存两次。v一次访页表,以确定所取数据或指令的物理地址;v另一次是根据物理地址取数据或指令。v为了提高存取速度,通常设置一个专用的高速缓冲 寄存器组,用来存放页表的一部分。v我们把存放在高速缓冲寄存器中的页表叫快表。程序的局部性原理: ( 1968年,P.Denning研究了程序执行时的 局部性原理。 )指程序在执行过程中的一个较短时间内, 所执行的指令地址或数据地

13、址分别局限于 一定的存储区域中。包括时间局部性和空 间局部性。第一,程序中只有少量分支和过程调用,大都是顺序执行 的指令。第二,很少出现连续的过程调用,相反,程序中过程调 用的深度限制在小范围内,一段时间内,指令引用被 局限在很少几个过程中。第三,对于连续访问数组之类的数据结构,往往是对存 储区域中相邻位置的数据的操作。第四,程序中有些部分是彼此互斥的,不是每次运行时 都用到的。根据程序运行的局部性原理,程 序在一段时间内总是集中访问某 些页面。因此,可以将当前经常访问的页 面对应的页号和块号装入快表, 其构造与页表一样。有快表地址映射机制页表地址越界l比较 P=1pp . . .快表b+页号

14、p 页内地址dPd物理地址控制寄存器控制寄存器页表长度逻辑地址页表始址先查找快表,如果找不到所需页号,再查找页 表,并将该项写入快表(为什么?)。pp快表的地址转换是非常快的,因为是 将页号与快表中的各行同时比较,大 大减少了地址变换时间,基本克服了 两次访问主存的缺点。页的共享:4.3.6 页的共享和保护 当若干进程运行相同的程序时,共享非常重要。有效的方 法是使相关进程在逻辑空间中的页面指向相同的内存块, 避免在内存中出现同一页面的两个副本。 只读页面可以共享,数据页面往往不能共享。 书P109,图4.19在分区管理中使用上下界地址限定访问范围; 在分页存储管理中,一般使用地址越界保护:

15、由地址变换机构中,根据控制寄存器的值,计算虚地址中的 页号是否超出了页表长度; 存取控制保护:在页表增加相应的保护位即可。存储保护:第四章 存储管理(1)作业不必作为整体装入内存连续区域 优点:分页式存储管理的优缺点:(2)便于多道程序设计,提高资源利用率 (3)页面大小和块的大小相等,便于主存管理 缺点:(1)地址转换增加系统开销(2)仍存在内存碎片:最后一个页面不能充分使用 (3)页表占用存储空间 (4)内存的扩充问题,作业的地址空间受内存容量限制 (5)页由系统划分,对用户透明,用户实现页的共享比较困难 例:若页长2K,一个72766 bit的进程将需要: 35页加1086bit,于是分

16、配给该进程36个页面,结果存 在2048-1086=962bit的内部存储碎片。若一个4097bit的进程,最后一页用1bit 若一个4096bit或4095bit的进程,最后一页几乎用满平均起来,每个进程有半页的内部碎片。第四章 存储管理4.4 段式存储管理 分区式管理和页式管理时的进程地址空间结构都是 线性的,这要求对源程序进行编译、链接时,把源 程序中的主程序、子程序、数据等按线性空间的一 维地址顺序排列起来。 一维的线性空间无法按照程序逻辑划分页面,这就 使得不同作业或进程之间,共享公用子程序和数据 非常困难。另外,页式管理中,一个页面中可能装有两个不同 子程序段的指令代码,因此,通过页面共享来达到 共享一个逻辑上完整的子程序或数据块,是不可能 的。为用户提供一个方便灵活的程序

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

当前位置:首页 > 生活休闲 > 科普知识

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