存储管理幻灯片

上传人:爱****1 文档编号:930302 上传时间:2017-05-22 格式:PPT 页数:142 大小:1.13MB
返回 下载 相关 举报
存储管理幻灯片_第1页
第1页 / 共142页
存储管理幻灯片_第2页
第2页 / 共142页
存储管理幻灯片_第3页
第3页 / 共142页
存储管理幻灯片_第4页
第4页 / 共142页
存储管理幻灯片_第5页
第5页 / 共142页
点击查看更多>>
资源描述

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

1、第五章 存储管理,提纲,5.1 存储管理的功能5.2 分区存储管理5.3 覆盖与交换技术5.4 页式管理5.5 段式与段页式管理5.6 局部性原理和抖动问题,存储器:内存(primary srotage):本章讨论的重点外存(secondary storage)主要内容几种常用的内存管理方法内存的分配和释放算法虚拟存储器的概念控制主存和外存之间的数据流动方法地址变换技术内存数据保护与共享技术,5.1 存储管理的功能,1. 存储管理的功能(1) 内存的分配与释放如何分配内存,以保证系统及各用户程序的存储区互不冲突;程序运行结束后归还占用的内存空间。(2)存储保护与存储共享保证程序在执行过程中不会

2、有意或无意地破坏另一道程序,保证用户程序不会破坏系统程序;不同作业之间相同的内容(代码)只在内存中装入一个副本。,(3)内存扩充当用户作业所需要的内存量超过计算机系统所提供的内存容量时,把内部存储器和外部存储器结合起来管理,为用户提供一个容量比实际内存大得多的虚拟存储器。(4)地址重定位完成从相对地址(虚拟地址)到绝对地址(物理地址)的转换。,物理地址物理存储器中的位置。虚拟地址编译链接程序把用户源程序编译后链接到一个以0地址为起始地址的线性地址空间中,每个进程都拥有这样一个虚拟空间。每条指令或数据单元都在这个虚拟空间中拥有确定的地址,把这个地址称为虚拟地址(virtual address)。

3、虚存空间的容量是由计算机的地址结构和寻址方式确定的。例如cpu的有效地址长度为16位,则其寻址范围为064kB,地址变换,用户程序虚拟空间,LOAD R1 20ADD R1 22STORE R1 24210110,0,2,4,20,22,24,内存物理地址,0,2,4,1000,1020,1022,1024,地址重定位示意,LOAD R1 20ADD R1 22STORE R1 24210110,2 地址重定位静态地址重定位(static address relocation)在虚拟空间程序执行之前由装配程序完成地址映射工作。假定分配程序已分配了一块首地址为BA的内存区给虚拟空间内的程序段,若

4、某条指令或数据的虚拟地址为VA,那么,该指令或数据对应的内存地址为MA,从而完成程序中所有地址部分的修改,以保证CPU的正确执行。MA BA VA,用户程序虚拟空间,LOAD R1 1020ADD R1 1022STORE R1 1024210110,0,2,4,20,22,24,内存物理地址,0,2,4,1000,1020,1022,1024,静态地址重定位示意,LOAD R1 1020ADD R1 1022STORE R1 1024210110,静态重定位的优点: 不需要硬件支持,程序运行速度快。静态重定位的缺点: (1)静态重定位方法将程序一旦装入内存之后就不能再移动。 (2)必须占用连

5、续的内存空间,这就难以做到程序和数据的共享。,动态地址重定位 (dynamic address relocation)在程序执行过程中,完成地址转换。需要硬件地址变换机构完成。需要一个(或多个)基地址寄存器BR和一个(或多个)程序虚拟地址寄存器VR。指令或数据的内存地址MA与虚地址的关系为: MA=(BR)+ (VR)(BR)与(VR)分别表示寄存器BR与VR中的内容。,动态地址重定位,动态重定位的主要优点有: (1) 可以对内存进行非连续分配。 (2) 动态重定位提供了实现虚拟存储器的基础。 (3) 有利于程序段的共享。 (4) 程序在内存中可以移动。动态重定位的主要缺点有: (1) 进程运

