13存储器管理.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2.4存储管理对主存储器空间的管理内存的分配与回收虚拟存储技术地址映射存贮空间共享与保护存储器层次结构快速缓存:SRAM–DataCache内存:DRAM,SDRAM,DRDRAM等;外存:软盘、硬盘、光盘、磁带等;外存(secondarystorage)DOS核心命令处理程序内存(primarystorage)快速缓存(cache)寄存器(register)2.4.1存储管理的功能内存的分配与回收内存的共享与保护地址映射主存的“扩充”——虚拟内存覆盖与交换技术一、内存分配与回收内存分配就是为进程分配内存空间,涉及以下问题:管理内存分配表:记录分配情况、空闲情况等制定分配策略表制定内存划分方式放置策略调入策略淘汰策略等分不等分二、内存共享与保护共享保护共享内存资源,程序并发执行;共享内存中公共信息。避免并发执行的程序相互干扰;避免用户程序侵犯系统区。三、虚拟存储技术引入原因:–当作业很大,超过内存剩余时,无法装入–装入的作业对内存利用率不高:99%的指令在短时间内都不会得到执行解决方法–不需一次全部装入作业,程序部分装入就可以执行–装入内存的程序在不需要访问时暂时从内存换出–给用户感觉比实际空间大的虚拟空间虚空间大小–虚空间的逻辑大小=可寻址范围–虚空间的实际大小=内存+外存对换区例:32位操作系统的可寻址范围是232=4GByte四、地址映射逻辑地址(程序空间)物理地址(内存空间)重定位0000Memory地址是以字节为单位的存储器编号内存空间(绝对空间):整个系统内存从0开始以字节为单位编址——物理地址程序空间(相对空间):程序由机器代码组成,以字节为单位,每个程序都从0开始编址——逻辑地址程序的装入和链接从用户源程序到内存中可执行的代码将经历:–编译:完成源程序从高级语言到机器可理解代码的转换根据任务的需要可能形成若干相对独立的目标模块–链接:将目标模块链接起来,如标准库、系统库形成一个完整的装入模块–装入:由系统的装入操作将装入模块装入内存涉及:–内存空间的分配——放到内存什么地方–地址空间的映射——地址变换程序的装入A、绝对装入方式–装入模块的地址与内存实际地址完全相同–系统装入程序时工作最简单,直接分配,不变换地址–要求:用户使用绝对地址编程用户了解程序在内存中的存放位置用户控制内存使用情况B、静态重定位装入方式装入模块中使用从0开始的相对地址装入时,由系统分配内存空间,并完成装入模块中相对地址变换为绝对地址重定位逻辑地址基地址+物理地址装入模块中的相对地址装入时的地址变换MOVax,[2500]365010002500100001100012500MOVax,[2500]365程序空间内存空间0[12500]12500=10000+2500物理地址基地址相对地址C、动态重定位装入方式装入模块中使用相对地址,装入时不变换地址,在执行时才完成地址的变换•方便了模块的动态装入•动态重定位需特殊的硬件支持——重定位寄存器利用硬件地址变换机构2.4.2连续分配存储管理特点:–为一个用户程序分配一个连续的内存空间–程序空间本来就是连续的–用连续的内存装入连续的程序,减少管理工作的难度可分为:–单一连续区存储管理–分区存储管理单一连续区存储管理内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。最简单,适用于单用户、单任务的OS。优点:易于管理。缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。用户程序位于RAM中的操作系统0xFFF...0位于RAM中的操作系统用户程序0ROM中的设备驱动程序用户程序位于RAM中的操作系统02.4.2分区存储管理把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个或几个分区;操作系统占用其中一个分区。特点:适用于多道程序系统和分时系统–支持多个程序并发执行–可能存在内零头(分配给用户但没有被使用的空间)和外零头(没有分配但无法分配的空间)按不同分配方式,分为:–固定分区–可变分区一、固定分区基本思想:将内存区固定地划分为大小相等或者不等的区域,每个分区装入一道作业。分区划分后,每个分区的长度和内存中的分区总数将保持不变。内存分配表分区号大小起始地址状态14K0000H未分配28K4000H已分配312K12000H未分配8M8M8M8M8MOperatingSystemOperatingSystem8M12M8M8M6M4M2M固定分区(大小相同)固定分区(多种大小)•优点:易于实现,开销小。•缺点:–内零头造成浪费–分区总数固定,限制了并发执行的程序数目二、可变分区(动态分区)基本思想:根据作业任务的大小划分分区,分区的大小和数目不再固定。分配区控制块空闲区控制块AMCB(AllocationMemoryControlBlock)FMCB(FreeMemoryControlBlock)分配过程:10K作业1作业2作业3作业12K作业21K作业34K作业1作业3作业4作业43K“拼接”/“紧缩”技术多次分配、回收后,形成小空闲区无法使用。这时需要使用拼接或紧缩技术将已分配分区移动,使未分配分区合成较大分区。对占用分区进行内存数据搬移占用CPU时间如果对占用分区中的程序进行浮动,则其重定位需要硬件支持。紧缩时机:每个分区释放后,或内存分配找不到满足条件的空闲分区时。分配算法(空白分区选择)1、首次适应FF(FirstFit)(1)将空白分区按地址递增顺序链接(2)从链首开始查找适合的分区优先分配内存中低地址部分优点:缺点:简单在低地址部分会积累大量外零头(3)从选中的分区中分出所需的大小,其余部分仍留在空白分区链表里选取最适合的空白分区大分区保证缺点:优点:效率不高零头更小(1)将空白分区按大小递增顺序链接(2)从链首开始查找适合的分区2、最佳适应BF(BestFit)3、最坏适应WF(WorstFit)?选取分区中最大的一个——最不适合的(1)将空白分区按大小递减顺序链接(2)从链首开始分配分区优点:查找效率显著提高缺点:大作业容纳能力会下降2.4.3覆盖与交换技术引入原因:在分区管理技术中,程序的地址空间(逻辑地址空间)可能大于实际存储器空间,使程序无法装入(无法运行)。覆盖(Overlay)交换(Swapping)一、覆盖(Overlay)一段内存区可以先后被不同的程序段重复使用常驻区(非覆盖区)覆盖区初始段处理段输出段特点:覆盖断划分困难,不易实现二、交换(Swapping)在内、外存之间进行数据和程序的交换内存磁盘交换技术一般与分区、分页、分段管理技术结合使用。2.4.4分页存储管理连续分配方式要求连续存放,产生大量的内/外零头,浪费空间。引入离散分配方式——程序在内存中不一定连续存放页块逻辑地址物理地址非连续地址映射一、分页管理的基本思想页:将逻辑地址空间划分为大小相同的块,称为页或虚页面(Page)块:将实际物理空间划分为与页大小相等的块,称为存储块或页框(PageFrame)没有外零头,仅有小于一个页面的内零头优点:一个块可以装入一页逻辑地址连续的页可以通过地址变换机构映射到不连续的内存块中二、分页管理的基本方法关键问题:如何实现页到块的地址变换?——通过页表实现。…012m内存012n用户程序012n012n3m-21m-1页表页号块号1.页面地址转换页面地址转换通过下述3种数据结构实现:(1)存储分块表(MBT)整个系统一个,记录所有内存块的状况。块号作业ID状态01…nOS作业1…作业n忙闲…忙(2)页表(PT)页号块号标志0211100241每个作业一个,记录作业的页与内存块的关系页表在作业装入时创建,作业撤销时撤销。作业被调度时,页表存放在页表控制寄存器PTCR中(3)作业表(JT)作业号页表大小页表始址状态020已分配116未分配240已分配整个系统一个,记录所有作业的页表情况。页面地址到物理地址转换过程:(1)作业被调度时首先通过JT找到相应页表的起始地址及大小,并装入PTCR(2)将页号与PTCR中的页表大小进行比较,若页号页表大小则为非法访问,产生越界中断;否则为合法访问,根据页表起始地址和页号找到该页页表表项(3)通过页表表项找到逻辑页所对应的物理块号,然后将块号与页内偏移地址结合形成物理地址页表始址页表大小PTCR+块号块内地址物理地址寄存器页号页内地址逻辑地址寄存器越界?页号块号J1的页表2404010作业号页表大小页表始址状态J020已分配J1161024已分配JT210例:设块大小为32,利用下面的页表,将逻辑地址140变换为物理地址。解:1)逻辑地址——有效地址页号=INT[140/32]=4页内地址=140%32=122)查页表得到块号为53)物理地址=5×32+12=172页号块号06172234455102.快表问题引入:两次内存访问访问页表得到物理地址访问物理地址得到数据快表:用于存放当前页表中最频繁访问表项的高速缓存(Cache)。基于快表的分页系统:先查找快表,未成功再查找页表(p.112图2.26)3.缺页中断处理问题引入:如果要访问的页不在内存中当发现将要用到的页面不在主存中时产生缺页中断,由缺页中断来完成页面的调入。页号块号存取控制状态位引用位修改位外存地址引用位:0未引用过1引用过对页表扩充:修改位:0未修改1已修改过缺页中断的处理过程:相对地址页号页内地址页表始址页表大小页表控制寄存器+块号块内地址物理地址寄存器逻辑地址寄存器越界?页号块号页表状态位缺页中断2150301604.请求式分页属于虚拟存储管理:–部分装入、请求调入、页面置换缺页中断将耗费系统时间,缺页率是影响系统性能的主要因素–缺页率:需要访问的页面不在内存中次数在总页面访问次数的比率–缺页率与程序实际使用的内存块数量相关页面置换策略–当没有空闲内存块,又需要调入新的页面时,要将已装入内存的页面置换出去,如何选取页面置换?页面淘汰算法若缺页中断处理时内存已无空闲分块?页面置换(页面淘汰)页面淘汰算法抖动Thrashing频繁地调进和调出页面,特别是被换出的页面在短时间内又要被换入,系统开销显著增加,以至于系统吞吐量大大下降(1)FIFO算法先进先出算法——最简单的算法(2)LRU算法最近最久不用页面被淘汰(3)LFU算法最近最少使用页面被淘汰常用页面淘汰算法:5.分页式存储管理特点3重定位方便2保护功能好1存储效率高4易于共享5开销稍微偏大2.4.5分段存储管理引入原因:按页划分程序的模块化矛盾以段为内存分配单位优点:方便程序设计,便于内存共享、保护、动态装入。1.分段实现思想作业按逻辑信息的完整性分段,段有段名和段号;段长度由程序决定,可动态延伸;各段都是从0开始编址的连续地址空间(二维)一个段是连续的,各段可以离散存放;2.分段的地址转换段表:每进程一个,记录进程内段与内存实际段存放基地址的映射关系。段号段长02k11k240k主存始址1004000--存取控制增补位010RWRW特征位110修改位100段表(ST)示意图地址变换机构和过程:段表始址段表大小段表寄存器(JT)+物理地址寄存器越界?段号基址段表4100段号逻辑地址寄存器段内地址+绝对地址3.段的共享与保护段的共享:段表中同一起始地址段的保护:地址越界保护存取控制保护分段方式的内存共享共享段表段号基址进程1段表进程2段表段名1256始址内存共享进程数记录共享段和进程的信息,以便共享段的分配和回收4.分段与分页的比较(1)“分页”是系统活动,用户无法介入,页的大小固定“分段”是用户可见的,段大小可变(2)页式信息的物理单位,不是完整的逻辑单位段是完整的逻辑信息单位(3)分页的作业空间是一维的,是单一线性空间分段的作业空间是二维的。2.4.6段页式管理技术引入原因:分页的优点:分段的优点:存储器利用率高符合程序的模块结构+段页式存储管理1.段页式实现思想有效地址=段名+段内地址段内页号+页内地址用户程序分段,段内分页(系统自动)系统内存分块(系统自动)每块装入一页,各

1 / 56
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功