操作系统_第五章存储管理.ppt
《操作系统_第五章存储管理.ppt》由会员分享,可在线阅读,更多相关《操作系统_第五章存储管理.ppt(127页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第五五章章 存储管理存储管理n5.1 存储管理的功能存储管理的功能n5.2 实存管理实存管理(分区)(分区)n5.3 覆盖与交换覆盖与交换n5.4 虚拟存储器管理虚拟存储器管理(分页,段)(分页,段)n5.5 碎片与抖动问题碎片与抖动问题本章学习目标本章学习目标n存储管理的目的和四大基本功能。存储管理的目的和四大基本功能。n 实实存存管管理理中中讲讲述述了了固固定定分分区区存存储储管管理理、可可变变式式分分区区存存储储管管理理、纯纯分分页页存存储储管管理理三三种种存存储储管管理理方方案案的的实实现现原原理理,内内存存的的分分配配与与回收方法回收方法.n虚虚存存管管理理以以请请求求式式分分页页
2、存存储储管管理理为为重重点点,讲述其实现原理和动态地址重定位过程讲述其实现原理和动态地址重定位过程.n总总结结各各种种存存储储管管理理方方案案中中存存在在的的碎碎片片和和抖抖动问题及解决方法动问题及解决方法 存储体系概述存储体系概述1.存储体系存储体系 操作系统协调各存储器的使用。操作系统协调各存储器的使用。重要性:重要性:直接存取要求内存速度尽量快到与直接存取要求内存速度尽量快到与CPU取指速度相匹配,大到能装下当前运行取指速度相匹配,大到能装下当前运行的程序与数据,否则的程序与数据,否则CPU执行速度就会受到执行速度就会受到内存速度和容量的影响而得不到充分发挥内存速度和容量的影响而得不到充
3、分发挥多级存储多级存储图4.1 多级存储器体系示意图2.2.内存内存 由存储单元(字节或字)组成的一维连续的地由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器。所指的、亦即程序计数器所指的存储器。分为:分为:系统区:用于存放操作系统系统区:用于存放操作系统 用户区:用于装入并存放用户程序和数据用户区:用于装入并存放用户程序和数据3.存储管理的目的存储管理的目的1 1、充分利用内存,为多道程序并发执行提供充分利用
4、内存,为多道程序并发执行提供 存储基础。存储基础。2 2、尽可能方便用户使用。、尽可能方便用户使用。3 3、自动装入用户程序。、自动装入用户程序。4 4、用户程序中不必考虑硬件细节。、用户程序中不必考虑硬件细节。5 5、系统能够解决程序空间比实际内存空间大的、系统能够解决程序空间比实际内存空间大的问题。问题。6 6、程序在执行时可以动态伸缩、程序在执行时可以动态伸缩7 7、内存存取速度快、内存存取速度快8 8、存储保护与安全、存储保护与安全9 9、共享与通信、共享与通信1010、了解有关资源的使用状况、了解有关资源的使用状况5.1 存储管理的功能存储管理的功能n5.1.1 内存的分配与回收内存
5、的分配与回收n5.1.2 地址重定位地址重定位 n5.1.3 存储保护存储保护n5.1.4 虚拟存储器虚拟存储器 返回首页5.1.1 内存的分配与回收内存的分配与回收n内内存存分分配配按按分分配配时时机机的的不不同同,可可分分为为两两种种方式。方式。(1)静态存储分配)静态存储分配(2)动态存储分配)动态存储分配 返回本节5.1.2 地址重定位地址重定位程序在成为进程前的准备工作程序在成为进程前的准备工作l编辑:形成源文件编辑:形成源文件(符号地址符号地址)l编译:形成目标模块编译:形成目标模块(模块内符号地址解析模块内符号地址解析)l链接:由多个目标模块或程序库生成可执链接:由多个目标模块或
6、程序库生成可执行文件行文件(模块间符号地址解析模块间符号地址解析)l装入:构造装入:构造PCB,形成进程形成进程(使用物理地址使用物理地址)n重定位方法:重定位方法:l绝对装入绝对装入l可重定位装入可重定位装入l动态装入动态装入1.逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射n逻辑地址逻辑地址(相对地址,虚地址):用户的(相对地址,虚地址):用户的程序中相对于某个基准量(通常为程序中相对于某个基准量(通常为0)编址)编址所用的地址。所用的地址。l其首地址为其首地址为0,其余指令中的地址都相对,其余指令中的地址都相对于首地址来编址。于首地址来编址。l不能用逻辑地址在内存中读取信息。不
7、能用逻辑地址在内存中读取信息。n物理地址物理地址(绝对地址,实地址):内存中(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。存储单元的地址。物理地址可直接寻址。地址空间:相对地址的集合(虚地址空地址空间:相对地址的集合(虚地址空 间)。间)。存储空间:绝对地址的集合(实地址空存储空间:绝对地址的集合(实地址空 间)。间)。n地址映射地址映射:将用户程序中的逻辑地址转换:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。为运行时由机器直接寻址的物理地址。l当程序装入内存时当程序装入内存时,操作系统要为该程序操作系统要为该程序分配一个合适的内存空间,由于分配一个合适的内存
8、空间,由于程序的程序的逻辑地址与分配到内存物理地址不一致逻辑地址与分配到内存物理地址不一致,而而CPU执行指令时,是按物理地址进行的,执行指令时,是按物理地址进行的,所以要进行地址转换。所以要进行地址转换。图5.2 作业的名空间、逻辑地址空间和装入后的物理空间2.绝对装入绝对装入(absolute loading)在可执行文件中记录内存地址,装入时直接定位在上述(即文件中记录的地址)内存地址。n优点:装入过程简单。优点:装入过程简单。n缺点:过于依赖于硬件结构,不适于多道缺点:过于依赖于硬件结构,不适于多道程序系统。程序系统。3.可重定位装入可重定位装入(relocatable loading
9、)程序在执行前集中一次性完成的地址程序在执行前集中一次性完成的地址变换方式,只完成一个首地址不同的变换方式,只完成一个首地址不同的连续地址转换。连续地址转换。优点:不需硬件支持,可装入有限多道程序缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。可执行文件在内存中的重定位说明:重定位表中列出所有修改的位置。如:重定位表的150表示相对地址150处的内容为相对地址(即100为从0起头的相对位置)。在装入时,要依据重定位后的起头位置(2000)修改相对地址。重定位修改:重定位表中的150-绝对地址2150(=2000+150)内容修改:内容100变成2100(=100
10、+2000)。4.动态装入动态装入(dynamic run-time loading)程序在执行过程中,当程序在执行过程中,当CPU访问指令或数访问指令或数据时进行的地址变换方式,。据时进行的地址变换方式,。优点:优点:OS可以将一个程序分散存放于不连续的内存空可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享。间,可以移动程序,有利用实现共享。能够支持程序执行中产生的地址引用,如指针能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。变量(而不仅是生成可执行文件时的地址引用)。缺点:需要硬件支持(通常是缺点:需要硬件支持(通常是CPU),)
11、,OS实现较复杂。它是虚拟存储的基础。实现较复杂。它是虚拟存储的基础。图4.3 静态地址重定位和动态地址重定位示意图(b)采用动态重定位时内存空 间及地址重定位示意图(a)采用静态重定位后的内存空间返回本节5.1.3 存储保护存储保护(1)上、下界存储保护:上、下界保护是一)上、下界存储保护:上、下界保护是一种简单的存储保护技术。如图种简单的存储保护技术。如图4.4(a)所示所示(2)基址)基址限长存储保护:上、下界保护限长存储保护:上、下界保护的一个变种是采用基址的一个变种是采用基址限长存储保护。限长存储保护。如图如图4.4(b)所示。所示。(a)上、下界保 (b)基址限长保护图4.4 界限
12、寄存器的两种存储保护方式返回本节5.1.4 虚拟存储器虚拟存储器n虚拟存储技术的基本思想是把有限的内存虚拟存储技术的基本思想是把有限的内存空间与大容量的外存统一管理起来,构成空间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。一个远大于实际内存的、虚拟的存储器。即把两级存储器当作一级存储器来看待。即把两级存储器当作一级存储器来看待。n对用户而言,感觉到系统提供了一个大容对用户而言,感觉到系统提供了一个大容量的内存,供用户使用,但这样大容量的量的内存,供用户使用,但这样大容量的内存实际上并不存在,是一种虚拟的存储内存实际上并不存在,是一种虚拟的存储器,因此把具有这种功能的存储
13、管理技术器,因此把具有这种功能的存储管理技术称为虚拟存储管理。称为虚拟存储管理。返回本节虚拟存储技术的核心虚拟存储技术的核心 其核心是把作业的地址空间和主存的存储空其核心是把作业的地址空间和主存的存储空间看做两个不同的概念。一个计算机为程间看做两个不同的概念。一个计算机为程序员提供了多大的地址空间,他就可以在序员提供了多大的地址空间,他就可以在这个地址空间内编制多大的程序,而完全这个地址空间内编制多大的程序,而完全不顾及实际内存的大小。不顾及实际内存的大小。所谓虚拟存储器就是一个地址空间,正如所谓虚拟存储器就是一个地址空间,正如主存对应于存储空间一样。主存对应于存储空间一样。虚存的形式虚存的形
14、式1、单段式虚存:是一个连续的线性空、单段式虚存:是一个连续的线性空 间,其间,其 地址顺序为:地址顺序为:0,1,2,.n1,n。2、多段式虚存:把地址空间分成若干多段式虚存:把地址空间分成若干 个段,个段,而在每一个段内则是一个连而在每一个段内则是一个连续的线性空间。续的线性空间。*引入虚拟存储技术的好处引入虚拟存储技术的好处n大程序大程序:可在较小的可用内存中执行较:可在较小的可用内存中执行较大的用户程序;大的用户程序;n大的用户空间大的用户空间:提供给用户可用的虚拟:提供给用户可用的虚拟内存空间通常大于物理内存;内存空间通常大于物理内存;n并发并发:可在内存中容纳更多程序并发执:可在内
15、存中容纳更多程序并发执行。行。虚拟存储技术的特征虚拟存储技术的特征n不连续性不连续性:物理内存分配的不连续,虚拟地址空间:物理内存分配的不连续,虚拟地址空间使用的不连续(数据段和栈段之间的空闲空间,共使用的不连续(数据段和栈段之间的空闲空间,共享段和动态链接库占用的空间)享段和动态链接库占用的空间)n部分交换部分交换:与交换技术相比较,虚拟存储的调入和:与交换技术相比较,虚拟存储的调入和调出是对部分虚拟地址空间进行的;调出是对部分虚拟地址空间进行的;n大空间大空间:通过物理内存和快速外存相结合,提供大:通过物理内存和快速外存相结合,提供大范围的虚拟地址空间范围的虚拟地址空间l总容量不超过物理内
16、存和外存交换区容量之和总容量不超过物理内存和外存交换区容量之和5.2 分区存储管理分区存储管理n5.2.1 固定分区存储管理固定分区存储管理n5.2.2 可变式分区存储管理可变式分区存储管理 n5.2.3 可重定位分区存储管理可重定位分区存储管理返回首页分区存储管理的基本原理分区存储管理的基本原理 分区存储管理是能满足多道程序设计的最分区存储管理是能满足多道程序设计的最简单的存储管理技术,它运行多个作业共享简单的存储管理技术,它运行多个作业共享内存。内存。在内存中为每个进程划分一个相应的存储在内存中为每个进程划分一个相应的存储区,以连续存储各进程的程序段和数据段,区,以连续存储各进程的程序段和
17、数据段,使得各进程得以并发执行。使得各进程得以并发执行。5.2.1 固定分区存储管理固定分区存储管理 基基本本思思想想:在在作作业业未未进进入入内内存存之之前前,就就由由操操作作员员或或操操作作系系统统把把内内存存可可用用空空间间划划分分成成若若干干个个固固定定大大小小的的存存储储区区,除除操操作作系系统统占占用用一一个个区区域域外外,其其余余区区域域为为系系统统中中多多个个用用户户共共享享,因因为为在在系系统统运运行行期期间间,分分区区大大小小、数数目目都都不不变变,所所以以固固定定式式分分区区也也称称为为静静态态分区(分区(如图如图4.5所示)。所示)。图5.5 固定式分区内存分配示意图(
18、a)和(b)固定式分区说明表返回本节固定分区内存分配方法固定分区内存分配方法1)操作系统占用内存低端分区;)操作系统占用内存低端分区;2)如油作业提出分配请求,则根据作业的大)如油作业提出分配请求,则根据作业的大小在分区说明表中查找一个大于作业要求小在分区说明表中查找一个大于作业要求的未分配区进行分配;的未分配区进行分配;3)用重定位装入程序装入作业;)用重定位装入程序装入作业;4)如分区说明表中无满足作业要求的分区,)如分区说明表中无满足作业要求的分区,则通知系统出错,并调度下一个作业。则通知系统出错,并调度下一个作业。特点:特点:作业进入内存后,每一个分区内只允作业进入内存后,每一个分区内
19、只允 许有一个作业,其占用的分区直到作许有一个作业,其占用的分区直到作 业运行结束才收回。业运行结束才收回。缺点:缺点:内存浪费较严重,因为作业的大小不内存浪费较严重,因为作业的大小不 可能正好与某个分区相等。可能正好与某个分区相等。5.2.2 可变式分区存储管理可变式分区存储管理n1空闲分区的组织形式空闲分区的组织形式n2内存的分配与回收内存的分配与回收n3常用的分配算法常用的分配算法n4可变式分区的地址重定位可变式分区的地址重定位可变式分区的基本原理可变式分区的基本原理原理:原理:分区的划分是在有作业提出内存分区的划分是在有作业提出内存请求时进行的,且使得分区的大小与作请求时进行的,且使得
20、分区的大小与作业的大小相一致。业的大小相一致。特点:特点:分区个数不固定,每个分区大分区个数不固定,每个分区大小也不固定。小也不固定。图5.6 可变式分区内存使用情况示意图 空闲分区的组织形式空闲分区的组织形式n分分区区说说明明表表:共共计计2张张表表,一一个个是是可可用用表表,另另外外一一个个是是请请求求表表。其其中中,可可用用表表中中记记录录内内存存中中所所有有空空白白块块的的信信息息,包包括括:块块号号、长长度度和和首首地地址址;而而请请求求表表记记录录各各个个作作业业的的内存需求。内存需求。使用分区说明表进行内存分配与回收使用分区说明表进行内存分配与回收n分配方法:分配方法:1)从请求
21、表中按)从请求表中按FCFS原则选定一个作业;原则选定一个作业;2)从可用表中按各空白块的排列顺序找出一)从可用表中按各空白块的排列顺序找出一个可以容纳选中作业的空白块;个可以容纳选中作业的空白块;3)如果该空白块的大小比作业要求空间超出)如果该空白块的大小比作业要求空间超出1K,则把它分成两部分;则把它分成两部分;4)修改)修改2张表的相关信息。张表的相关信息。n分区回收:分区回收:1)检查回收的分区是否与可用表中的空白块)检查回收的分区是否与可用表中的空白块 相邻,如相邻则执行合并算法;相邻,如相邻则执行合并算法;2)修改可用表。)修改可用表。n合并算法:合并算法:1)回收区)回收区R与上
22、面空白块与上面空白块F1邻接,合并后仍为邻接,合并后仍为空白块空白块F1,首地址不变,修改该块大小;首地址不变,修改该块大小;2)回收区)回收区R与下面空白块与下面空白块F2邻接,合并后仍为邻接,合并后仍为空白块空白块F2,修改该块首地址和大小;修改该块首地址和大小;3)回收区与上、下空白块邻接,则撤消下面)回收区与上、下空白块邻接,则撤消下面空白块空白块F2,保留保留F1,修改该块大小。修改该块大小。n空空闲闲分分区区链链表表:在在每每个个空空闲闲分分区区的的起起始始部部分分开开辟辟出出一一个个单单元元,存存放放一一个个链链表表指指针针和和该该分分区区的的大大小小,链链表表指指针针指指向向下
23、下一一个个空空闲闲分区。分区。图5.7 空闲分区链表组织形式 内存的分配与回收内存的分配与回收n当当某某一一个个用用户户作作业业完完成成释释放放所所占占分分区区时时,系系统统应应进进行行回回收收。在在可可变变式式分分区区中中,应应该该检检查查回回收收区区与与内内存存中中前前后后空空闲闲区区是是否否相相邻邻,若若相相邻邻,则则应应进进行行合合并并,形形成成一一个个较较大大的的空空闲闲区区,并并对对相相应应的的链链表表指指针针进进行行修修改改;若若不不相相邻邻,应应将将空空闲闲区区插插入入到到空空闲闲区区链链表表的适当位置。的适当位置。常用的分配算法常用的分配算法1)首次适应算法)首次适应算法 2
24、)最佳适应算法)最佳适应算法 3)最差适应算法)最差适应算法 n首次适应算法:首次适应算法:原理:原理:所有空白块按首地址由低到高的次序所有空白块按首地址由低到高的次序 排列。排列。优点:优点:尽可能利用内存低址部分的空白块,尽可能利用内存低址部分的空白块,尽量保存位于高地址部分的大空白块,这样尽量保存位于高地址部分的大空白块,这样当有较大作业提出内存请求时便可能满足其当有较大作业提出内存请求时便可能满足其要求。要求。n最佳适应算法:最佳适应算法:原理:原理:空白块按容量大小递增的次序链空白块按容量大小递增的次序链接,在为作业分配内存空间时总是从最接,在为作业分配内存空间时总是从最小的空白块开
25、始,即第一次找到的满足小的空白块开始,即第一次找到的满足要求的空白块必是最合适的。要求的空白块必是最合适的。优点:总能保留较大的空白块在内存中。优点:总能保留较大的空白块在内存中。缺点:缺点:1)由于空白块一般不会和作业的要求)由于空白块一般不会和作业的要求相等,因而肯定会对空白块进行划分,会相等,因而肯定会对空白块进行划分,会使得剩下的空白块都较小(易产生碎片)使得剩下的空白块都较小(易产生碎片)2)寻找一个较大空白块时间过长;)寻找一个较大空白块时间过长;3)划分后剩下的空白块还需要在自由链中进)划分后剩下的空白块还需要在自由链中进行位置的调整。行位置的调整。n最坏适应算法:最坏适应算法:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统_第五章 存储管理 操作系统 第五 存储 管理
限制150内