第4章 内存管理精选文档.ppt
《第4章 内存管理精选文档.ppt》由会员分享,可在线阅读,更多相关《第4章 内存管理精选文档.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 内存管理本讲稿第一页,共八十七页4.1 4.1 内存管理的功能内存管理的功能 内存空间的分配和回收内存空间的分配和回收地址转换地址转换内存空间的共享和保护内存空间的共享和保护内存空间的逻辑扩充内存空间的逻辑扩充本讲稿第二页,共八十七页4.1.1 4.1.1 内存的分配与回收内存的分配与回收内存分配按分配时机的不同,可分为三种方式:内存分配按分配时机的不同,可分为三种方式:1.1.直接分配直接分配 采采用用物物理理内内存存地地址址编编写写程程序序。使使用用这这种种方方式式,必必须须事事先先划划定定内内存存的的使使用用空空间间,因因此此,内内存存利利用用率率不不高高,用用户户使使用较困难。
2、用较困难。2.2.静态分配静态分配 在在作作业业运运行行之之前前各各目目标标模模块块连连接接后后,把把整整个个作作业业一一次次性性全全部部装装入入内内存存,并并在在作作业业的的整整个个运运行行过过程程中中,不不允允许许作作业业再再申申请请其其他他内内存存,或或在在内内存存中中移移动动位位置置。也也就就是是说说,内内存分配是在作业运行前一次性完成的。存分配是在作业运行前一次性完成的。本讲稿第三页,共八十七页4.1.1 4.1.1 内存的分配与回收内存的分配与回收3.3.动态分配动态分配 作作业业要要求求的的基基本本内内存存空空间间是是在在目目标标模模块块装装入入内内存存时时分分配配的的,但但在在
3、作作业业运运行行过过程程中中,允允许许作作业业申申请请附附加加的的内内存存空空间间,或或是是在在内内存存中中移移动动,即即分分配配工工作作可可以以在在作业运行前及运行过程中逐步完成。作业运行前及运行过程中逐步完成。本讲稿第四页,共八十七页4.1.2 4.1.2 地址转换地址转换 把用户程序装入内存时对有关指令的地把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址址部分的修改定义为从程序地址到内存地址的的地址转换地址转换,或称为,或称为地址重定位地址重定位。1.1.物理地址与逻辑地址物理地址与逻辑地址 物物理理地地址址也也称称内内存存地地址址,它它是是用用于于唯唯一一标标识
4、识一一个个内内存存单单元元的的编编号号。所所有有的的物物理理地地址址构构成了成了物理空间物理空间。本讲稿第五页,共八十七页4.1.2 4.1.2 地址转换地址转换 逻逻辑辑地地址址也也称称程程序序地地址址,它它是是指指在在源源程程序序经经过过汇汇编编或或编编译译后后形形成成的的目目标标代代码码中中,用用于于反反映映目目标标代代码码中中指指令或数据的相对位置关系的地址。令或数据的相对位置关系的地址。逻逻辑辑地地址址都都是是以以“0 0”为为基基址址顺顺序序进进行行编编址址的的,这这样样生生成成的的目目标标程程序序占占据据一一定定的的地地址址空空间间,称称为为程程序序的的逻辑地址空间逻辑地址空间,
5、简称,简称逻辑空间逻辑空间。用符号地址(符号名)表示的程序空间称为用符号地址(符号名)表示的程序空间称为名空间名空间。地址重定位的原因是什么地址重定位的原因是什么?本讲稿第六页,共八十七页 因因为为程程序序在在装装入入内内存存后后,其其逻逻辑辑地地址址和和物理地址不一致。物理地址不一致。本讲稿第七页,共八十七页地址映射地址映射Load A 200Load A 200 3456 3456 。12001200物理地址空间物理地址空间Load A data1Load A data1data1 3456data1 3456源程序源程序Load A 200Load A 200 3456 34560 01
6、00100200200编译编译连接连接逻辑地址空间逻辑地址空间BA=1000BA=1000(名空间)(名空间)本讲稿第八页,共八十七页静态重定位静态重定位 是在程序执行之前由操作系统的连接装入程序完成地是在程序执行之前由操作系统的连接装入程序完成地址转换。址转换。优点:不需要硬件的支持。优点:不需要硬件的支持。缺点:程序必须占用连续的内存空间;缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动。一旦程序装入后不能移动。2.2.地址重定位的方式地址重定位的方式本讲稿第九页,共八十七页动态重定位动态重定位 在程序执行期间进行的地址转换,是由专门的硬在程序执行期间进行的地址转换,是由专门的硬件
7、机构来完成的。件机构来完成的。优点:程序占用的内存空间是动态可变的,当程序从某个存储优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器区移到另一个区域时,只需要修改相应的寄存器BRBR的内容即的内容即可。可。缺点:需要硬件的支持;缺点:需要硬件的支持;实现存储管理的软件算法较为复杂。实现存储管理的软件算法较为复杂。本讲稿第十页,共八十七页03456.LOAD A 200.0100200300.LOAD A 2003456110012001300200VR+1000BR动态重定位示意图动态重定位示意图本讲稿第十一页,共八十七页4.1.3 4.1.3
8、内存的共享和保护内存的共享和保护内存空间的共享:内存空间的共享:内存空间的共享:内存空间的共享:在多道程序设计系统中,同时进入主存执行的作业可在多道程序设计系统中,同时进入主存执行的作业可在多道程序设计系统中,同时进入主存执行的作业可在多道程序设计系统中,同时进入主存执行的作业可能需要调用相同的程序或数据,这就是能需要调用相同的程序或数据,这就是能需要调用相同的程序或数据,这就是能需要调用相同的程序或数据,这就是内存的共享内存的共享内存的共享内存的共享。例如,调用编译程序进行编译,把这个编译程序例如,调用编译程序进行编译,把这个编译程序例如,调用编译程序进行编译,把这个编译程序例如,调用编译程
9、序进行编译,把这个编译程序存放在某个区域中,各作业要调用时就访问这个区域,存放在某个区域中,各作业要调用时就访问这个区域,存放在某个区域中,各作业要调用时就访问这个区域,存放在某个区域中,各作业要调用时就访问这个区域,因此这个区域就是共享的。因此这个区域就是共享的。因此这个区域就是共享的。因此这个区域就是共享的。同样也可以实现公共数据的共享。同样也可以实现公共数据的共享。同样也可以实现公共数据的共享。同样也可以实现公共数据的共享。本讲稿第十二页,共八十七页4.1.3 4.1.3 内存的共享和保护内存的共享和保护 在实现内存分配与共享时,必须解决内存中信息在实现内存分配与共享时,必须解决内存中信
10、息的保护问题。存储保护的工作一般由硬件和软件配合的保护问题。存储保护的工作一般由硬件和软件配合实现。实现。1.1.上、下界存储保护上、下界存储保护:系统可为每个作业设置一对上、下:系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。边界地址,用它们来限制用户程序的活动范围。2.2.基址限长存储保护基址限长存储保护:上、下界保护的一个变种是采用:上、下界保护的一个变种是采用基址基址限长存储保护。限长存储保护。本讲稿第十三页,共八十七页4.1.3 4.1.3 内存的保护内存的
11、保护本讲稿第十四页,共八十七页4.1.4 4.1.4 内存空间的逻辑扩充内存空间的逻辑扩充 对内存进行逻辑上的扩充,现在普遍采用覆盖、对内存进行逻辑上的扩充,现在普遍采用覆盖、交换和虚拟存储器技术。交换和虚拟存储器技术。虚拟存储器虚拟存储器是具有请求调入功能和置换功能,能仅把是具有请求调入功能和置换功能,能仅把作业的一部分装入内存便可运行作业的存储器系统,它是一作业的一部分装入内存便可运行作业的存储器系统,它是一种能从逻辑上对内存容量进行扩充的虚构的存储器系统。种能从逻辑上对内存容量进行扩充的虚构的存储器系统。虚拟存储器的理论基础是程序的局部性原理。包括虚拟存储器的理论基础是程序的局部性原理。
12、包括时间时间局部性局部性和和空间局部性空间局部性。什么是时间局部性什么是时间局部性?什么是空间局部性什么是空间局部性?本讲稿第十五页,共八十七页4.1.4 4.1.4 内存空间的逻辑扩充内存空间的逻辑扩充 虚拟存储器的基本思想虚拟存储器的基本思想是把有限的内存空间与大是把有限的内存空间与大容量的外存统一管理,构成一个远大于实际内存的、容量的外存统一管理,构成一个远大于实际内存的、虚拟的存储器。此时,外存是作为内存的直接延伸,虚拟的存储器。此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区别,即把两级存储器用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。当作一级存储
13、器来看待。一个作业运行时,其全部信息装入虚存,实际上一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,其他可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系统自动则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。将其从外存调入内存。本讲稿第十六页,共八十七页4.2.1 4.2.1 单分区管理单分区管理4.2.2 4.2.2 固定分区固定分区4.2.3 4.2.3 可变分区可变分区4.2.4 4.2.4 覆盖与交换覆盖与交换4.2 4.2 分区管理分区管理 本讲稿第十七页,共八十七页4.2.1 4.2.1 单分
14、区管理单分区管理 这这是是一一种种最最简简单单的的连连续续存存储储管管理理方方式式。但但只只能能用用于于单单用用户户、单任务的操作系统中。单任务的操作系统中。系系统统区区:仅仅提提供供给给操操作作系系统统使使用用,通通常常设设置置在在内内存存的的低低址部分;址部分;用用户户区区:指指除除系系统统区区以以外外的的全全部部内内存存空空间间,提提供供给给用户使用。用户使用。空闲区:指剩余部分存储区。空闲区:指剩余部分存储区。本讲稿第十八页,共八十七页4.2.2 4.2.2 固定分区固定分区 把把可可用用空空间间划划分分成成若若干干个个固固定定大大小小的的存存储储区区,除除操操作作系系统统占占用用一一
15、个个区区域域外外,其其余余区区域域为为系系统统中中多多个个用用户户共共享享,因因为为在在系系统统运运行行期期间间,分分区区大大小小、数数目目都都不不变变,所所以以固固定定分分区区也也称称为为静态分区静态分区。本讲稿第十九页,共八十七页分区说明表分区说明表本讲稿第二十页,共八十七页4.2.3 4.2.3 可变分区可变分区1 1、基基本本思思想想:分分区区大大小小、数数目目可可变变,所所以以可可变变分分区也称为区也称为动态分区动态分区。它是根据用户作业的大小,在作业要求装入主存时,它是根据用户作业的大小,在作业要求装入主存时,动态地划分分区,使分区的大小正好适应作业的要求。动态地划分分区,使分区的
16、大小正好适应作业的要求。可变分区存储管理方式必须解决三个问题:可变分区存储管理方式必须解决三个问题:一是分区分配中所用的数据结构;一是分区分配中所用的数据结构;二是分区的分配算法;二是分区的分配算法;三是分区的分配和回收。三是分区的分配和回收。本讲稿第二十一页,共八十七页 可变分区内存使用情况示意图可变分区内存使用情况示意图本讲稿第二十二页,共八十七页2 2可变分区管理中的数据结构可变分区管理中的数据结构 本讲稿第二十三页,共八十七页最先适应算法最先适应算法 按空闲区地址递增的次序分配按空闲区地址递增的次序分配最优适应算法最优适应算法 按空闲区由小到大的次序分配按空闲区由小到大的次序分配最坏适
17、应算法最坏适应算法 按空闲区由大到小的次序分配按空闲区由大到小的次序分配3 3内存的分配算法内存的分配算法 本讲稿第二十四页,共八十七页(1 1)最先适应分配算法()最先适应分配算法(FFFF)它要求空闲分区表中的记录它要求空闲分区表中的记录按地址递增的顺序排列按地址递增的顺序排列。在每次分配主存时,总是从第在每次分配主存时,总是从第1 1条记录开始顺序查找空闲条记录开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区。一部分分配给作业,另一部分仍作为空割这个空闲区。一部分分配给作业,另一部分仍作为空闲区。闲区。特点是算法
18、简单,容易产生过多的主存碎片。特点是算法简单,容易产生过多的主存碎片。主存碎片主存碎片是指小的不能使用的主存空间;这种算是指小的不能使用的主存空间;这种算法把大的空闲区分成了小的空闲区,当有大作业要求法把大的空闲区分成了小的空闲区,当有大作业要求分配时,不能满足要求,降低了系统的效率。分配时,不能满足要求,降低了系统的效率。本讲稿第二十五页,共八十七页(2 2)最优适应分配算法()最优适应分配算法(BFBF)它是从所有的空闲分区中挑选一个能满足作业要求它是从所有的空闲分区中挑选一个能满足作业要求它是从所有的空闲分区中挑选一个能满足作业要求它是从所有的空闲分区中挑选一个能满足作业要求的最小空闲区
19、进行分配。这样可以保证不去分割一个更的最小空闲区进行分配。这样可以保证不去分割一个更的最小空闲区进行分配。这样可以保证不去分割一个更的最小空闲区进行分配。这样可以保证不去分割一个更大的空闲区,使装入大作业时比较容易得到满足。为实大的空闲区,使装入大作业时比较容易得到满足。为实大的空闲区,使装入大作业时比较容易得到满足。为实大的空闲区,使装入大作业时比较容易得到满足。为实现这种算法,把空闲区现这种算法,把空闲区现这种算法,把空闲区现这种算法,把空闲区按长度递增次序按长度递增次序按长度递增次序按长度递增次序登记在空闲分区表登记在空闲分区表登记在空闲分区表登记在空闲分区表中,分配时,顺序查找。中,分
20、配时,顺序查找。中,分配时,顺序查找。中,分配时,顺序查找。它的优点是解决了大作业的分配问题,不足是它的优点是解决了大作业的分配问题,不足是它的优点是解决了大作业的分配问题,不足是它的优点是解决了大作业的分配问题,不足是容易产生主存碎片,降低了主存空间的利用率。另容易产生主存碎片,降低了主存空间的利用率。另容易产生主存碎片,降低了主存空间的利用率。另容易产生主存碎片,降低了主存空间的利用率。另外收回主存时,要按长度递增顺序插入到空闲分区外收回主存时,要按长度递增顺序插入到空闲分区外收回主存时,要按长度递增顺序插入到空闲分区外收回主存时,要按长度递增顺序插入到空闲分区表中,增加了系统开销。表中,
21、增加了系统开销。表中,增加了系统开销。表中,增加了系统开销。本讲稿第二十六页,共八十七页(3 3)最坏适应分配算法()最坏适应分配算法(WFWF)它每次分配主存时总是挑选一个最大的空闲区,分它每次分配主存时总是挑选一个最大的空闲区,分它每次分配主存时总是挑选一个最大的空闲区,分它每次分配主存时总是挑选一个最大的空闲区,分割一部分给作业使用,使剩下的部分不至于太小而成为割一部分给作业使用,使剩下的部分不至于太小而成为割一部分给作业使用,使剩下的部分不至于太小而成为割一部分给作业使用,使剩下的部分不至于太小而成为主存碎片。为实现这种算法,把空闲区主存碎片。为实现这种算法,把空闲区主存碎片。为实现这
22、种算法,把空闲区主存碎片。为实现这种算法,把空闲区按长度递减的次按长度递减的次按长度递减的次按长度递减的次序序序序登记在空闲分区表中,分配时,顺序查找。登记在空闲分区表中,分配时,顺序查找。登记在空闲分区表中,分配时,顺序查找。登记在空闲分区表中,分配时,顺序查找。它的优点是不会产生过多的碎片。不影响大作业的分它的优点是不会产生过多的碎片。不影响大作业的分它的优点是不会产生过多的碎片。不影响大作业的分它的优点是不会产生过多的碎片。不影响大作业的分配。另外收回主存时,要按长度递减的顺序插入到空闲分配。另外收回主存时,要按长度递减的顺序插入到空闲分配。另外收回主存时,要按长度递减的顺序插入到空闲分
23、配。另外收回主存时,要按长度递减的顺序插入到空闲分区表中,增加了系统开销。区表中,增加了系统开销。区表中,增加了系统开销。区表中,增加了系统开销。本讲稿第二十七页,共八十七页 有有作作业业序序列列:作作业业A A要要求求18K18K;作作业业B B要求要求25K25K,作业,作业C C要求要求30K30K。如下图。如下图。系系统统中中空空闲闲区区按按三三种种算算法法组组成成的的空空闲闲区区队队列列如如下下,经经分分析析可可知知:最最佳佳适适应应法法对对这这个个作作业业序序列列是是合合适适的的,而而其其它它两两种种对对该该作作业业序列是不合适的。序列是不合适的。举例举例本讲稿第二十八页,共八十七
24、页本讲稿第二十九页,共八十七页 有作业序列:作业有作业序列:作业A A要求要求21K21K;作业;作业B B要求要求30K30K,作业,作业C C要求要求25K25K,分析使用哪种分配算法最佳?,分析使用哪种分配算法最佳?课堂练习:课堂练习:本讲稿第三十页,共八十七页4 4内存的回收内存的回收 当当某某一一个个用用户户作作业业完完成成释释放放所所占占分分区区时时,系统应进行回收。系统应进行回收。在在可可变变式式分分区区中中,应应该该检检查查回回收收区区与与内内存存中中前后空闲区是否相邻:前后空闲区是否相邻:若若相相邻邻,则则应应进进行行合合并并,形形成成一一个个较较大大的的空空闲闲区区,并并对
25、对相相应应的的链链表表指指针针进进行行修修改改;若若不不相相邻邻,应应将将空空闲闲区区插插入入到到空空闲闲区区链链表表的的适当位置。适当位置。本讲稿第三十一页,共八十七页n回收的分区前后没有相邻的空闲分区。回收的分区前后没有相邻的空闲分区。n回收分区的前面有相邻的空闲分区。回收分区的前面有相邻的空闲分区。n回收分区的后面有相邻的空闲分区。回收分区的后面有相邻的空闲分区。n回收分区的前后都有相邻的空闲分区。回收分区的前后都有相邻的空闲分区。本讲稿第三十二页,共八十七页5 5、分区保护、分区保护 存储保护是为了防止一个作业破坏操作系统或其他作业。存储保护是为了防止一个作业破坏操作系统或其他作业。1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 内存管理精选文档 内存 管理 精选 文档
限制150内