操作系统原理_方敏_存储管理

上传人:xzh****18 文档编号:55751753 上传时间:2018-10-05 格式:PPT 页数:68 大小:1.44MB
返回 下载 相关 举报
操作系统原理_方敏_存储管理_第1页
第1页 / 共68页
操作系统原理_方敏_存储管理_第2页
第2页 / 共68页
操作系统原理_方敏_存储管理_第3页
第3页 / 共68页
操作系统原理_方敏_存储管理_第4页
第4页 / 共68页
操作系统原理_方敏_存储管理_第5页
第5页 / 共68页
点击查看更多>>
资源描述

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

1、第五章 存储管理,操作系统课程组,第2页,内容回顾,死锁的检测 永久性资源的死锁检测 资源分配图 死锁定理 临时资源的死锁检测 死锁的解除 重新启动 撤销进程 剥夺资源 进程回退,第3页,一、概述,计算机的存储体系结构 计算机为什么要使用存储器?冯诺依曼原理 为什么要进行存储管理? 存储器一直以来都是较为珍贵的系统资源,需要合理使用。 程序的逻辑空间和实际的物理空间不甚相同,需要进行映射。,第4页,一、概述,存储结构层次,第5页,一、概述,存储管理的目的 使得用户和用户程序不涉及内存物理的细节。 自动完成用户程序的装入。 提高内存的利用率。 解决内存速度与CPU速度不匹配的问题。 实现内存共享

2、。,第6页,一、概述,存储管理的任务 在现代操作系统中,存储管理的主要任务有以下几个方面: 地址变换(地址再定位) 存储资源的分配和回收 存储共享和保护 存储器扩充 覆盖技术 交换技术,第7页,二、地址重定位,基本概念,定义:当程序被装入内存时,程序的逻辑地址被转换成内存的物理地址,这一过程称为地址重定位(由内存管理单元(MMU)完成)。,第8页,二、地址重定位,常见的地址重定位技术 绝对装入(Absolute loading) / 固定地址再定位 程序的地址再定位是在程序执行之前被确定的,也就是在编译连接时直接生成实际存储器地址(物理地址)。在此,程序地址空间和内存地址空间是一一对应的。,优

3、点:装入过程简单。 缺点:与硬件的结构过于密切,缺乏灵活性。,例如:单片机,MS-DOS中.com格式程序。,第9页,二、地址重定位,可重定位装入(Relocatable Loading) 即指程序装入内存时,由于程序的逻辑地址和物理地址不一致,由逻辑地址到物理地址的映射过程。 分类 静态再定位:指地址定位时修改程序的逻辑地址值,完成定位后,在程序的执行期间地址将不再发生变化。特点:在程序执行之前进行地址再定位。,优点:无需硬件支持,容易实现。早期的操作系统中大多数都采用这种方法。 缺点:必须分配连续的存储区域;执行期间不能扩充存储空间,也不能在内存中移动,内存利用率低,不便于共享。,第10页

4、,二、地址重定位,动态再定位:程序在装入内存时,不修改程序的逻辑地址值,程序在访问物理内存之前,再实时地将逻辑地址转换成物理地址。,第11页,二、地址重定位,优点: 程序在执行期间可以换入和换出内存,可以解决内存紧张状态; 可以在内存中移动把内存中的碎片集中起来,可以充分利用空间; 不必给程序分配连续的内存空间,可以较好的利用较小的内存块; 若干用户可以共享同一程序,实现共享。 缺点:需要附加的硬件支持,实现存储管理的软件算法比较复杂。,第12页,三、分区存储管理方案,存储管理方案分类 从操作系统的发展历史来看,存储管理主要有以下几种方案: 分区存储管理方案。要求连续分配存储空间,且程序要一次

5、性全部装入内存。简单,但是有比较严重的内碎块和外碎块。 段式存储管理方案。不要求连续分配存储空间,段和段之间可以不连续,但程序需要一次性全部装入内存。有比较严重的外碎块。 页式存储管理方案。是一种不连续存储管理方案,也需要一次性全部装入内存。在逻辑地址空间和物理地址空间都采用分页的思想。缺点是每一个作业的最后一页有内碎块。,第13页,三、分区存储管理方案,段页式存储管理方案。是一种不连续存储方案,段式存储管理和页式存储管理的结合。克服了纯分页和纯分段存储管理思想的缺点。 交换技术和覆盖技术。 虚拟存储管理方案。,第14页,三、分区存储管理方案,分区存储管理: 是一种连续分配存储空间的管理方式。

