软件技术存储管理.ppt
《软件技术存储管理.ppt》由会员分享,可在线阅读,更多相关《软件技术存储管理.ppt(66页珍藏版)》请在三一文库上搜索。
1、第九章 存储管理,本章基本内容与要求,基本内容 存储器层次结构 存储管理任务 实存储管理 虚拟存储管理 要求 掌握存储管理任务 掌握存储管理、 实存储管理、虚拟存储管理 了解存储器层次结构,第一节 存储器层次结构,存储管理目的,1、充分利用内存,为多道程序并发执行提供存储基础 2、尽可能方便用户使用 自动装入用户程序 用户程序中不必考虑硬件细节 3、系统能够解决程序空间比实际内存空间大的问题 4、存储保护与安全,第二节 存储管理任务,主存空间分配: 动态地为不断进进出出的作业分配内存空间。 地址映射:保证作业运行中能够正确的定位。 内存保护:保证作业的进程之间既能互相通信而又不互相干扰。 内存
2、“扩充”:使空间需求量大于用户区容量的作业也能够正常运行。,1.主存空间分配,合理分配,避免冲突; 算法得当,提高效率; 及时回收,循环利用。,2.地址映射,目标程序,内 存,地址空间,存储空间,0 x,0 640k,系统区 存放操作系统,目标程序,用户区 存放用户作业,绝对地址:主存储器以字节为编址单位,容量为n的主存储器中,每个单元有唯一的编号,从0到n-1,这个唯一的编号就是主存储器的绝对地址(物理地址)。,绝对地址,逻辑地址:在多道程序设计的系统中,操作系统为了方便用户,就允许每个用户都认为自己的作业的程序和数据存放在地址是0开始的连续空间中。这样用户程序中使用的地址就是逻辑地址(相对
3、地址)。,相对地址,重定位:当用户程序调入内存时,必须把逻辑地址转换成绝对地址,同时包括对程序中与地址有关的指令进行修改,这一过程叫 “重定位”或“地址转换”。,重定位的方式有两种: 静态重定位 动态重定位,地址转换,静态重定位,在装入一个程序时,把程序中的指令地址和数据地址全部转换成绝对地址。这种转换工作是在程序开始前集中完成的,在程序执行过程中无需再进行地址转换。所以称为“静态重定位”。 使用一对界地址寄存器,分别存放该程序的起始和终止地址.,x,逻辑地址空间,D x L,物理地址空间,x = x + D 物理地址 逻辑地址 下界地址,D=xL,动态重定位,在装入一个程序时,不进行地址转换
4、,而是直接把程序装到分配的主存区域中。在程序执行过程中,每当执行一条指令时都由硬件的地址转换机构转换成绝对地址。这种方式的地址转换是在程序执行时动态完成的,所以称为动态重定位。 动态重定位由软件(操作系统)和硬件(地址转换机构)相互配合来实现。,2.地址映射,程序的起始地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的,该地址被称为逻辑地址(或相对地址) 。 由这些地址所形成的地址范围称为(作业)地址空间。 主存单元的编号称为物理地址(或绝对地址) 由主存中的一系列单元所限定的地址范围称为存储空间。 相对地址到绝对地址的转换,同时程序中与地址有关的指令的修改,这一过程叫做地址重定
5、位。 静态重定位在程序装入时进行, 由装配程序进行地址转换 动态重定位是在程序的执行过程中, 当CPU访问指令或数据前,由地址变换机构进行地址变换。,3.内存保护,静态重定位系统中:用界地址寄存器判断程序是否在规定的上下界内 动态重定位系统中:与存储方式有关,保护系统程序区不被用户侵犯。 不允许用户程序读写不属于自己地址空间的数据,4.内存“扩充”,把内外存联合起来,向用户提供一个容量比实际容量大的多的存储空间。技术: 覆盖 交换 虚拟存储,扩充内存方法-覆盖技术,A 20kB,B 50kB,C 20kB,F 30kB,D 20kB,E 40kB,共180kB,作业必须满足树状的模块结构 要由
6、用户写出覆盖文件 ROOT A-(B-F,C-(D,E),扩充内存方法-交换技术,以整个作业为单位进行内外存交换(滚进滚出) 缺点:移动会增加系统开销。,第三节 实存储管理,单一连续分区(单道环境) 固定分区 动态分区,为调入内存的程序提供一个不小于作业地址空间的存储空间,当存储空间不够时,采用覆盖或交换技术扩充内存,1.单一连续分区,在单道环境下,不管是单用户系统还是单道批处理系统,进程(作业)执行时除了系统占用一部分主存外,剩下的主存区域全部归它占用。,2. 固定分区分配,作业2,作业3,0 16k 24k 40k 72k 128k,内存状态表,内存,基本原理:预先把可分配的主存储器空间分
7、割成若干个连续区域,每个区域的大小可以相等,也可以不等。,固定分区的优缺点,优点 实现多个作业共享 分区的分配和回收算法简单 缺点 内存利用不充分,因为每个分区中都会有一部分空间被浪费了。,作业2,作业3,0 16k 24k 40k 72k 128k,内存,碎片,3.动态分区,主存不是预先划分好的,而是当作业装入时,根据作业的需求和主存空间的使用情况来动态决定是否分配。,进程,5,OS,进程,9,进程,10,进程,2,进程,5,OS,进程,9,进程,2,进程,5,OS,进程,2,进程,5,OS,进程,8,进程,2,占用块,进程,5,OS,进程,10,进程,2,空闲块,3.动态分区,分区分配 空
8、闲分区分配算法 分区的回收 可重定位的动态分区,3.动态分区,分区分配 采用分区表(或者分区链表)来实现 空闲分区表:表示空闲分区的信息 已分区分配表:已使用分区的信息,3.动态分区,分区分配,3.动态分区,2. 空闲分区分配算法 1)首次适应算法(First Fit) 2)下次适应算法(Next Fit) 3)最坏适应算法(Worst Fit) 4)最佳适应算法(Best Fit),3.动态分区,2. 空闲分区分配算法 1)首次适应算法(First Fit) 在分区表中顺序查找,找到够大的空闲区就分配。 特点:简单、快速分配 缺点:可能形成许多不连续的空闲区,造成许多“碎片”,使主存空间利用
9、率降低。,3.动态分区,2. 空闲分区分配算法 2)下次适应算法(Next Fit) 类似首次适应法,总是从上次查找结束的地方开始,只要找到一个足够大的空白区,就把它划分后分配出去。 特点:解决了低地址区会产生很多碎片的问题,使内存中空闲分区分布比较均匀, 缺点:大的空闲分区在内存中不易保留。,3.动态分区,2. 空闲分区分配算法 3)最坏适应算法(Worst Fit) 总是挑一个最大的空闲区分给作业使用,使剩下的空间不至于太小。 适用于请求分配内存大小较均匀的系统 要求:空白块自大至小排列,3.动态分区,2. 空闲分区分配算法 4)最佳适应算法(Best Fit) 接到内存申请时,在空闲块表
10、中找到一个能满足要求的最小空块进行分配 特点:用最小空间满足要求 缺点:可能形成一些极小的空闲区,以致无法使用,这也会影响主存利用率。 要求:空白块自小至大排列,3.动态分区,3.分区的回收 当进程结束或终止时,要进行内存回收。如果回收的分区与其它的分区相邻,则合并成一个较大的分区,修改空闲分区表,并检查是否满足阻塞在内存空间的等待进程的需求。,3.动态分区,4.可重定位的动态分区 使用紧凑技术,为了消除外部碎片,进一步提高主存的利用率,定时地(或者在主存空间紧张时)把主存中的作业“搬家”集中在主存的一端,使另一端产生一个大的空闲区,这种技术称为存储器的“紧凑”。 紧凑仅仅在动态重定位时才可以
11、用,并且在运行时执行。,P1,P2,P3,P4,P5,P6,占用块,空闲块,P1,P2,P3,P5,动态重定位,0 0100 1000,地址空间,0 10023 10123 11023,+,10023,存储空间,定位寄存器,每读一条指令,都要变换一次地址。 变换要靠硬件支持.,第四节 虚拟存储管理,1. 虚拟存储器的原理 2. 请求分页存储管理 3. 请求分段存储管理,虚拟存储管理,工作原理:首先把作业信息保留在磁盘上,当作业请求装入时,只将其中一部分先装入主存,作业执行中若要访问的信息不在主存中,则再设法将这些信息装入主存。,用软件方法扩充内存。 逻辑上扩充了内存空间。 虚拟地址空间的大小受
12、指令中地址长度的限制和外存储容量的限制; 需解决什么时候把哪部分程序装入内存、放在内存什么地方、淘汰策略问题。,内存分页,1.虚拟存储器的原理程序局部性原理 在一段时间内一个程序的执行往往呈现出高度的局部性,表现在时间与空间两方面 时间局部性: 一条指令被执行了,则在不久的将来它可能再被执行 空间局部性: 若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元可能被使用,2.请求分页存储管理,1).分页管理的基本概念 2). 地址变换机构 3).页面置换算法 4).分页存储管理的优缺点,饭店房间和内存分页,用户程序,页表 页号 块号,分页存储管理,页:将作业的地址空间划分成一系列大小相等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术 存储 管理
链接地址:https://www.31doc.com/p-3126380.html