第六章存储管理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第六章存储管理课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 存储 管理 课件
- 资源描述:
-
1、12022-6-23第六章 存储管理第六章第六章 存储管理存储管理n6.1 6.1 主存管理的功能主存管理的功能n6.2 6.2 分区存贮管理分区存贮管理n6.3 6.3 分页存储管理分页存储管理n6.4 6.4 分段存储管理分段存储管理n6.5 6.5 段页式存储管理段页式存储管理n6.6 6.6 覆盖技术与交换技术覆盖技术与交换技术n6.7 6.7 虚拟存储虚拟存储22022-6-23第六章 存储管理6.1 6.1 主存管理的功能主存管理的功能 n6.1.1 6.1.1 地址映射地址映射 n6.1.2 6.1.2 主存分配主存分配 n6.1.3 6.1.3 存储保护存储保护 n6.1.4
2、6.1.4 主存扩充主存扩充(虚拟内存虚拟内存) 32022-6-23第六章 存储管理6.1.1 6.1.1 地址映射地址映射( (地址重定位地址重定位) )n内存的每个存储单元都有一个编号,这种编内存的每个存储单元都有一个编号,这种编号称为号称为内存地址(或称为物理地址,绝对地址)。)。n内存地址的集合称为内存地址的集合称为内存空间(或物理地址空间)。42022-6-23第六章 存储管理n要求用户用内存地址编程是非常困难的,尤要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环境中。其是在多道程序设计的环境中。n用户编程所用的地址称为用户编程所用的地址称为逻辑地址(或程序地址,或虚地
3、址),由逻辑地址组成的空间,由逻辑地址组成的空间称为称为逻辑地址空间(或程序地址空间)。52022-6-23第六章 存储管理 地址映射地址映射Load A 200 3456 。 。1200物理地址空间物理地址空间Load A data1data1 3456源程序源程序Load A 200 34560100200编译编译连接连接逻辑地址空间逻辑地址空间BA=100062022-6-23第六章 存储管理地址映射的方式地址映射的方式n我们把我们把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为,或称为地址重定位。n地址映射的方式:地址映射的方式: 1 1、静态
4、地址映射、静态地址映射2 2、动态地址映射、动态地址映射72022-6-23第六章 存储管理1、静态地址映射n程序被装入内存时由操作系统的程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。完成程序的逻辑地址到内存地址的转换。82022-6-23第六章 存储管理映射方法映射方法n假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR 。n例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令Load A,200就变为Load A,120092022-6-23第六章
5、存储管理优缺点优缺点n优点:不需要硬件的支持。优点:不需要硬件的支持。 n缺点:程序必须占用连续的内存空间;一旦缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动。程序装入后不能移动。 102022-6-23第六章 存储管理2 2、动态地址映射、动态地址映射n动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的硬件机构来完成的。 112022-6-23第六章 存储管理映射方法映射方法n最简单的硬件机构最简单的硬件机构是重定位寄存器。是重定位寄存器。n在地址重定位机构中,有一个基地址寄存器在地址重定位机构中,有一个基地址寄存器B
6、R和一个程序地址寄存器和一个程序地址寄存器VR,一个内存地一个内存地址寄存器址寄存器MR。122022-6-23第六章 存储管理 03456.LOAD A 200.0100200300.LOAD A 2003456110012001300200VR+1000BR132022-6-23第六章 存储管理地址映射的具体过程地址映射的具体过程n程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中。n在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中。 n地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址。142022-6-23第六章 存储管理动态地址
7、映射的优缺点优点:优点:n程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。n一个程序不一定要求占用一个连续的内存空间。n可以部分地装入程序运行。n便于多个进程共享同一个程序的代码。动态地址重定位的代价:n需要硬件的支持。n实现存储管理的软件算法较为复杂。152022-6-23第六章 存储管理 6.1.2 6.1.2 主存分配与回收主存分配与回收 要完成内存的分配和回收工作,要求设计者选择和确定以下几种策略和结构:n调入策略n放置策略n置换策略n分配结构162022-6-23第六章 存储管理调入策略n用户程序在何时调入内存的策略。n目前有
8、请调和预调两种172022-6-23第六章 存储管理放置策略n用户程序调入内存时,确定将其放置在何处的策略。182022-6-23第六章 存储管理置换策略n当需要将某个用户程序调入内存而内存空间又不够时,就要确定哪个或哪些程序可以从内存中移走。192022-6-23第六章 存储管理分配结构n分配结构是用来登记内存使用情况的数据结构。如空闲区表、空闲区队列等。202022-6-23第六章 存储管理引起内存分配和回收的原因n进程的开始的结束。n进程运行的过程中,它所占用的内存也可能发生变化。如栈的变化。n进程映像在内存和外存之间传递。由于内存有限,系统中不可能容纳所有进程,有些进程的映像可以存放在
9、外存,当要运行这些进程时,必须把它们调入内存。n系统为了充分利用内存空间,有时可能对内存空间进行调整。212022-6-23第六章 存储管理6.1.3 6.1.3 存储保护存储保护保证在内存中的多道程序只能在给定的存储保证在内存中的多道程序只能在给定的存储区域内活动并互不产生干扰。区域内活动并互不产生干扰。 包括:包括:n防止地址越界防止地址越界n防止越权防止越权( (对共享区有访问权对共享区有访问权) )222022-6-23第六章 存储管理存储保护的硬件支持存储保护的硬件支持n界地址寄存器(界限寄存器)n存储键232022-6-23第六章 存储管理界地址寄存器(界限寄存器)界地址寄存器(界
10、限寄存器)n界地址寄存器被广泛使用的一种存储保护技术n机制比较简单,易于实现242022-6-23第六章 存储管理实现方法n在CPU中设置一对下限寄存器和上限寄存器存放用户作业在主存中的下限和上限地址n也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)n每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界n如果未越界,则按此地址访问主存,否则将产生程序中断越界中断(存储保护中断)252022-6-23第六章 存储管理图示图示262022-6-23第六章 存储管理6.1.4 6.1.4 主存扩充主存扩充(虚拟内存虚拟内存)n为了使程序
11、员在编程时不受内存的结构和容量的限制,系统为用户构造一种存储器,其结构可能与内存结构不同,容量可能远远超过内存的实际容量。这种面向编程的存储器称为虚拟存储器。由虚存构成的存储空间称为虚存空间。或称虚地址空间。272022-6-23第六章 存储管理实现虚拟内存的基本原理实现虚拟内存的基本原理n将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。n由于程序在执行时,在一段时间内一般仅使用它的程序的一部分(或一小部分),所以程序仅有部分装入内存完全能够正确执行。n要由操作系统结合相关硬件来完成上述工件,这样计算机好象为用户提供了
12、一个容量远大于内存的存储器,这个存储器称为虚拟存储器。 282022-6-23第六章 存储管理6.2 6.2 分区存贮管理分区存贮管理 把整个内存划分为若干大小不等的区域,操作系统占用一个区域,其它区域供系统中的多个进程共享,这种方法称为分区存储管理。这是最简单的一种存储管理,按分区划分的时机可分为n6.2.16.2.1、固定分区、固定分区n6.2.26.2.2、动态分区、动态分区292022-6-23第六章 存储管理6.2.1 6.2.1 固定分区固定分区n固定分区就是把内存固定地划分为若干个大小不等的区域。分区的划分由计算机的操作员或者由操作系统给出,并给出分区说明表。n早期的IBM的OS
13、/360MFT(具有固定任务数的多道程序系统)采用了这种固定分区的方法。302022-6-23第六章 存储管理举例举例n某系统的内存容量为某系统的内存容量为256256K K,操作系统占用低操作系统占用低地址的地址的2020K K,其余空间划分成其余空间划分成4 4个固定大小的个固定大小的分区。如下图分区。如下图312022-6-23第六章 存储管理图示图示322022-6-23第六章 存储管理分区说明表分区说明表分区号分区号大小大小(KB)始址始址状态状态1820已分配已分配23228已分配已分配36460已分配已分配4132124未分配未分配332022-6-23第六章 存储管理固定分区性
14、能分析固定分区性能分析n在作业大小和出现频率均已知的情况下,固定分区是合适的。在这种情况下分区的大小选择与作业大小相当,这样内存的使用效率较高。n但是若作业的大小和出现的频率不知道时,势必造成分区的大小和作业的大小相差甚远,这样就会造成存储空间的浪费,从而影响整个系统的效率。 342022-6-23第六章 存储管理6.2.2 6.2.2 动态分区动态分区n动态分区是指在系统运行的过程中建立分区,并使分区的大小刚好与作业的大小相等。这种存储管理的方法解决了固定分区严重浪费内存的问题。是一种较为实用的存储管理方法。352022-6-23第六章 存储管理实现动态分区需要的数据结构n在动态分区存储管理
15、中,要有相应的数据结构来登记空闲区的说明信息,它包括空闲区的大小和位置。n不同系统根据设计要求采用不同的结构。常用的有表结构和队列结构。n系统还要设置了等待分区队列,当系统中无空闲区或无满足要求的空闲区时,则把申请者送入等待队列中,等待别的进程释放内存之后再唤醒队列中的进程。362022-6-23第六章 存储管理空闲区表和空闲区队列举例372022-6-23第六章 存储管理动态分区的分配和回收动态分区的分配和回收1 1、分区的分配、分区的分配 在采用分区存储管理的系统中,系统初启后。除操作系统占用一个分区外,其余存储区为一个大的空闲区。 分区的分配是指系统根据用户的请求,在空闲区表或空闲区队列
16、中寻找一个满足用户要求的空闲区,把这个空闲区分配给用户。以空闲区表为例,当用户要求一个大小为SIZE的存储空间时,系统查询空闲区表,找一个大于或等于SIZE的空闲区。382022-6-23第六章 存储管理分配时的三种情况分配时的三种情况n其一是系统中无满足要求的空闲区,则分配失败。n其二是空闲区大小与SIZE相等,则修改空闲区表相应表目,向用户返回该空闲区首址,表示此空闲区已分给了要求的用户。392022-6-23第六章 存储管理 n其三是空闲区大于SIZE,这时将空闲区一分为二。将一个空闲区分成二部分有两种办法:一是从空闲区的上部开始划出SIZE大小的空闲区给用户;二是从空闲区的底部开始向上
17、划出SIZE大小的空闲区给用户。一般常采用第二种办法,因为这样划分时,余下的部分在空闲区表中的首地址不变,只需要修改一下大小就行了。402022-6-23第六章 存储管理2 2、分区的回收、分区的回收 当某个进程释放某存储区时,系统首先检查释放区是否与系统中的空闲区相邻,若相邻则把释放区合并到相邻的空闲区中去,否则把释放区作为一个空闲区插入到空闲区表的适当位置。412022-6-23第六章 存储管理释放区与空闲区相邻的四种情况释放区与空闲区相邻的四种情况422022-6-23第六章 存储管理说明说明n释放区与前空闲区相邻:将释放区与前空闲区合并为一个空闲区。其首址仍为前空闲区首址,大小为释放区
18、大小与空闲区大小之和。n释放区与前后两个空闲区相邻:将这三个区合为一个空闲区,其首址为前空闲区首址,大小为这三个区大小之和,并取消原后空闲区表目。n释放区与后空闲区相邻:则把释放区合并到后空闲,首地址为释放区首地址,大小为二者大小之和。n释放区不与任何空闲区相邻:将释放区作为一个空闲区,将其大小和首址插入到空闲区表的适当位置。432022-6-23第六章 存储管理三种放置策略三种放置策略n1 1、空闲区表或队列的排序、空闲区表或队列的排序 n2 2、首次适应法、首次适应法 n3 3、最佳适应法、最佳适应法 n4 4、最坏适应法、最坏适应法 n5 5、三种策略比较、三种策略比较442022-6-
19、23第六章 存储管理1 1、空闲区表或队列的排序、空闲区表或队列的排序n按空闲区按空闲区首址首址递增的次序归类组织空闲区表递增的次序归类组织空闲区表或空闲区队列或空闲区队列n按空闲区按空闲区大小大小的递增或递减次序组织空闲区的递增或递减次序组织空闲区表或队列表或队列 452022-6-23第六章 存储管理2 2、首次适应法、首次适应法n要求空闲区按要求空闲区按首址递增的次序组织的次序组织空闲区表(队列)。空闲区表(队列)。 462022-6-23第六章 存储管理n分配:当进程申请大小为分配:当进程申请大小为SIZESIZE的内存时,系的内存时,系统从空闲区表的第一个表目开始查询,直到统从空闲区
20、表的第一个表目开始查询,直到首次找到等于或大于首次找到等于或大于SIZESIZE的空闲区。从该区的空闲区。从该区中划出大小为中划出大小为SIZESIZE的分区分配给进程,余下的分区分配给进程,余下的部分仍作为一个空闲区留在空闲区表中,的部分仍作为一个空闲区留在空闲区表中,但要修改其首址和大小。但要修改其首址和大小。472022-6-23第六章 存储管理n回收:按释放区的首址,查询空闲区表,若回收:按释放区的首址,查询空闲区表,若有与释放区相邻的空闲区,则合并到相邻的有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,空闲区中,并修改该区的大小和首址,否则,把释放区作为
21、一个空闲区,将其大小和首址把释放区作为一个空闲区,将其大小和首址按照首地址大小递增按照首地址大小递增的顺序插入到空闲区表的顺序插入到空闲区表的适当位置。的适当位置。482022-6-23第六章 存储管理分析分析n注意:每次分配和回收后空闲区表或空闲区队列都要按首址递增的次序排序。首次适应法的优点:首次适应法的优点:n释放某一存储区时,若与空闲区相邻则合并到释放某一存储区时,若与空闲区相邻则合并到相邻空闲分区中去,这种情况并不改变该区在相邻空闲分区中去,这种情况并不改变该区在表中的位置,只要修改其大小或首址。表中的位置,只要修改其大小或首址。n这种算法是尽可能地利用低地址空间,从而保这种算法是尽
22、可能地利用低地址空间,从而保证高地址空间有较大的空闲区。证高地址空间有较大的空闲区。 492022-6-23第六章 存储管理最佳适应法最佳适应法n要求按空闲区大小从小到大的次序组成空闲区表(队列)。502022-6-23第六章 存储管理n分配:分配:当进程申请一个存储区时,系统从表当进程申请一个存储区时,系统从表头开始查找,当找到第一个满足要求的空闲头开始查找,当找到第一个满足要求的空闲区时,停止查找,并且这个空闲区是最佳的区时,停止查找,并且这个空闲区是最佳的空闲区。空闲区。n所谓最佳即选中的空闲区是满足要求的最小所谓最佳即选中的空闲区是满足要求的最小空闲区。空闲区。512022-6-23第
23、六章 存储管理n回收:按释放区的首址,查询空闲区表(队回收:按释放区的首址,查询空闲区表(队列)列) ,若有与释放区相邻的空闲区,则合并,若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空址,否则,把释放区作为一个空闲区插入空闲区表(队列)闲区表(队列) 。n分配和回收后要对空闲区表(队列)重新排分配和回收后要对空闲区表(队列)重新排序。序。522022-6-23第六章 存储管理分析分析优点:优点:n在系统中若存在一个与申请分区大小相等的空闲区,必定会被选中,而首次适应法则不一定。n若系统中不存在与
24、申请分区大小相等的空闲区,则选中的空闲区是满足要求的最小空闲区,而不致于毁掉较大的空闲区。缺点:缺点:n空闲区的大小一般与申请分区大小不相等,因此将其一分为二,留下来的空闲区一般情况下是很小的,以致无法使用。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储区的大量浪费。 532022-6-23第六章 存储管理最坏适应法最坏适应法n要求空闲区按要求空闲区按大小递减的顺序组织的顺序组织空闲区表(或队列)。空闲区表(或队列)。542022-6-23第六章 存储管理n分配:进程申请一个大小为分配:进程申请一个大小为SIZE的存储区时,的存储区时,总是检查空闲区表的第一个空闲区的大小是总是检查空
25、闲区表的第一个空闲区的大小是否大于或等于否大于或等于SIZE。若空闲区小于若空闲区小于SIZE,则则分配失败;否则从空闲区中分配分配失败;否则从空闲区中分配SIZE的存储的存储区给用户,然后修改和调整空闲区表。区给用户,然后修改和调整空闲区表。552022-6-23第六章 存储管理n回收:按释放区的首址,查询空闲区表(队回收:按释放区的首址,查询空闲区表(队列)列) ,若有与释放区相邻的空闲区,则合并,若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空址,否则,把释放区作为一个空闲区插入空闲区表(队
展开阅读全文