操作系统 存储管理.ppt
《操作系统 存储管理.ppt》由会员分享,可在线阅读,更多相关《操作系统 存储管理.ppt(146页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 存储管理存储管理本章研究的主要目的:第一、要使主存得到充分、有效的利用;第二、为用户提供方便的使用环境。第第3章章 存储管理存储管理3.1 概述概述3.2 地址映射地址映射3.3 分区管理分区管理3.4 覆盖与交换覆盖与交换3.5 分页管理分页管理3.6 分段管理分段管理3.7 段页式管理段页式管理3.8 虚拟存储器管理虚拟存储器管理3.1 概述概述n存储器分类n内存:内存:CPU直接存取,存放正要执行的程序和数据,访问速度快,价格贵,容量小。n外存:外存:CPU不能直接访问,存放暂时不执行的程序和数据,访问速度慢,容量大。n存储管理指内存管理n现代计算机系统的运行机制是基于冯诺依
2、曼的存储程序原理,即任何一个程序(包括操作系统本身)都必须被装入内存,占用一定的内存空间,才能执行,才能完成程序的特定功能。n计算机采用二级存储结构:n内存区包括系统区和用户区,系统区包括操作系统程序本身和系统扩展区,用户区包括目态下运行的系统程序和用户程序与数据;n外存是大容量的磁盘或磁带等,存放准备运行的程序和数据,当进程要运行时,这些相应的程序和数据必须调入内存才能执行。在多道程序环境下,用户区可以同时存放几道程序,为多道程序所共享。用户程序与数据目态下运行的系统程序系统扩展区操作系统系统区(管态)用户区(目态)计算机二级存储结构所谓内存管理,是指内存用户区的管理,并不包括系统区。n内存
3、管理的目的:方便用户使用和提高内存的利用率。n内存管理的主要任务是:(1)内存的分配与回收。(2)地址映射。(3)内存的共享。(4)存储保护。(5)存储扩充。3.2 地址映射地址映射3.2.1 逻辑地址逻辑地址3.2.2 物理地址物理地址3.2.3 地址映射方式地址映射方式3.2.1 逻辑地址逻辑地址n逻辑地址,也叫虚地址。我们平时用高级语言或汇编语言编程时,源程序中使用的地址都是符号地址,如:goto Label CALL subroutine1n用户不必关心符号地址Label或subroutine1在内存中的物理位置。源程序经过编译或汇编,再经过链接后,形成了一个以0地址为起始地址的虚拟空
4、间,每条指令或每个数据单元都在虚拟空间中拥有确定的地址,该地址就称为逻辑地址,或虚拟地址。3.2.2 物理地址物理地址n物理地址,也叫实地址。所有程序必须装入内存才能执行。程序在执行时所占用的存储空间称作它的内存空间,也叫物理空间。一个物理空间是若干物理地址的集合。地址映射地址映射n当内存分配区确定后,就要将虚拟地址变换为内存的物理地址,即地址映射(或重定位)3.2.3 地址映射方式地址映射方式n地址映射有两种方式:静态映射和动态映射。1.静态映射静态映射n静态映射是在程序装入指定内存区时,由重定位装入程序一次性完成的。n假设目标程序分配的内存区起始地址为B,那么程序中所有逻辑地址(假设为a)
5、,对应的内存空间的物理地址为B+a。n动态映射是在程序执行过程中进行的,由硬件地址映射机构完成。其方法是:设置一个公用的基地址寄存器BR,存放现行程序分配的内存空间的起始地址。CPU以逻辑地址访问内存时,映射机构自动把逻辑地址加上BR寄存器中的内容而形成实际的物理地址如图2.动态映射动态映射只要改变BR的内容,就可改变程序的内存空间,实现程序的再定位。所以BR也叫重定位寄存器。3.3 分区管理分区管理3.3.1 固定分区管理固定分区管理3.3.2 可变分区管理可变分区管理3.3.3 地址转换与存储保护地址转换与存储保护分区管理思想分区管理思想n为了满足多道程序设计技术,把内存空间划分成若干个大
6、小可等可不等的连续区域,每个用户作业分配一个区域,用户作业一次整体装入到这个区域中,并限制只能在这个区域中运行。n分区方式分为:分区方式分为:n单一连续分配n固定分区n可变分区两种n可重定位式分区n多重分区3.3.1 固定分区管理固定分区管理n固定分区管理的基本原理:把内存分为若干大小相等或不等的分区,分区的大小和分区的总数由操作系统在系统初启时建立,一旦建好,在系统运行过程中,每个分区的大小和分区总数都是固定不变的。n用到的数据结构主要有分区说明表(PDT),PDT中,每一行为一个表目,分别记载着一个分区的特性,每个表目由若干栏目组成,包括分区号、分区大小、起始地址以及分区的使用状态(已分配
7、用1表示,空闲用0表示)。3.3.1 固定分区管理固定分区管理(1)基本概念n物理地址:实实在在的内存编号;n逻辑地址:基地址+偏移量n地址重定位:把用户程序指令中的相对地址变换成在绝对地址空间的绝对地址的过程;(2)单一连续分区存储管理)单一连续分区存储管理n基本思想基本思想n操作系统区操作系统区n作业区作业区n一个用户程序独占作一个用户程序独占作业区业区操作系统区操作系统区作业区作业区单一连续分配单一连续分配 浪费单一连续分配仅适用于单道程序设计环境,处理机、主存都不能得到充分的利用。操作系统Call100H1000H2000H3000H4000Hn采用静态重定位n程序运行前就完成了重定位
8、工作n特点:n程序运行前完成了地址重定位,即分配地址空间;n软件实现;n实行重定位时,程序装入一次性完成;n静态重定位后,指令中的地址不再反映实际位置;(2)单一连续分区存储管理n实质:将存储器分为操作系统区和用户区两个部分,用户区一次只接纳一个任务,即单道程序静态重定位;n概念:n保护存储:阻止用户有意无意的通过不正当手段访问操作系统区。n界限寄存器:存放用户区的首地址,cpu在管态下允许访问任何地址;在目态下,每次方存都要进行比较,以免发生访问越界;(2)单一连续分区的缺点n单道程序,效率低,资源利用率低;n对换技术:将作业信息存放在辅存上,每次只让一个进入内存执行,当有I/o请求或者时间
9、片到达时,换出内存然后让其他作业进入;n作业比用户区小则造成浪费;n若作业比用户区大则作业无法运行;n覆盖技术:允许一个作业的若干程序段使用同一个存储区,被公用的存储区叫做覆盖区;Main(10kb)A(50kb)C(30kb)B(30kb)D(20kb)E(40kb)Main(10kb)A(50kb)B(30kb)C(30kb)D(20kb)E(40kb)10kb50kb40kb(3)固定分区存储器管理n概念:预先将用户区分为若干连续部分,每个分区尺寸可以相同也可以不同,划分后其个数和每个分区的尺寸不变,每个分区中,只允许装入一个作业运行;n实现:(后备队列)能容忍分区的最大最小作业都在该分
10、区的后备队列上。缺点:有些分区忙碌有些空闲;n改进:让多个分区共享一个队列;分区的分配和释放n问题提出:多个作业共用一个分区时,如何调度?即:存储区选择作业。n解决:n从队列中挑选第一个可容纳的作业。缺点:作业如果过小,则产生浪费;n从作业挑选可容纳的最大作业。缺点:歧视小作业且效率低下;n保留至少一个小分区以满足小作业的运行;用分区分配表实现用分区分配表实现PDT分区号起始地址长度使用标志120kb8kbJob1228kb32kbJob6360kb64kb04124kb132kbjob2地址重定位和存储保护n每个分区中只有一个作业,分区首地址就是作业的基址;n要防止程序间的越界访问:n解决越
11、界方法:n低界限寄存器n高界限寄存器固定分区的特点和不足n特点:n多道作业;n作业独立分配分区,一次性装入;n分配分区后,用静态重定位;n缺点:n作业的大小与分区的大小一般会不吻合;n大作业可能分配不到足够大的分区而得不到运行;3.3.2 可变分区的存储器管理n实质:作业要求进入内存时,若当时的内存中有足够空间则满足作业要求,并划给一块与作业等大的存储区;n优点:每个作业都量体裁衣,不会出现内部碎片;(内/外部碎片)n缺点:分区的数目会逐渐增加,每个分区亦在逐渐减小,造成有些分区太小而分配不下去;3.3.2 可变分区管理可变分区管理1.可变分区可变分区/动态分区,与固定分区有三点不同:动态分区
12、,与固定分区有三点不同:1)分区的建立时刻n可变分区:在系统运行过程中,在作业装入时动态建立n固定分区:系统初启时建立。2)分区的大小n可变分区:根据作业对内存的需求量而分配。n固定分区:事先设定,固定不变。3)分区的个数n可变分区:变化不定。n固定分区:固定不变。1)基本原理n对于可变分区管理,系统初启时,内存除操作系统区外,其余空间为一个完整的大空闲区。n当有作业申请时,则从空闲区划出一个与作业需求量相适应的区域进行分配;n作业结束时,收回释放的分区;若与该分区邻接的是空闲区,则合并为一个大的空闲区。随着一系列的分配与回收,内存会形成若干占用区和空闲区交错的布局。2.可变分区分配可变分区分
13、配n可见,可变分区管理也存在“碎片”问题。解决的办法是:对碎片进行拼接或密集(Compacting)n注意掌握拼接的时机:(1)回收某个占用区时。(2)需要为新作业分配内存空间,但找不到大小合适的空闲区,而所有空闲区总容量却能满足作业需求量时。n通常使用拼接或密集的方法对上述情况进行处理,当然,需要进行重定位,用动态地址映射方法实现。2)数据结构n可变分区的分区个数是动态变化的,为了记载内存的使用状态,不能采用固定分区中使用的静态表数据结构分区说明表PDT。n通常用占用区说明表UPT和空闲区说明表FPT(或空区链结构)来记录可变分区的内存分配情况。可变分区引发的问题n采用重定位技术,以便程序在
14、内存中能随意移动,唯空闲区的合并提供依据;n记住各个分区的情况并加以合并;n提出分区分配算法,让作业挑选合适的分区;动态重定位和静态重定位动态重定位和静态重定位比较:比较:静态重定位动态重定位概念程序运行前实现重定位;程序运行时实现重定位;地址转换时刻运行前运行时谁来完成任务软件硬件完成形式一次性完成每执行一条则定位一条完成结果原来指令的地址被修改对指令本身没有修改操作系统操作系统Call 100H1000H2000H3000H4000H1000H+1、固定分区存储管理把主存储器划分成若干个连续区,每个连续区称一个分区。经划分后分区的个数是固定的,各个分区的大小()。A是一致的B都不相同C可以
15、相同,也可以不相同,但根据作业长度固定D在划分时确定且长度保持不变2、采用固定分区方式管理主存储器的最大缺点是()。A不利于存储保护B主存空间利用率不高C要有硬件的地址转换机构D分配算法复杂(4)空闲区的合并n合并时机:n调度道某个作业(大作业):为满足大作业需要而被迫合并,-花精力管理空闲区;n作业运行完释放资源时:总是保持较大的内存区,但合并频率高而导致开销会增大。n管理方式:n表格法、单链表法、双链表法、表格法表格法操作系统空闲区(8KB)作业区(32KB)空闲区(32KB)作业区(120KB)空闲区(300KB)序号起始地址尺寸状态1-空228KB32KB作业B3-空492KB120K
16、B 作业D5-空序号起始地址尺寸状态120KB8KB空闲260KB32KB空闲3212KB300KB 空闲4-空5-空020286092212512(5)空闲分区分配算法n最先适应算法n最佳适应算法n最坏适应算法最佳适应(最优)Bestfit:n空白区表中的空白区按其容量以递增的次序排列。当要求分配一个空白区时,由小到大顺序查找分区说明表,找到第一个满足申请长度的最小空闲区,分配并分割。如果有剩余部分,作为一个空白区将其插入适当的位置;n最佳适应算法:选择容量接近的空闲区来分配,产生大量碎片。分配策略/算法分区策略/算法最差适应(最坏)Worstfit:n空白区表中的空白区按其容量以递减的次序
17、排列。查找分区说明表,找到第一个满足申请长度的空闲区,分配并分割。剩余部分插入适当位置。n最差适应算法:分割大空闲区后,还可以产生较大的空闲区,空闲区均匀地减小,以避免碎片。分配策略/算法首次/最先适应Firstfit:n空白区按地址大小递增顺序排列。查找分区说明表,找到第一个满足申请长度的空闲区,分配并分割。剩余部分保留在空白区表中原来的位置。n最先适应算法:尽可能利用存储器的低地址部分,因此在低地址部分会很快地产生大量碎片。分区策略/算法唯一最佳适应算法(singlebestfit)n分区按大小顺序分级(8KB、16KB、32KB、)n作业按请求容量也分成相应的存储级,仅当PDT中相应级的
18、分区为空闲时,才进行内存分配,即使有更大的分区空闲也不予以分配。可变式分区举例(首次/最先适应算法)分配回收2、3 可变式分区中请求/分配一个分区的流程 可变式分区中释放/回收一个分区的流程 当某一块归还后,前后空间合并,修改内存空闲块表考虑:上邻、下邻、上下相邻、上下不相邻分区号分区号 分区容分区容量量 分区位分区位置置 状状 态态 123458KB32KB-120KB-321KB320KB-384KB-已分配已分配 已分配已分配 空空 项项 已分配已分配 空空 项项 n已分配的分区状态表n未分配的分区状态表可用可用352KB504KB32KB520KB12状态分区位置分区容量分区号比较:固
19、定式分区与可变式分区n固定式分区法由系统先把内存划分为若干个大小固定的分区,各分区的大小可以不同,但是固定。n可变式分区法系统不预先划分固定分区,在装入程序时建立分区,分区容量正好适应作业的大小,分区的个数也可变。n可变式分区法比固定式分区法能获得更好的内存利用率。固定式分区和可变式分区优点n有助于多道程序设计;n不受过多的硬件限制,只需要界地址寄存器,用于存储保护;n所采用的算法较简单,易于实现固定式分区和可变式分区缺点n会产生一些散布于存储器各处的碎片,不能集中使用,降低内存利用率。n分区大小受到主存容量的限制,无法扩充主存容量。碎片问题n经过一段时间的分配回收后,内存中存在很多很小的空闲
20、块。它们每一个都很小,不足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片。造成存储资源的浪费“碎片”问题解决n紧凑技术:通过在内存移动程序,将所有小的空闲区域合并为大的空闲区域(又称:紧缩技术,紧致技术,浮动技术,搬家技术)n存在问题:开销大移动时机?补充:n可重定位式分区n多重分区可重定位式分区分配/浮动分区分配n可以解决碎片问题n采用移动技术时,除了要在主存中移动数据块,还需要修改内存分配表、进程控制块等,加大了系统开销。可再定位式分区分配的靠拢过程 只要改变浮动寄存器的内容利用浮动寄存器进行地址变换 再定位寄存器或称为浮动寄存器实现地址变换:320k-352K=-32K当执行
21、每条指令时,由CPU计算出有效地址,在访问操作数之前,将浮动寄存器的内容与计算出的有效地址相加,得到实际的物理地址。即在移到新的位置后作业的指令和数据都没有改变,在执行时利用浮动寄存器自动完成地址变换的。例如:指令L 1,352KB+9800的执行,仍将位于320KB+9800处的数据01557100取至1号寄存器。可再位式分区靠拢时机1.当某个分区内的作业一完成,立即靠拢。实施程序移动处理机花费时间多,尽可能减少靠拢操作次数。2.在为某一个作业请求一个分区时,当时内存没有足够大的空白区,但空白区之和可以满足时,须进行靠拢操作。这样的靠拢比前述的靠拢次数要少得多,从而可以节省处理机时间。多重分
22、区分配多重分区分配定义:给一个作业分配一个以上分区的方法,称为多重分区分配。采用这种方法时,作业可以在其执行期间申请附加的分区。优点:解决碎片问题缺点:要求更多的硬件支持,做好分区保护问题;作业分段越多,分区越小,结果使内存分得过碎,以致造成没有较大的空白区。可再位式分区优点缺点n优点:n内存所有碎片集中起来统一使用,提高存储器的使用效率。n缺点:n提高硬件成本n降低computer速度,花费CPU时间1、地址转换n在进行地址映射时,只要将内存分区的起始地址送入基址寄存器BR中,则物理地址PA=逻辑地址LA+BR3.3.3 地址转换与存储保护地址转换与存储保护2、分区的保护措施、分区的保护措施
23、(1)上、下界存储保护:系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。(2)基址限长存储保护:上、下界保护的一个变种在多道程序环境中,原则上每个程序都需要有一对硬件寄存器,实际上只要有一对硬件寄存器就够了。因为在多道程序环境中,各分区的作业在共行执行,某一作业在运行前,在硬件寄存器内装入对应分区的界地址,在终止运行后,硬件寄存器的内容连同其他信息(如PSW)一起保护到现场保护区,以便下次运行时重新装入。分区的界地址寄存器保护 在多道程序环境下,当前正在运行的一个作业都要有一对硬件寄存器,或者是上下界寄存器,或者是基址
24、寄存器与限长寄存器。分区分配方案的优点1.实现了主存的共享,因而有助于多道程序设计,更有效地利用了处理机和I/O设备,从而使系统的吞吐量和作业周转时间得到了相应的改善。2.相对于后面介绍的存储管理方式,本方案为实现分区分配所使用的表格、占用的存储容量相对较少,算法也相对简单。3.实现存储保护的措施也比较简单。4.多重分区分配方案能实现对子程序、数据段的共享。分区分配的主要缺点1.主存仍不能充分利用,除了可再定位式分区法外,都存在着严重的碎片问题。另外,即使不把存储器分碎,整个空白区也可能因容纳不下一个作业而造成浪费。2.不能实现对主存的扩充。因此作业的大小受到主存可用空间的限制。3.和单一连续
25、分配一样,要求一个作业在执行之前必须全部装入主存,因此在主存中可能包含从未使用过的信息。4.采用靠拢方法,虽然能解决碎片问题,但有时需移动大量信息,从而损失了处理机时间。5.除多重分区外,几个并行作业之间不能共享存入主存的单一信息副本(如公用子程序、数据段等)。3.4 覆盖与交换覆盖与交换3.4.1 覆盖(覆盖(Overlay)3.4.2 交换(交换(swapping)3.4.1 覆盖(覆盖(Overlay)n同一内存分区可以被不同的程序段重复使用,这些相对独立的程序段可以属于同一作业,也可以分属于不同作业。只要一个程序段不再需要某个分区,另一个程序段就可以占用它的内存区位置。n通常我们把可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 存储管理 存储 管理
限制150内