6、曾被广泛地应用于19601970年代的操作系统中。 思想:把内存分为一些大小相等或不等的分区(Partition),装入时每个应用程序占用一个或几个分区,操作系统占用其中一个分区。适用于多道程序系统和分时系统,支持多个程序并发执行。 分类 单一连续分区存储管理 固定分区管理 可变分区管理,第15页,三、分区存储管理方案,单一连续分区存储管理,特点:一次只能装入一个程序,程序独占整个用户区,如果程序小于用户区,则剩余的空间浪费,如果大于,则无法装入。,优点:简单,适用于单用户、单任务的操作系统,不需要复杂的硬件支持。 缺点:一个作业运行时要占用整个内存地址空间,对内存造成了很大的浪费,不支持大作

7、业。,第16页,三、分区存储管理方案,固定分区管理 支持多道程序技术 实现方法:,初始化内存空间,分区状态表,程序A,已分配,内碎片:指占用分区之内未被利用的空间。,第17页,三、分区存储管理方案,特点: 内存中同时可以容纳多道程序; 程序必须连续存放,且要一次全部装入。 优点: 比单一连续分配方法,内存的利用率提高了; 可以支持多道程序; 实现简单,开销小。 缺点: 作业必须预先能够估计自己要占用多大的内存空间,有时候这是难以做到的; 存在内碎片,造成存储空间的浪费; 分区总数固定,限制了并发执行的程序数目。,第18页,三、分区存储管理方案,可变分区(Dynamic Partitioning

8、) 思想:预先不划分内存,当作业需要时向系统申请,系统从其中挖出一块给该作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空表块,给下一次分配使用。,Job1,Job2,Job4,Job3,Q: 如何管理这些空闲区?,Job5,第19页,三、分区存储管理方案,分区分配算法 最先适应算法(first-fit) 分配方法:将所有的空闲分区按照地址递增的顺序排列,按照分区的先后次序,从头开始查找,符合要求的第一个分区就是要找的分区。,Job5,第20页,三、分区存储管理方案,释放方法,Job2,Job4,Job5,规则:相邻合并,否则插入,第21页,三、分区存储管理方案,优点: 分配策略简单

9、。 尽可能利用存储区低地址的空闲区,而在高地址部分保存较大的空闲区,容易满足大作业。 在释放内存分区时,如果有相邻的空白区就进行合并,使其成为一个较大的空白区。 缺点: 查找总是从表首开始,因此前面的空闲区往往被分割得很小时,查找次数增大。 会产生外碎片(指占用的分区之间难以利用的空闲分区),这些碎片散布在存储器的各处,不能集中使用,因而降低了存储器的利用率。,第22页,三、分区存储管理方案,下次适应算法(next-fit,循环最先适应算法) 分配方法:按分区的先后次序,从上次分配的分区起查找,到最后分区时再回到开头,符合要求的第一个分区就是找到的分区。 释放方法:同于最先适应算法。 优点:使

10、空闲分区分布得更均匀,提高了分配查找的速度。 缺点:较大的空闲分区不易保留。,第23页,三、分区存储管理方案,最佳适应算法(best-fit) 分配方法:将所有的空闲分区按照其容量递增的顺序排列,当要求分配一个空白分区时,由小到大进行查找,找到最合适的分配。 释放方法:在整个链表上搜索地址相邻的空闲区,合并后,再插入到合适的位置。 优点: 分配后所剩余的空白块会最小,较大的空闲分区会被保留。 平均,只要查找一半的表格便能找到最佳适应的空白区; 如果有一个空白区的容量正好满足要求,则它必被选中。 缺点:空白区一般不可能恰好满足要求,在分配之后的剩余部分通常非常小,以致小到无法使用,会形成较多外碎

11、片。,第24页,三、分区存储管理方案,最坏适应算法(worst-fit) 分配方法:与最佳适应算法相反,将所有的空白分区按容量递减的的顺序排列,最前面的最大的空闲分区就是找到的分区。 释放方法:同于最佳适应算法(best-fit) 优点:分配的时候,只需查找一次,就可以成功,分配的算法很快。 缺点:最后剩余的分区会越来越小,不会保留较大的空闲分区,无法运行大程序。,第25页,三、分区存储管理方案,可再定位式分区 又称浮动分区分配,是解决碎片问题的简单而有效的办法。 基本思想:移动所有被分配的分区,使之成为一个连续区域,而留下一个较大的空白区。,“靠拢”或“紧凑”,Q:程序地址的再定位?,第26

