您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子科技大学计算机操作系统―第四章 存储管理
第四章许家珆存储管理的基本概念(一)这里只讨论内存管理,外存管理在设备中讨论。存储器是价格昂贵,数量不足的资源。存储管理的效率直接影响到系统的性能,也最能够反映一个操作系统的特色。因此,存储管理的问题是操作系统的核心问题。存储管理的目的1.为用户使用存储器提供方便。①在逻辑空间编程②提供足够大的存储空间2.充分发挥内存的利用率。许家珆存储管理的基本概念存储管理的功能内存分配内存保护地址映射内存扩充内存分配内存保护地址映射内存扩充讨论内容装入模块装入内存装入程序链接装入链接运行编译内存分配许家珆存储管理的基本概念调入策略确定装入时机(预调、请调)放置策略如何分配空闲内存区的原则(算法、连续、不连续)淘汰策略当使用请调策略时,确定淘汰哪些信息,以腾出内存空间,以便调入需要的信息。可分为相等和不相等的内存块内存分配与回收分配策略内存划分内存回收回收进程所释放的存储空间存储管理的功能许家珆地址空间和存储空间程序经过编译所形成的目标代码,一般使用相对地址;即其首地址为0,其它指令的地址是相对首地址而定。相对地址又称为逻辑地址。该目标代码相对地址的全体称为程序的地址空间,或逻辑空间。实际的内存物理地址的集合称为物理空间,或存储空间。地址映射存储管理的功能许家珆、重定位(Relocation)为了保证程序的执行,操作系统必须将执行过程要访问的逻辑地址转换为物理地址。这种地址的转换过程称为重定位或地址映射。地址映射存储管理的功能重定位分为静态、动态两种:静态重定位程序装入过程中一次完成地址映射。运行过程中,地址空间不允许改变。优点:软件实现,无需硬件支持。缺点:分配连续空间,程序不能移动。许家珆存储管理的基本概念动态重定位重定位发生在程序执行过程中,在访问指令或数据时,才进行地址变换。需要硬件地址变换机制实现。5001000VRBR+100011001500LOAD1,50012345内存空间LOAD1,500010050012345地址空间LOAD1,500许家珆存储管理的基本概念一。程序的装入和链接绝对装入方式装入程序按照装入模块中的绝对地址将程序和数据装入内存。可重定位装入方式装入模块为相对地址(逻辑地址),装入程序按照当前内存使用的情况,将装入模块装入内存的某个物理地址。但是装入后不允许移动。重定位—将逻辑地址转换为物理地址的过程,也称为地址变换或地址映射。由于地址变换是在装入时一次完成的,又称为静态重定位。1。程序的装入方式动态运行时装入方式将装入模块装入内存后,运行时才进行地址变换,又称为动态重定位。许家珆存储管理的基本概念静态链接事先将所需目标模块链接生成一个完整的装入模块(.exe)运行时直接装入内存。动态链接装入时链接边装入时边链接。即装入一个目标模块后,再将它所调用的外部模块装入,可存放在内存的任何地方,并修改目标模块中的相对地址。运行时链接延迟到运行时,才将当前被调用的目标模块装入,并链接。链接—由链接程序将目标模块及其所需的库函数,装配链接生成装入模块的过程。2.程序的链接许家珆存储管理的基本概念实存方案分区分配管理分页管理分段管理虚存方案请求式分页管理请求式分段管理段页式管理二。存储管理的机制内存分配策略地址映射机制内存保护机制虚拟存储机制许家珆分区存储管理一。固定分区(FixedPartitions)将内存固定划分为相等或不等的区域,称为分区,分区一旦划定,在执行过程中分区长度和个数将不再变化。建立内存分配表记录分区分配的情况。简单、可靠,但产生分区“内零头”。内存利用效低。分区存储管理的基本思想:将内存划分为若干分区,对用户作业进行连续分配。分区号大小(K)始址(K)状态1234153050100304575125已分配已分配已分配未分配~~~~操作系统进程A(6K)进程B(25K)进程C(36K)0304575125内零头1{2{3{4{许家珆分区存储管理二、可变分区(VariablePartitions)1.数据结构。已分配分区表。未分配分区表通常表项由存储控制块MCB(区号、长度、始址等)描述。并按照某种次序构成链结构。许家珆分区分配算法首次适应算法FF(FirstFit)未分配分区按照地址从小到大排列。分配时顺序查找,选择第一个满足要求的分区进行分配。循环首次适应算法RFF分配时从上次已分配分区的下一空闲分区开始查找。查找到链尾后,又从链首开始查找。最佳适应算法BF(BestFit)按照空闲区大小升序排列,分配时顺序查找,选择第一个满足要求的最小分区进行分配。最坏适应算法WF(WorstFit)未分配分区按照大小从大到小排列。分配时顺序选择当前最大区。许家珆分区存储管理(三)3。分区的分配与回收操作将分区分配给请求者修改数据结构p110许家珆分区存储管理(四)3。分区的分配与回收操作(P143图5-10)回收F1回收区F1回收区F2回收区F1内存回收的三种情况许家珆分区存储管理(五)三。动态重定位分区分配1.紧凑技术也称为“拼凑”技术,用于解决可变分区中产生的“外零头”,即移动某些已分配分区,使“外零头”合并为一个大的连续空闲区。(P111图4-8)2。分配算法请求分配顺序查找空闲分区表有可用分区动态分配修改数据结构Y空闲区总和需求N紧凑修改数据结构Y返回N显然,可变分区分配克服了内零头,提高了内存的利率,但产生了外零头。使小碎片得不到利用。返回分区号及首地址许家珆、说明重定位分区分配方式的地址转换机制?如何实现分区存储保护?2、为什么要引入对换技术?如何实现进程的对换?许家珆分页存储管理(一)离散式内存分配—允许一个进程分配在不相连接的内存区域中,以利于提高存储效率。一。分页存储管理的基本思想将地址空间划分为大小相等的页面,将内存空间也划分为大小相等的物理块,一个作业的所有页面一次装入,但可不连续存放。1、分页地址结构页号P位移量W3112110内存连续分配的问题:产生内零头或者外零头。采用紧凑技术增加额外开销。页面大小通常为2的整数次幂(512字节~4K)。许家珆分页存储管理(二)页表PT(PageTable)页号P位移量W逻辑地址LA页框号位移量物理地址2、内存分配将地址空间连续划分为大小相等的页面,将内存空间也划分为大小相等的物理块(页框),一个作业的所有页面一次装入,但可不连续存放。仅存在很少的页内零头。为每个进程建立一张页表,每页占据一个表项,页表通常放在内存中。页号页框号(块号)存取控制01....m::35..许家珆分页存储管理(三)二。地址映射机制是通过“页表”来实现地址映射的。页号块号存取控制页描述子+如果页号页表长度,则中断,否则继续.如果访问非法,则中断,否则继续。页号位移量虚拟地址LA块号位移量物理地址页表始址长度页表寄存器PTR页表块号存取控制页描述子页号01...块号位移量许家珆分页存储管理(四)由于页表存放在内存,每存取一个数据,CPU要访两次内存,几乎降低了一半的计算速度,为了加快地址变换的速度,在地址变换机构中建立一个高速缓冲存储器,也称为联想存储器(AssociativeMemory)或快表。2。具有快表的地址变换机构三。分页系统中的超高速缓存(CacheMemory)在Cache中,存放现行进程的页表副本,即记录现行进程中最常用的页描述子。页表表目是在访问内存的过程中按需要动态装入快表的,当进程切换时,快表被清零。P153图5-18描述了具有快表的地址变换过程。1。为什么要设置快表许家珆分页存储管理(五)在缓存中查找页描述子,找到了则提取。快表的命中率可高达80%—90%。利用页描述子和位移量计算物理地址2在缓存中未找到,从页表中读取,并存入缓存。利用页描述子和位移量计算物理地址页号位移量虚拟地址具有超高速缓冲存储器的地址变换过程275382。。。超高速缓存页表01234...首先访问高速缓存,确定需要的页描述子是否在其中,如果没有发现,再访问存储器中的页表。同时将从页表中读出的页描述子更新高速缓存中旧的页描述子。许家珆分页存储管理(六)1、什么是“页表”?它具有什么样的结构?其表项一般包括哪些字段?2、如何通过页表实现逻辑地址到物理地址的转换?画出地址转换的流程图。3、分页存储管理采用什么存储保护措施?4、画出具有快表的地址转换过程的流程图。问题许家珆分页存储管理(七)四。多级页表设置多级页表是为了解决逻辑空间过大,所造成的页表过大,占有太大的连续内存空间的问题。1。二级页表页表内再分页,分为外层页表和内层页表。逻辑地址结构:外层页号P1内层页号P2页内地址d31222112110具有二级页表的地址变换机构:问题:1.分别画出二级页表的页描述子的结构,你认为它们应该存放在哪里?如何存放?2.画出二级页表地址转换机制的流程图。许家珆分段存储管理(一)一、分段存储管理的基本思想1、什么是分段页是信息的物理单位,段(segments)是信息的逻辑单位,在逻辑上是一组整体的信息,每个段都是从0开始相对编址的。2、为什么引入分段存储管理方便用户编程和实现共享便于实现动态链接许家珆分段存储管理(二)3、分段地址在分段存储管理系统中,对所有地址空间的访问均要求两个成分:(1)段名;(2)段内地址。例如:CALL[X]|Y转移到子程序的入口点Y。LOAD1,[A]|D将数组A的D单元的值读入寄存器1。STORE1[B]|C将寄存器1的内容存入分段B的C单元中。这些符号程序经汇编和装配后,指令和数据的单元地址由两部分构成,一是表示段名的段号S;一是位移量W,即段内地址。所以在分段系统中的地址结构有如下形式:一旦段号和段内位移量字段的长度确定后,一个地址空间中允许的最多段数及段的长度也就限定了。段号S段内位移量W3116150许家珆分段存储管理(三)分段地址变换由段表实现,在作业被调入时,为其建立一张段表ST(SegmentTable)。由此可见:二、分段地址变换所谓分段管理,就是管理由若干分段组成的作业,且按分段来进行存储分配。实现分段管理的关键在于,如何保证分段(二维)地址空间中的一个作业在线性(一维)的存储空间中正确运行。许家珆分段存储管理(四)利用段表实现地址映射许家珆
本文标题:电子科技大学计算机操作系统―第四章 存储管理
链接地址:https://www.777doc.com/doc-3541679 .html