《操作系统原理电子课件教案-第七章 主存管理》由会员分享,可在线阅读,更多相关《操作系统原理电子课件教案-第七章 主存管理(113页珍藏版)》请在金锄头文库上搜索。
1、1,第七章 主存管理,( 0 ) 存储组织 (一) 主存的共享方式 (二) 主存管理的功能 (三) 分区存储管理技术 (四) 页式存储管理技术 (五) 段式及段页式存储管理技术,2,存储组织,存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。 存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。 其依据是访问速度匹配关系、容量要求和价格。 “寄存器-内存-外存”结构 “寄存器-缓存-内存-外存”结构,3,存储层次结构,快速缓存: Data Cache TLB(Translation Lookaside Buffer) 内存:DRAM, SDRAM等; 外存:硬盘
2、、光盘、软盘、磁带等;,4,某计算机的存储层次结构,CPU中的寄存器100个字;高速缓存512KB,存取周期15ns; 主存储器128MB,存取周期60ns; 磁盘容量20GB,存取周期毫秒级; 后援存储容量1TB,存取周期秒级。访问速度越慢,容量越大,价格越便宜;最佳状态应是各层次的存储器都处于均衡的繁忙状态(如:缓存命中率正好使主存读写保持繁忙);,5,(一) 主存的共享方式,为什么要共享主存? 处理器和外部设备串行工作; 一个作业独占主存储空间,降低存储空间的利用率; 计算机的外围设备利用率不高。,6,主存共享方式:空间分片,大小不等的区域 分区存储管理分段存储管理 大小相等的片 页式存
3、储管理 两者结合 段页式存储管理,7,(二) 主存管理功能,一、几个概念1. 物理地址(绝对地址、实地址)物理地址是计算机主存单元的真实地址,又称绝对地址或实地址。2. 主存空间物理地址的集合所对应的空间组成了主存空间。3. 区域物理地址集合的一个递增整数序列子集n, n+1, ,n+m所对应的主存空间。,9,4. 逻辑地址(相对地址、虚地址)用户的程序地址(指令地址或操作数地址)均为逻辑地址。5. 作业地址空间用户程序所有的逻辑地址集合对应的空间。其编址总是从0开始。,10,6. 作业地址空间与主存空间,11,二、主存管理功能,1. 实现逻辑地址到物理主存地址的映射 2. 主存分配 3. 存
4、储保护 4. 主存扩充,12,三、主存映射 1. 什么是地址映射(1) 为什么要进行地址映射作业的相应进程在处理机上运行时,所要访问的指令和数据的实际地址和地址空间中的地址是不同的。这种情况可用下图来说明。,13,(2) 什么是地址映射将程序地址空间中使用的逻辑地址变换成主存中的物理地址的过程,称为地址映射。,14,2. 地址映射的时机与类别,(1) 编程或编译时确定地址映射关系在程序编写或程序编译时确定虚、实地址之间的对应关系,结果是一个不能浮动的程序模块。,15,2. 地址映射的时机与类别(续),(2) 在作业装入时确定地址映射关系在作业装入过程中随即进行的地址变换方式称为静态重定位或静态
5、地址映射。,16,17,2. 地址映射的时机与类别(续),(3) 在程序运行时确定地址映射关系在程序执行期间,随着每条指令和数据的访问自动地连续地进行地址映射。,18,19,动态地址映射技术能满足以下目标: 具有给一个用户程序任意分配内存区的能力; 可实现虚拟存储; 具有重新分配的能力; 对于一个用户程序,可以分配到多个不同的存储区。,20,3. 静态映射与动态映射的区别,21,4. 程序的逻辑组织,程序地址空间可分为: 一维线性空间:程序和数据经编译、连接后成一个连续的地址空间; 多维空间:编译后产生代码段、数据段、栈段。,22,四、主存分配(1),1. 构造分配用的数据结构主存资源信息块:
6、 等待队列头指针 自由主存队列头指针 主存分配程序地址,23,四、主存分配(2),2. 制定主存分配策略(1) 放置策略选择一个空闲区或若干空闲区的原则 (2) 调入策略决定信息装入主存的时机预调策略:预先将信息调入主存请调策略:当需要信息时,将信息调入主存 (3) 淘汰策略在主存中没有任何可用的空闲区时,决定哪些信息从主存中移走,即确定淘汰已占用的内存区的原则。,24,四、主存分配(3),3. 实施主存分配与回收,25,五、主存扩充,主存扩充也就是提供虚拟存储器。 1. 问题的提出主存容量始终显得十分紧张如何使用户使用计算机不受主存容量的限制? 2. 解决问题的思路部分装入,部分对换。,26
7、,装入部分程序地址空间,它还能正确执行吗? 回答是肯定的,1968年P.Denning研究了程序执行时的局部性原理。 程序的局部性原理指程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中。,27,第一,程序中只有少量分支和过程调用,大都是顺序执行的指令。 第二,程序包含若干循环,是由相对较少的指令组成,在循环过程中,计算被限制在程序中很小的相邻部分中。 第三,很少出现连续的过程调用,相反,程序中过程调用的深度限制在小范围内,一段时间内,指令引用被局限在很少几个过程中。 第四,对于连续访问数组之类的数据结构,往往是对存储区域中相邻位置的数据的操作。 第五,程
8、序中有些部分是彼此互斥的,不是每次运行时都用到的,如出错处理程序。,28,3. 虚拟存储器的概念,由操作系统和硬件相配合来完成主存和辅存之间的信息的动态交换。这样的计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器,这个存储器称为虚拟存储器。 在具有层次结构存储器的计算机系统中,采用自动实现部分装入和部分对换功能,为用户提供一个比物理主存容量大得多的、可寻址的一种“主存储器”。,29,虚拟存储器是为扩大主存而采用的一种设计技巧,它的容量与主存大小无直接关系,而受限于计算机的地址结构及可用的辅助存储器的容量。其基本思想即以时间换得空间。,30,4. 虚拟存储器的实现方法,程序的全部
9、代码和数据存放在辅存中; 将程序当前执行所涉及的那部分程序代码放入主存中; 程序执行时,若所需信息不在主存,由操作系统和硬件相配合来完成主存从辅存中调入信息,程序继续执行。,31,虚拟存储器的概念图,32,5. 虚拟存储器的核心,逻辑地址与物理地址分开 主存空间与地址空间分开 提供地址变换机构,33,6. 实现虚拟存储器的物质基础,有相当容量的辅存:足以存放多用户的作业的地址空间 有一定容量的主存:存放运行进程的当前信息 地址变换机构,34,六、存储保护,1. 什么是存储保护在多用户环境中,主存储器按区分配给各用户程序使用。为了互不影响,必须由硬件(软件配合)保证每道程序只能在给定的存储区域内
10、活动,这种措施叫做存储保护。,35,2. 存储保护方法,界地址保护 存储键保护,36,六、存储保护(续),3. 界地址保护 (1) 上、下界防护,如何设置上下界寄存器内容 如何判断是否越界 满足: 20KBD24KB 则允许访问,否则发生越界中断。,37,38,六、存储保护(续),(2) 基地址、限长防护,如何设置基址、限长寄存器内容 如何判断是否越界 满足: 逻辑地址4KB 则允许访问,否则发生越界中断。,39,40,(三) 分区存储管理,分区(partition) :一段连续的内存地址空间,一般较大。 原理:把内存分为一些大小相等或不等的分区,每个应用进程占用一个或几个分区。操作系统占用其
11、中一个分区。 特点:适用于多道程序系统和分时系统 支持多个程序并发执行 难以进行内存分区的共享 问题:可能存在碎片,41,固定分区(fixed partitioning),把内存划分为若干个固定大小的连续分区 分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象)。 分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。,固定分区(大小相同),固定分区(多种大小),43,优点:易于实现,开销小。 缺点: 内碎片造成浪费 分区总数固定,限制了并发执行的程序数目。,44,动态分区(dynamic partitioning),1. 什
12、么是动态分区分配在处理作业的过程中,建立分区,依用户请求的大小分配分区。优点:没有内碎片。缺点:有外碎片,45,(1) 动态分区的分配过程,作业1申请32KB,作业2申请14KB,作业3申请64KB,作业4申请100KB,作业5申请50KB,46,(2) 动态分区的回收过程,47,分区分配机构1. 分区描述器,flag: 为 0空闲区为 1已分配区 size: 分区大小 next:空闲区自由主存队列中的勾链字已分配区此项为零,48,2. 自由主存队列 (或空闲区队列) 结构,49,三、分区的分配与回收,1. 分区分配 用户请求分配一个主存块 分区分配程序在自由主存队列中找一个满足用户需要的空闲
13、块; 若找到,以空闲块与请求的主存块大小之间的关系(剩余大于门限值则分割,否则全部分配)进行相应的处理,并返回所分配区域的首址; 否则,告之不能满足要求。,50,三、分区的分配与回收(续),2. 分区回收回收主存块的四种情况,51, 回收分区r(上邻空闲区),r与 f1 合并 成为一个大的空闲区f1, 回收分区r(下邻空闲区),r与 f2 合并 成为一个大的空闲区f2,52, 回收分区r(上、下邻空闲区),r与 f1 、 f2 合并 成为一个大的空闲区f1, 回收分区r(上、下邻已分配区),r 成为一个新的空闲区 f,53,四、放置策略,1. 什么是放置策略选择空闲区的策略,称为放置策略。常用
14、的放置策略 首次匹配(首次适应算法) 最佳匹配(最佳适应算法) 最坏匹配(最坏适应算法),54,2. 首次适应算法首次适应算法是将输入的作业放置到主存里第一个足够装入它的可利用的空闲区中。,55,首次适应算法的特点,自由主存队列结构 空闲区地址由低到高排序。 尽可能地利用内存低端的空闲区,而尽量保存高端的空闲区。 该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。 但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。,56,3. 最佳适应算法最佳适应算法是将输入的作业放置到主存中与它所需大小最接近的空闲区中。,57,最佳适应算法的特点,自由主存队列结构 空
15、闲区大小由小到大排序。 尽可能地利用存储器中小的空闲区,而尽量保存大的空闲区。 从个别来看,碎片较小,但从整体来看,会形成较多碎片。,58,4. 最坏适应算法最坏适应算法是将输入的作业放置到主存中主存中最不适合它的空闲区中。,59,最坏适应算法的特点,自由主存队列结构 空闲区大小由大到小排序 尽可能地利用存储器中大的空闲区 基本不留下小空闲分区,但较大的空闲分区不被保留。,60,5. 关于两种放置策略的讨论举例:作业A要求18KB;作业B要求25KB;作业C要求30KB。用首次适应算法、最佳适应算法来处理该作业序列,看哪种算法合适。,61,(1) 首次适应算法中的自由主存队列,62,(2) 最
16、佳适应算法中的自由主存队列,63,作业A要求18KB 作业B要求25KB 作业C要求30KB,64,五、碎片问题及拼接技术 1. 什么是碎片问题在已分配区之间存在着的一些没有被充分利用的非常的小空闲区。,2. 拼接技术所谓拼接技术是指移动存储器中某些已分配区中的信息,使本来分散的空闲区连成一个大的空闲区。,如何解决碎片问题?,65,拼接技术图示,66,3. 拼接技术缺点,(1)移动分区花费CPU时间 (2)拼接时,停止了所有工作,影响性能 (3)需要重新定义内存中的作业,67,背景分区存储管理简单,但有碎片问题,内存使用效率低,接受的作业数有限。 造成这样问题的主要原因是用户程序装入内存时是整体装入的,一般分配较大的连续内存区,为解决这个问题,提出了分页存储管理技术。,(四) 页式存储管理,68,一、页式系统的基本概念,1. 页面程序的地址空间被等分成大小相等的片,称为页面,又称为虚页。 2. 主存块主存被等分成大小相等的片,称为主存块,又称为实页(也有文献中称其为页框)。 3.页式系统的思想程序运行时,每个页面装入到一个主存块中,整个程序可以使用不连续的主存块。,