12、页,提出原因,四、页式存储管理,分区存储管理方案,要求作业存储时必须连续存放,解决作业不连续存放的问题,第27页,四、页式存储管理,基本原理,0,1,2,3,4,5,6,7,8,实页/主页,0,1,2,3,虚页:大小相同,常为2的整数幂。,2,0,3,1,Q:如何记录和管理这种映射关系?,第28页,四、页式存储管理,页面变换表(Page management table) 是一种特殊的数据结构 用途:记录每一个作业的虚页号到物理内存中页号之间的映射关系。每一个作业都拥有一个自己的页面变换表。 结构:,第29页,四、页式存储管理,物理地址空间,OS,0,1,2,3,4,5,6,7,8,逻辑地址空

13、间,0,1,2,3,2,0,3,1,0,1K,2K,3K,4K,0,100K,101K,102K,103K,104K,105K,106K,107K,108K,109K,第30页,四、页式存储管理,地址变换过程,Q:为了取出一个数据,系统需要访问内存几次?,第31页,四、页式存储管理,快表 由一组联想寄存器(TLB, Translation Lookaside Buffer)组成。 联想寄存器:一种按内容进行并行查找的快速寄存器,访问速度比主存快得多。 原理:,第32页,四、页式存储管理,经常要访问的页表表项。,第33页,四、页式存储管理,空闲内存页的管理,Q:内存大小:256M,每页4K,位示

14、图有多大?,第34页,四、页式存储管理,优点 没有外碎片,每个内碎片不超过页大小。 程序不必连续存放。 主要缺点: 程序要一次全部装入内存才能执行。 采用动态地址变换机构会增加计算机的成本和降低处理机的速度。 各种数据结构(页表,空闲页表)要占用一定的内存空间,而且系统要花费一定的时间来建立和管理这些表格。 依然存在内碎片。,第35页,五、段式存储管理,基本思想,逻辑单位,内存管理采用可变分区动态分配法。,第36页,五、段式存储管理,地址变换过程,段表控制寄存器,第37页,五、段式存储管理,优点 没有内碎片,外碎片可以通过内存紧缩来消除。 便于实现共享,即允许若干个进程共享一个或者多个段。,第

15、38页,分页式管理和分段式管理的比较,五、段式存储管理,第39页,六、段页式存储管理,思想:,逻辑地址格式,?,第40页,六、段页式存储管理,第41页,六、段页式存储管理,地址变换过程,Q:为了获得一条指令或者数据,需要访问内存几次?,第42页,七、内存扩充技术,提出原因 在基本的存储管理系统中,当一个作业的程序地址空间大于内存可以使用的空间时,该作业就不能装入运行,并发运行进程数受到了内存空间的限制。 内存扩充技术 就是借助大容量的辅存在逻辑上实现内存的扩充,来解决内存容量不足的问题。,第43页,七、内存扩充技术,覆盖技术(Overlay) 目标:在较小的可用内存中运行较大的程序。 原理,第

16、44页,七、内存扩充技术,覆盖技术的优缺点 优点 有效利用内存空间,提高系统的并发性。 缺点 覆盖结构需要程序员在程序编写的时候精心安排,并用覆盖描述语言描述,增加编程复杂度; 从外存装入覆盖文件,是以时间延长来换取空间节省的; 覆盖区仍然存在着碎片。,第45页,七、内存扩充技术,交换技术(swapping) 最早应用于MIT开发的CTSS中。 原理,Job2,Job3,Job1,Job4,第46页,七、内存扩充技术,交换技术的优缺点 优点: 增加并发运行的程序数目 可以提供优先级服务 缺点: 对换入和换出的控制增加处理机开销; 程序换入时的重定位问题。 交换技术和覆盖技术的区别,第47页,八、虚拟存储技术,虚拟存储技术也是一种存储扩充技术。 基础 程序中不是每一条指令都会在程序的一次运行过程中执行到。 错误处理子程序 条件语句(if.else.) 程序中有的指令可能只执行一次 程序的初始化部分 程序执行的局部性原理:在一段时间内,作业一般不会执行到所有程序的指令,也不会存取绝大部分数据,执行的代码和要存取的数据往往集中在某些区域中(例如一个循环、一个数组)。,

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

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

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