6、行速度慢。 (2) 动态重定位需要硬件支持。,3 内外存数据传输的控制(内存扩充)原因:物理内存不够用最基本的控制办法:用户程序自己控制覆盖(以程序段为单位,手动)操作系统控制交换(swapping)方式(以进程为单位)请求调入(on demand)方式(以程序/数据段为单位)预调入(on prefetch)方式(以程序/数据段为单位),4 内存的分配与回收主要功能:进程创建时把外存中的数据和程序调入内存,安排合适的位置(为进程分配内存空间)。进程执行结束后及时收回该进程所占用的内存资源,以便给其他进程分配空间。,考虑因素:(1)分配结构:登记内存使用情况,共分配程序使用的表格与链表。例如,内

7、存空闲区表,空闲区队列。(2)放置策略:确定调入内存的程序和数据在内存中的位置。选择内存空闲区的策略。,(3)交换策略:在需要将某个程序段和数据段调入内存时,如果内存中没有足够的空闲区,由交换策略来确定把内存中的哪些程序段和数据段调出内存,以便腾出足够的空间。(4)调入策略:外存中的程序段和数据段什么时间按正么样的控制方式进入内存。(5)回收策略:包括回收的时机和回收的内存空闲区和已经存在的空闲区的调整。,5 内存信息的共享与保护原因:多道程序设计环境内存中有系统进程以及多个用户的进程要限制各进程只在自己的存储区活动各进程不能对别的进程的产生干扰和破坏常用的内存信息保护方法:硬件法上下界保护法

8、软件法保护键法软硬件结合界限寄存器与CPU状态结合,上下界保护法思想:为每个进程设置一对上下界寄存器上界寄存器被保护程序和数据段的起始地址下界寄存器被保护程序和数据段的终止地址检查经过重定位的内存地址是否在上下届寄存器所规定的范围内在规定的范围内,则访问是合法的否则是非法的,并产生访址越界中断,上、下界寄存器保护法,保护键法思想:为每一个被保护存储块分配一个单独的保护键在程序状态字中则设置相应的保护键开关字段对不同的进程赋予不同的开关代码和与被保护的存储块中的保护键匹配保护键可设置成对读写同时保护的或只对读,写进行单项保护的,保护键保护法,PSW,对A块:不能读、不能写对B块:能读、能写对C块

9、:能读、不能写,每个存储块设置4位的存储键、1位取保护位;每个作业进入系统时分配唯一的键号(115);作业占用哪个存储块,该存储块的存储键置为该作业号。,界限寄存器与CPU的用户态或核心态工作方式相结合的保护方式思想;用户态进程只能访问那些在界限寄存器所规定范围内的内存部分核心态进程则可以访问整个内存地址空间UNIX系统就是采用的这种内存保护方式,5.2 分区管理,基本原理把内存划分成若干个大小不等的区域操作系统占用一个区域其余区域由各并发进程共享为每个进程划分一块适当大小的存储区,连续存储进程的程序和数据。按分区的时机,可分为:固定分区动态分区,1. 固定分区法思想把内存区固定地划分为若干个

10、大小不等的区域。划分的原则由系统操作员或操作系统决定。分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。所需数据结构分区说明表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态)内存的分配释放、存储保护以及地址变换,固定分区法,缺点浪费现象:即使是小作业也要占据大分区,2. 动态分区法思想在系统初启时,除操作系统中常驻内存之外,只有一个空闲分区。随后,分配程序将该区依次划分给调度选中的进程在进程执行前并不建立分区分区的建立在进程的处理过程中进行分区大小可随进程对内存的要求而改变优点改变了固定分区法中那种即使是小作业也要占据大分区的浪费现象,从而提高了内存的利用

