




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章存储管理,存储管理功能内存资源管理存储管理方式外存空间管理虚拟存储系统,6.1存储管理功能,存储分配和去配分配去配对象内存、外存(相同方法)分配去配时刻进程创建、撤销、交换、长度变化记录内存资源和外存资源的使用情况存储共享目的:节省内存、相互通讯内容:代码、数据纯代码((purecode),以保证“可再入”,即它在运行过程中不修改自身.存储保护防止地址越界防止操作越权,6.1存储管理功能(Cont.),存储扩充内存、外存结合,虚拟存储体系速度接近内存,容量相当外存地址映射逻辑地址=物理地址硬件支持基址寄存器(base)、限长寄存器(limit)、快表;使用上述寄存器完成地址映射过程;不能正常完成地址映射时产生中断;需软硬件相结合来完成。,6.2内存资源管理,6.2.1内存分区分区时刻静态分区:系统初始化时分;动态分区:申请时分。分区大小等长分区:2i异长分区:依程序、程序单位、对象大小。通常作法静态+等长(页式、段页式)动态+异长(段式、界地址),6.2.2内存分配,静态等长分区的分配字位映象图(bitmap)空闲页面表空闲页面链,字位映象图(bitmap),第0页,第2页,第1页,第k页,第n页,.,.,分配:自头寻找第一个为0的位,改为1,返回页号;去配:页号对应的位(bit)置为0。,用一个bit代表一页状态,0表空闲,1表占用。(多单元),空闲页面表,特点:可以分配连续页面。,占用,占用,120页,121页,122页,123页,.,.,空闲页面链,占用,占用,占用,Head:,优点:节省空间。(不适合管理外存),动态异长分区的分配,数据结构:,Criteria:尽量使空闲区域连续。,初始时一个连续空闲区。长度=0为表尾。,最先适应算法(FirstFit),空闲区:首址递增排列;申请:取第一个可满足区域;优点:尽量使用低地址空间,高区保持大空闲区域。缺点:可能分割大空闲区。Eg.申请32将分割第一个区域。,最佳适应算法(BestFit),空闲区:递增排列;申请:取最小可满足区域;优点:尽量使用小空闲区,保持大空闲区。缺点:可能形成碎片(fragment)。Eg.申请30将留下长度为2的空闲区。,最坏适应算法(WorstFit),空闲区:长度递减排列;申请:取最大可满足区域;优点:防止形成碎片。缺点:分割大空闲区域。,空闲区首址,空闲区长度,128,64,1024,256,32,256,0,.,.,6.2.3碎片处理,动态异长分区存储分配可能形成很小的空闲区域,称为碎片(fragment)紧凑:移动占用区域,使所有空闲区域连成一片(开销很大)。,OS,P1(248k),P2(250k),8k,6k,4k,256k:,512k:,768k:,264k:,518k:,256k:,504k:,754k:,18k,6.3存储管理方式,界地址管理方式(一维地址)页式管理方式(一维地址)段式管理方式(二维地址)段页式管理方式(二维地址),6.3.1界地址管理方式,4.3.1.1基本原理一个进程在内存空间的地址由两个参数确定:起始地址和长度,称作一个对界.1.内存空间划分:动态异长;2.进程空间划分:一个进程一个区域,逻辑地址0l-13.进程空间与内存空间对应关系:可以浮动,0:,l-1:,.,.,b:,l,b+l-1:,进程空间,内存空间,6.3.1界地址管理方式,4.所需表目:(1)内存分配表-在PCB中;(2)空闲区域表:用于记录内存中所有尚未分配的区域。5.所需寄存器:(1)基址寄存器;(2)限长寄存器。6.地址映射:,6.3.1界地址管理方式,6.地址映射:地址映射需要将程序所产生的逻辑地址变换为内存中的物理地址,即完成如下映射:(a)(b+a)其中a为逻辑地址,b为进程起始地址.当a所对应的物理地址不存在时(越界),映射没有意义,结果为.,6.3.1界地址管理方式,0:,l-1:,.,.,b:,l,b+l-1:,l,b,逻辑地址,CP,+,a,a+b,步骤:(1)由程序确定逻辑地址a;(2)a与l比较判断是否越界,不满足:0al-1,越界;(3)a与b相加得到物理地址。,进程空间,内存空间,6.3.1界地址管理方式,6.3.1.2双对界代码:一对界数据:一对界,6.3.1界地址管理方式,6.3.1.3交换技术(swapping)交换(swapping):是指进程在内存空间与外存空间之间的动态调度,它是缓解内存空间紧张矛盾的一种有效方法.当外存中有可运行进程时,系统试图将其调入内存;当内存空间紧张时,系统将内存中某些进程,尤其是暂时不可运行的进程(如处于WAIT状态的进程)移到外存.采用交换技术,一个进程可在内外存之间交换,但由于交换的基本单位是整个进程,因而仍然不能运行比内存大的程序.,覆盖技术,覆盖(overlay)是将较大程序装入较小进程空间一种的技术其思想是只将全局代码和数据静态地放在内存,其它部分则分阶段地动态装入。例如,一个包括四遍扫描的编译程序:,6.3.2分页式存储管理(paging),6.3.2.1基本原理1.内存空间划分:静态等长,2i,称为一个页架(pageframe)。,.,.,第0页,第1页,第k页,第2n-i-1页,2i,02i:,12i:,k2i:,(2n-i-1)2i:,物理地址=页架首址+页内地址=页架号2i+页内地址=,i位,n-i位,6.3.2分页式存储管理,2.进程空间划分:静态等长,2i,称为一个页面。,.,.,第0页,第1页,第k页,第l-1页,2i,02i:,12i:,k2i:,(l-1)2i:,逻辑地址=逻辑页首址+页内地址=逻辑页号2i+页内地址=,i位,3.进程空间与内存空间对应关系,.,第0页,第1页,第2页,第3页,第16页,第22页,第32页,第15页,.,.,.,进程空间,内存空间,4.所需表目:,(1)页表,每个进程一个,物理页号,逻辑页号:,15,22,16,32,0,1,2,3,5.所需寄存器,(2)总页表:系统一个,(1)页表首址寄存器:,b,l,(2)页表长度寄存器:,系统一个,系统一个,(3)快表:系统一组,逻辑页号,页架号,.,.,.,.,f,p,逻辑地址(p,d)物理地址(f,d)(1)由程序确定逻辑地址(p,d);(2)由p查快表得页架号f;如查不到:(a)由p与l比较,判别是否越界:不满足:0pl-1,越界;(b)由p和b查页表得f,(p,f)快表,如满淘汰一个;/(c)转(2)(3)f与d合并得物理地址,6.地址映射:(p,d)(f,d),表6-1快表长度与页命中率的关系,假定快表的命中率为98%,快表的访问时间为20(ns),内存的一次访问时间为100(ns),则内存有效访问时间(effectiveaccesstime)为:EAT98%(20+100)+2%(20+200)122(ns),.,逻辑页号,页架号,.,.,.,.,f,p,l,b,b,l,.,.,PCB,页架号,逻辑页号,.,f,.,p,.,fd,+,cp,pf,物理地址,逻辑地址,b:,.,6.3.2.2多级页表,提出背景进程虚拟空间大幅度增加单级页表需要很大连续内存空间多线程设计导致进程虚拟空间不连续性页表所占内存空间浪费例如32位进程地址空间,页长4k(占12位),页号20位,页表需要220个入口!解决策略二级或多级页表,例如对于四级页表,假定快表的命中率仍为98%,快表与内存的访问时间仍分别为20(ns)和100(ns),有效访问时间为:EAT98%(20+100)+2%(20+500)128(ns),二级页表,6.3.2.3反置页表(invertedpagetable),传统页表面向进程空间每个进程逻辑页面有一表项当进程空间很大时,页表很大反置页表面向内存空间每个内存页架一个表项大小固定,反置页表-工作原理,程序,物理内存,fd,pidpd,f,逻辑地址,物理地址,反置页表,速度问题,反置页表查找由表头起始,平均为表长度的一半速度慢解决方案在反置页表前增加一级杂凑表查找杂凑表与反置页表需要两次访问内存为进一步提高速度,快表缓冲,1.内存空间划分:动态异长,每区一段。,段首址+段内地址,物理地址=,b:,l,b+d,6.3.3分段式存储管理(segmentation),2.进程空间划分:若干段,每段一个程序单位。,调用x段e,f:访问d段a,e:调用y段f,main(段号0),X(段号1),Y(段号2),D(段号3),a:,080k-1,0.40k-1,020k-1,060k-1,逻辑地址=,段号段内地址,(二维地址),main,x,y,d,3.对应关系,40k,60k,80k,20k,.,.,.,.,进程空间,内存空间,100k:,200k:,300k:,320k:,4.所需表目,(1)段表:每进程一个,段首址,段长度,100k,40k,80k,60k,段号,0:1:2:3:,20k,200k,320k,300k,(2)空闲表:系统一个arrayof(addr,size),5.所需寄存器,(1)段表首址寄存器:,b,l,(2)段表长度寄存器:,系统一个,系统一个,(3)快表:系统一组:,段号段首址段长度,.,.,.,.,l,s,.,b,.,6.地址映射:(s,d)(b+d)逻辑地址(s,d)物理地址(b+d)(1)由程序确定逻辑地址(s,d);(2)由s查快表得b和l如查不到:(a)由s与l比较判断是否越界不满足:0sl-1,越界;(b)由s和b查段表,得b和l(s,b,l)快表,如快表满淘汰一个;/(c)转(2)(3)由d与l比较,判断是否越界不满足:0dl-1,越界;(4)由bd得物理地址。,段号,段长段首址,.,.,.,.,lb,s,l,b,b,l,.,.,PCB,段长段首址,段号,.,lb,.,s,.,b+d,+,cp,slb,物理地址,逻辑地址,.,cp,+,b:,6.3.3.2段的共享,段长段首址,.,bl,.,段号si.,P1段表:,段长段首址,.,bl,.,段号sj.,P2段表:,共享段,.,.,b:,l,内存空间,段名共享记数段长段首址其它,.,vi335k125k?,.,共享段表:,进程段表(n)共享段表(1)共享段(1),6.3.3.2段的保护(1)段表的改进:,段长段首址,.,lb101,段号s.,访问权限RWE,.,段号段长段首址,.,slb101,访问权限RWE,(2)快表的改进:,.,6.3.4段页式存储管理(segmentationwithpaging),段式优于页式便于共享和保护页式由于段式消除“碎片”问题段页式:结合二者优点每个进程包含若干段每个段包含若干页,6.3.4.1基本原理1.内存空间划分:(同页式)静态等长,2i,称为一页。物理地址=(页架号,页内地址)=(f,d)2.进程空间划分:一个进程若干个段一个段若干个页逻辑地址=(段号,逻辑页号,页内地址)=(s,p,d),3.对应关系:,0页,1页,2页,0页,1页,第1段:,0页,1页,2页,第0段:,第2段:,25页,26页,27页,28页,29页,30页,31页,32页,33页,.,.,内存空间,进程空间,4.所需表目(1)段表:每个进程一个,页表首址页表长度,.,bl,.,段号0.s.l-1,(2)页表:每个段一个,逻辑页号0pl-1,页架号,.,f,.,(3)总页表:系统一个,5.所需寄存器(1)段表基址寄存器:保存正运行程度段表首址;(2)段表限长寄存器:保存正运行程序段表长度。(3)快表:一组联想寄存器(快段表+快
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 镁金属环保设备可持续发展评估报告
- 新能源时代2025年智能电网在能源行业数字化转型中的应用前景报告
- 2025年主题公园扩建项目社会稳定风险评估与风险防范与应对能力评估报告
- 中医理疗考试题及答案
- 公交业务知识和理论培训课件
- 2025年教育质量评估与认证体系在职业教育教学评价标准中的应用
- 中医入门考试题及答案
- 2025年事业单位工勤技能-安徽-安徽热力运行工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽林木种苗工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽医技工四级(中级工)历年参考题库含答案解析
- (新)部编人教版高中历史中外历史纲要上册《第13课-从明朝建立到清军入关课件》讲解教学课件
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验
- 《医院感染管理办法》知识试题与答案
- 提高管床护士对患者诊疗信息的知晓度PDCA记录表
- 某园区综合运营平台项目建议书
- 孕期患者非产科手术的麻醉
- 养老机构临终关怀服务手册
- 母婴产品抖音运营方案
- GB/T 27007-2011合格评定合格评定用规范性文件的编写指南
- GB/T 23445-2009聚合物水泥防水涂料
- 职业史证明【模板】
评论
0/150
提交评论