操作系统 存储管理.ppt

上传人:hyn****60 文档编号:87087933 上传时间:2023-04-16 格式:PPT 页数:146 大小:2.44MB
返回 下载 相关 举报
操作系统 存储管理.ppt_第1页
第1页 / 共146页
操作系统 存储管理.ppt_第2页
第2页 / 共146页
点击查看更多>>
资源描述

《操作系统 存储管理.ppt》由会员分享,可在线阅读,更多相关《操作系统 存储管理.ppt(146页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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通常我们把可以

26、在它上面进行覆盖的内存区,叫做“覆盖区”,而可以相互覆盖的程序段叫“覆盖”。我们需要了解覆盖技术的原理,要解决的关键问题,覆盖技术的主要特点等。n作业装入内存运行后,可由操作系统完成自动覆盖,但要求作业各模块间有明确的调用结构,并要求用户向系统提供其覆盖结构,并做出正确的描述,这无疑增加了用户的负担。n运用覆盖技术后,我们不必将一个程序的所有信息装入内存后再执行,利用程序段的独立性和相互间的调用关系进行相互覆盖,逻辑地扩充了内存空间,从而在内存容量不够时,也能实现大型程序的运行。n目前,主要将这一技术用于小型系统中的系统程序的内存管理上,因为系统程序的覆盖结构对系统软件设计者而言是已知的。3.

27、4.2 交换(交换(swapping)n所谓交换是允许把一个作业装入内存之后,仍然能够把它换出内存(swappingout)或再换入内存(swappingin),即指在内存与外存之间交换程序和数据。n换出的作业通常暂时存放在外存中,当需要把它再投入运行时,才把它换入内存。n交换技术是根据系统资源情况,包括内存的使用情况来控制各作业的调入与调出。当前正在运行的作业在用完CPU时间片,或因I/O请求被阻塞时,就可以换到外存上,而把外存上准备运行的作业调入。这种技术可使系统资源的利用更为充分有效。n交换技术一般都有动态地址映射机构的支持,因而一个作业换入内存时不一定要装入它被换出前所占据的分区中。交

28、换技术与覆盖技术n与覆盖技术相比,交换技术的交换过程对用户是透明的;而覆盖技术要求用户向系统明确指明其程序的覆盖结构,对用户而言是不透明的。不过交换技术需要较多的软件支持。n交换技术被广泛应用于小型分时系统中。n关于交换技术,有三个问题要特别注意:(1)换进时空间分配的问题。(2)整体交换还是部分交换的问题。(3)交换的时间问题。3.5 分页式存储管理分页式存储管理3.5.1 实现原理实现原理3.5.2 存储分配存储分配3.5.3 碎片概念碎片概念3.5.1 实现原理实现原理n分页管理方案中,系统将作业的地址空间(虚拟空间)划分成若干个大小相等的块,称之为“页”,对所有的页从0开始依次编号,称

29、之为相对页号,作业的逻辑地址LA可以由页号P和页内地址d表示。n与此相对应,系统将内存空间也划分成与页大小相同的若干块,称之为“块”。内存物理地址PA可以由块号b和页内地址d表示。n通过适当的变换,将一页对应一块。逻辑地址空间和物理地址空间的对应关系由页表(PMT)来指明,页表也称为页面变换表。图 页面变换表保证了作业的正确执行页表连续,块表不连续,由PMT负责连接主存中不连续的块3.5.2 存储分配存储分配n作业的逻辑地址到物理地址的映射以数据结构为基础。通常可以直接映射或利用快表进行地址映射。(1)直接映射。(2)利用快表的地址映射。地址映射算法n页号=相对地址/块尺寸n页内位移=相对地址

30、%块尺寸n算法:n将相对地址转换成数对(页号,页内位移)n建立一张作业的页与块对应关系表n按照页号查找页、块关系表n由块的起始地址与页内位移形成绝对地址。例题n一个实行分页式存储管理的系统,内存块的尺寸为2KB/块。现有一用户其相对地址空间为05129,若将此作业装入内存,系统分配给它的存储区为多少字节?分页式存储管理的地址转换n举例:n文章和书的关系。2n一台计算机内存总量为一台计算机内存总量为65536B,块尺寸为:,块尺寸为:4096B,现有一个程序,代码段长为,现有一个程序,代码段长为32768B,数据段为:,数据段为:16386B,栈段为:,栈段为:15870Bn1、这个用户程序能否

31、适合内存空间?、这个用户程序能否适合内存空间?n2、如果把块改为、如果把块改为512B呢?呢?3n若在分页式存储管理中,建立了某个作业的页、块对应关系为:第0页放在第0块,第一页放在第3块,第2页放在第1块。已知块尺寸为1KB/块,试用公式求1023、1024、3000分别对应的绝对地址。CPU页号页号页内位移页内位移起始地址起始地址长度长度块号块号页内位移页内位移操作系统操作系统+相对地址相对地址页表控制寄存器页表控制寄存器绝对地址绝对地址内存地址内存地址页表页表 地址变换机构u为了实现逻辑地址空间到物理地址空间的地址变换,需要提供一些硬件支持,即地址变换机构。u从逻辑地址空间到物理存储空间

32、的地址变换,通常有三种方法:从逻辑地址空间到物理存储空间的地址变换,通常有三种方法:动态地址变换机构DAT,高速页面变换寄存器、联想存储器/快表。u动态地址变换机构DATn动态地址变换机构自动将所有地址划分为页号和页内地址n作业执行时应把逻辑地址转换成物理地址,转换公式为:物理地址=块号X块长+页内地址 例:n某系统指令的有效地址为24位,则逻辑地址空间最大可达224=16MB。假定页面大小为4KB(页内地址12位),那么逻辑地址空间最多可达4096个页面(页号12位)。n动态地址变换机构自动将逻辑地址划分为页号(12位)和页内地址(12位)。图 动态地址变换机构 CPU产生页表控制寄存器PT

33、CRn包含页表长度和页表在内存的起始地址nPTCR、PMT、页和块之间的关系?图 PTCR、PMT、页和块之间的关系 页表控制寄存器页面变换表每个作业都有一个页面变换表,所有作业的PMT放在OS的一个工作区中,由页表控制寄存器指出作业的页面变换表的起始地址。当处理机执行一个新作业或恢复一个旧作业时,只要修改页表控制寄存器的内容,使之指向要执行作业的PMT起始地址即可。(一)快表(一)快表n相关背景1、DAT(动态地址变换机构):页表存放在主存中,由OS统一管理,每条指令的执行都必须进行地址变换。故一条指令须两次访问存储器:一次是把页号变成物理块号,另一次是实际存取所要的数据或指令。影响运行速度

34、。2、高速寄存器的缺点:成本高。对两者折中:即在DAT加入一组高速寄存器(存放正在运行作业的当前最常用的页号和相应块号),这些寄存器连同管理它们的硬件构成了一个容量较小的存储器快表。3.实质n页表存放在内存中,页和块的对应关系。n快表是页表的一部分。图 利用快表加速查表“双管齐下”:快表与PMT同时进行,在快表中,一旦找到块号,即停止PMT;如果在快表中检索不到所要的块号,应利用PMT表进行查找,并将页号以及所对应的块号一起填入快表内的空白单元中。如果快表没有空白单元,应根据规则淘汰一个单元内容再填入。分页存储管理算法分页存储管理算法建立如下表格,由OS统一管理:存放在OS所使用的工作区内表目

35、表目表目内容表目内容调试时调试时作业表作业表JT整个系统一张表。整个系统一张表。每个作业对应一个每个作业对应一个表目表目某一作业的页某一作业的页表始址、页表表始址、页表长度、状态信长度、状态信息息如果存储要求可以得到满足,如果存储要求可以得到满足,就在此表上进行登记;当作就在此表上进行登记;当作业轮到处理时,就从业轮到处理时,就从JT把把该作业的页表始址和页表长该作业的页表始址和页表长度送到控制寄存器中。度送到控制寄存器中。存储分块表存储分块表MBT整个系统一张表。整个系统一张表。每一表目对应一个每一表目对应一个存储块存储块记录该块的状记录该块的状态:已分配或态:已分配或未分配未分配页面变换表

36、页面变换表PMT每个作业一张表,每个作业一张表,一个页面对应一个一个页面对应一个表目表目每个表目记录每个表目记录页号及对应块页号及对应块号号n作业表JTn存储分块表MBTn页面变换表PMTn登记作业表(表目)n在OS区为页表分配存储区,并将其起始地址填入作业表n搜存储分块表的空闲块,将作业号填入其中n块号填入页表中4nCpu一次访存时间为一次访存时间为200ns,访问快表一次需,访问快表一次需要要40ns,若快表的命中率为,若快表的命中率为90%,则进行一次,则进行一次内存存取的平均时间为多少?内存存取的平均时间为多少?5n假定访问页表的时间为假定访问页表的时间为100ns,访问相连存储,访问

37、相连存储器的时间为器的时间为20ns,希望进行一次访存的时间限,希望进行一次访存的时间限制在制在140ns,则要求命中率为多少?,则要求命中率为多少?(二)内存块的分配和回收n存储分块表n位图n单链表操作系统操作系统作业作业C 第第2页页作业作业B 第第0页页作业作业A 第第0页页作业作业B 第第1页页作业作业C 第第2页页作业作业A 第第1页页作业作业C 第第3页页作业作业C 第第0页页作业作业C 第第1页页0123456789101112131415空闲块总数:空闲块总数:3.5.3 碎片概念碎片概念n分页管理中,内存的分配以物理块为单位,作业装入时一个页面对应于一个内存块,当一个作业的最

38、后一页不满时,它们占有一个物理块,不满的部分就构成了“内碎片”。内碎片的大小必定小于内存块的长度,平均每个作业的内存空间的内碎片量为半个块长。所以内碎片量是有限的,而各作业之间不存在“外碎片”,所以分页管理不需要“拼接”碎片,它有效的解决了内存碎片问题。分页存储管理方案的评价分页存储管理方案的评价n不需要靠拢消除碎片,便于多道程序设计,提高了CPU和主存的利用率。n采用动态地址变换会增加计算机成本和降低处理机的速度。n各种表格要占用一定容量的主存空间,而且还要花费一部分处理机时间用来建立和管理这些表格。n虽然说外部碎片消除了,但每个作业的最后一页一般都有不能充分利用的空白区(内部碎片)。页面大

39、?页面小?n作业地址空间受到内存实际容量的限制,存储扩充问题仍未得到解决。分页式存储管理的优缺点n分页管理的优点:(1)有效地解决了内存碎片问题。(2)提高了CPU和内存的利用率。n分页管理的缺点:(1)作业地址空间受到内存实际容量的限制。(2)增加了系统的时间和存储空间的开销。思考题1.与可变分区存储管理相比,采用页式存储管理时处理器在单位时间里执行指令的数量是增加还是减少?为什么?2.假定某采用页式存储管理的系统中,主存容量为1M,被分成256块,块号为0,1,2,255。现有一个共4页(页号为0,1,2,3)的作业被依次装人到主存的第2,4,1,5块中。请回答:(1)主存地址应该用多少位

40、来表示?(2)作业每一页的长度为多少字节?逻辑地址中的页内地址部分应占用多少位?(3)把作业中每一页占用的主存块起始地址填人下表。(4)若作业执行中要从第0页的第75单元和第3页的第548单元读信息,那么,实际应从主存的哪两个单元读信息?请把应访问的主存绝对地址用二进制编码的十六进制数表示。1.题解n与可变分区存储管理相比,采用页式存储管理时处理器在单位时间里执行指令的数量会减少。这是因为,页式存储管理在进行地址转换时要多花一次访问主存储器查页表的时间,因而延长了指令的执行时间,使得单位时间里执行指令的数量减少。2.题解(1)主存地址应该用20位来表示。(2)作业每一页的长度应为2的12次方=

41、4096个字节,逻辑地址中的页内地址部分应占用12位。(3)作业中每一页占用主存块的起始地址为:页号起始地址08K116K24K320K(4)若作业执行中要从第0页的第75单元读信息,则实际应从主存的第2块第75单元读,应访问的主存绝对地址用二进制编码的十六进制数表示为对204B。若要从第3页的第548单元读信息,则实际应从主存的第5块第548单元读,应访问的主存绝对地址用二进制编码的十六进制数表示为:05224。2.题解答:若页表存放在主存中,则要实现一次页面访问需两次访问主答:若页表存放在主存中,则要实现一次页面访问需两次访问主存:一次是访问页表,确定所存取页面的物理地址(称为定存:一次是

42、访问页表,确定所存取页面的物理地址(称为定位)。第二次才根据该地址存取页面数据。位)。第二次才根据该地址存取页面数据。页表在主存的存取访问时间页表在主存的存取访问时间 =1.5*2=3(=1.5*2=3(ss)增加快表后的存取访问时间增加快表后的存取访问时间 =0.85*1.5+(1-0.85)*2*1.5=1.725(s)=0.85*1.5+(1-0.85)*2*1.5=1.725(s)3.6 分段管理分段管理3.6.1 分段引入分段引入3.6.2 实现原理实现原理3.6.3 分段与可变分区的区别分段与可变分区的区别3.6.4 分段与分页的区别分段与分页的区别 例:有一页式系统,其页表存放在

43、主存中:例:有一页式系统,其页表存放在主存中:如果对主存的一次存取需要如果对主存的一次存取需要1.5 1.5 s,s,试问实试问实现一次页面访问的存取时间是多少现一次页面访问的存取时间是多少?如果系统加有快表如果系统加有快表,平均命中率为平均命中率为85%,85%,当页当页表项在快表中时表项在快表中时,其查找时间忽略为其查找时间忽略为0,0,试问试问此时的存取时间是多少此时的存取时间是多少?3.6.1 分段引入分段引入n实际上,每个作业的地址空间都有一定的逻辑关系,如一个作业由若干程序模块组成,可划分为主程序、子程序和各种数据结构(数组、堆栈、文件等)等,因此,若按各个逻辑结构来申请作业的地址

44、空间并进行管理,则非常便于结构化程序设计。n为了更有效地利用存储空间,又能发挥用户的作用,采用分段管理便是一种良好的方法。n分段管理的基本思想是:将作业按逻辑上有完整意义的段划分,每段有自己的名字,以段为单位分配内存并进行内、外存的交换。n同样,分段管理也有静态分段和动态分段之分。3.6.2 实现原理实现原理(1)作业地址空间和地址结构。(2)存储管理和段表。(3)地址变换过程。二维地址空间的形式体现内存管理概述内存管理概述作业地址由段号s和段内地址d组成分段管理地址映射与存储保护3.6.3 分段与可变分区的区别分段与可变分区的区别(1)可变分区管理。以作业为单位分配一个连续区域。(2)分段管

45、理。以段为单位分配分区,各段散布于互不连续的分区内(以满足作业总容量为前提)。3.6.4 分段与分页的区别分段与分页的区别(1)段是信息的逻辑单位,而页是信息的物理单位,分段对用户是可见的,分页对用户是不可见的,段面向使用,页面向管理。(2)页大小固定,由系统决定;段大小不固定,由用户决定。(3)分页中逻辑地址分解为页号和页内位移由机器硬件决定;分段中逻辑地址定义成段号和段内位移由用户决定。(4)分页中,页内位移没有地址越界问题;分段中,段内位移存在地址越界问题。(5)分页的地址空间是一维的;分段的地址空间是二维的。分段管理的优点:(1)允许段长动态增长。(2)便于实现段的共享和保护。(3)便

46、于实现动态链接。分段管理的缺点:(1)段的长度受内存可用区大小的限制。(2)增加了系统的复杂性(段长不等,管理不便,段的共享、表格、栏目增多,系统开销大)。图 两个作业对SQRT的共享 段号段号容量容量存取权限存取权限状态状态起始地址起始地址访问位访问位修改位修改位增补位增补位0160E040000001.2.3340E034600004.n段号:段的编号,每段对应SMT中一个表目n段长:段的大小n存取控制权限:规定各段的存取权限:E执行,R读,W写n状态位:表示该段是否装入主存n主存起始地址:该段装入主存内的起始地址n访问位:是否被访问n修改位:是否被修改n增补位:用于动态扩大段长段变换表(

47、SMT)如果增补位为1,允许动态增加段的长度。对于较大的段,开始只装入一部分,当访问的地址大于段的长度时,越界中断,检查增补位若为1,则增加段的长度,可通过靠拢或移去一些段的办法来实现,利于处理变化的数据结构。图 段式地址变换过程中断处理程序从辅助段表中找出其在辅存的位置,调入主存 分段存储管理方案的评价分段存储管理方案的评价(1)可提供大容量的虚存(2)允许动态增加段的长度(3)便于段的动态链接(4)便于实现程序段的共享(5)便于实现存储保护图 两个作业对SQRT的共享 分段机制与分页机制的比较内存管理概述内存管理概述分页分页分段分段需要程序员了解吗?需要程序员了解吗?不需要不需要需要需要作

48、业地址空间的维度?作业地址空间的维度?一维一维二维二维数据和指令可以分开存储数据和指令可以分开存储并分别保护吗?并分别保护吗?不能不能可以可以能够方便的支持内存的自能够方便的支持内存的自由增长吗?由增长吗?不能不能可以可以有助于内存共享吗?有助于内存共享吗?不能不能可以可以3.7 段页式管理段页式管理3.7.1 实现原理实现原理3.7.2 数据结构数据结构3.7.3 地址映射地址映射3.7.1 实现原理实现原理n作业的地址空间按逻辑意义分段,是二维空间(s,d);每个段再划分成若干大小相同的页,其地址结构为(s,p,w),演变成三维空间。程序员可见的仍是段号和段内位移,地址变换机构自动将段内位

49、移的高几位解释为段内页号,将剩余几位解释为页内相对地址。n作业的地址空间最小单位不是段而是页,内存可以按页划分,并按页为单位装入,这样,一个段可以装入到若干个不连续的页内,段的大小不再受内存可用空间的限制。3.7.2 数据结构数据结构n系统为每个作业建立一张段表SMT,每个段建立一张页表PMT。n段表包括页表始址pta和页表长度pts。n页表包括与页号p对应的内存块号b。n此外,系统还设置了一个内存分块表MBT,包括占用者名和页号,如图所示。3.7.3 地址映射地址映射n段页式管理的地址映射与存储保护过程如图所示。n段页式管理是一种理想的存储管理方案;既方便了用户又有效利用了内存。缺点是增加了

50、软、硬件的开销,使操作系统更为复杂。n通常段页式管理应用于大中型计算机系统和32位的微机系统中。3.8 虚拟存储器管理虚拟存储器管理3.8.1 基本概念基本概念3.8.2 请求分页管理请求分页管理3.8.1 基本概念基本概念n作业运行时,不一定需要把全部作业调入内存:n覆盖技术n程序具有局部性n具有整体性、驻留性及连续性三种特性的存储器管理方法,叫实存管理。我们学习过的无论是分区管理,分页管理,或分段管理,还是段页式管理,都属于实存管理。n实存管理的所谓整体性是指一个作业的全部实体在执行之前必须被整个地装入内存,也就是说,如果一个作业的逻辑地址空间大于内存的用户区时就不能执行。n驻留性是指作业

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