11、率,内存初始分配情况,内存分配变化过程,所需的数据结构分区说明表可用分区表每个表目记录一个空闲区(区号、长度和起始地址)需额外内存或可用分区自由链利用每个内存空闲区的头几个单元存放本空闲区的大小及下个空闲区的起始地址,从而把所有的空闲区链接起来。系统再设置一自由链首指针让其指向第一个空闲区不需额外内存内存资源请求表每个表目描述请求内存资源的进程号以及所请求的内存大小,可用表、自由链及请求表,3 分区的分配与回收固定分区分配当用户程序要装入执行时,通过请求表提出内存分配要求和所要求的内存空间大小。存储管理程序根据请求表查询分区说明表,从中找出一个满足要求的空闲分区,并将其分配给申请者。回收当进程

12、执行完毕,不再需要内存资源时,管理程序将对应的分区状态置为未使用即可。,固定分区法,固定分区分配算法,动态分区主要解决三个问题: (1) 对于请求表中的要求内存长度,从可用表或自由链中寻找出合适的空闲区分配程序。(2) 分配空闲区之后,更新可用表或自由链。(3) 进程或作业释放内存资源时,和相邻的空闲区进行链接合并,更新可用表或自由链。,分配的三种常用方法:最先适应法(first fit algorithm)最佳适应法(best fit algorithm)最坏适应法(worst fit algoriathm),(1) 最先适应法可用表或自由链按起始地址递增的次序排列。一旦找到大于或等于所要求

13、内存长度的分区,则结束探索。从所找到的分区中划出所要求的内存长度分配给用户把余下的部分进行合并(如果有相邻空闲区存在)后留在可用表中,但要修改其相应的表项。,最先适应算法,(2) 最佳适应算法从小到大的次序组成空闲区可用表或自由链。从表头开始查找,当找到第一个满足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长度,将减去请求长度后的剩余空闲区部分留在可用表中。,(3) 最坏适应算法空闲区按其大小递减的顺序组成空闲区可用表或自由链。先检查空闲区可用表或自由链的第一个空闲可用区的大小是否大于或等于所要求的内存长度,若可用表或自由链的第一个项长度小于所要求的,则分配失败否则从空闲区可用表或

14、自由链中分配相应的存储空间给用户修改和调整空闲区可用表或自由链。,回收与拼接工作:当进程执行结束时,要收回已使用完毕的空闲区,并将其插入空闲区可用表或自由链把不连续的零散空闲区集中起来,空闲区的合并,4 分区管理的其他问题虚存的实现无法实现用户进程所需内存容量只受内存和外存容量之和限制的虚拟存储器。如果不采用内存扩充技术,每个用户进程所需内存容量是受到分区大小限制的。内存扩充可使用覆盖或交换技术来扩充内存。,地址变换应采用动态重定位方法空闲区的拼接会移动内存中的程序和数据一对硬件寄存器基址寄存器BR进程在内存分区的起始地址限长寄存器VR进程在内存分区的长度,内存保护设CPU指令所要访问的虚拟地

15、址为D若D(VR) (限长寄存器中的限长值):地址越界产生保护中断系统转去进行出错处理若D=(VR):地址合法由硬件完成对该虚拟地址的动态重定位保护键法也可用来对内存各分区提供保护,5. 分区存储管理的主要优缺点优点(1) 实现了多道程序设计,提高了资源利用率(2) 需求硬件少,管理算法简单,实现容易缺点(1)内存利用率仍然不高。存在着严重的碎小空闲区(碎片)不能利用的问题。(2)进程的大小受分区大小控制,除非配合采用覆盖和交换技术。(3)难以实现各分区间的信息共享。,5.3 覆盖与交换技术,是在多道环境下用来扩充内存的两种方法覆盖技术主要用在早期的操作系统中交换技术在现代操作系统中仍具有较强的生命力,1 覆盖技术思想一个程序并不需要一开始就把它的全部指令和数据都装入内存后再执行。把程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会同时执行的程序段共享同一块内存区。通常,这些程序段都被保存在外存中,当有关程序段的先头程序段已经执行结束后,再把后续程序段调入内存覆盖前面的程序段。,

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

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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