版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章存储管理存储管理功能内存资源管理存储管理方式外存空间管理虚拟存储系统6.1存储管理功能存储分配和去配分配去配对象内存、外存(相同方法)分配去配时刻进程创建、撤销、交换、长度变化存储共享目的:节省内存、相互通讯内容:代码、数据存储保护防止地址越界防止操作越权6.1存储管理功能(Cont.)存储扩充内存、外存结合,虚拟存储体系速度接近内存,容量相当外存地址映射逻辑地址=>物理地址硬件支持基址寄存器(base)、限长寄存器(limit)、快表;使用上述寄存器完成地址映射过程;不能正常完成地址映射时产生中断。6.2内存资源管理6.2.1内存分区分区时刻静态分区:系统初始化时分;动态分区:申请时分。分区大小等长分区:2i异长分区:依程序、程序单位、对象大小。通常作法静态+等长(页式、段页式)动态+异长(段式、界地址)6.2.2内存分配
静态等长分区的分配字位映象图空闲页面表空闲页面链动态异长分区的分配最先适应(FirstFit)最佳适应(BestFit)最坏适应(WorstFit)字位映象图(bitmap)100…1...10第0页第2页第1页第k页第n页......分配:自头寻找第一个为0的位,改为1,返回页号;去配:页号对应的位(bit)置为0。用一个bit代表一页状态,0表空闲,1表占用。(多单元)空闲页面表首页号空页数............1204特点:可以分配连续页面。占用占用120页121页122页123页......空闲页面链占用占用占用Head:优点:节省空间。(不适合管理外存)动态异长分区的分配空闲区首址空闲区长度............25001500数据结构:Criteria:
尽量使空闲区域连续。初始时一个连续空闲区。长度=0为表尾。最先适应算法(FirstFit)空闲区首址空闲区长度128641024256322560......空闲区:首址递增排列;申请:取第一个可满足区域;优点:尽量使用低地址空间,高区保持大空闲区域。缺点:可能分割大空闲区。
Eg.申请32将分割第一个区域。最佳适应算法(BestFit)空闲区:首址递增排列;申请:取最小可满足区域;优点:尽量使用小空闲区,保持大空闲区。缺点:可能形成碎片
(fragment)。
Eg.申请30将留下长度为2的空闲区。空闲区首址空闲区长度128641024256322560......最坏适应算法(WorstFit)空闲区:首址递增排列;申请:取最大可满足区域;优点:防止形成碎片。缺点:分割大空闲区域。空闲区首址空闲区长度128641024256322560......UNIX存储分配--FFstructmap{char*m_size;char*m_addr;};structmapcoremap[CMAPSIZ];structmapswapmap[SMAPSIZ];defineCMAPSIZ100defineSMAPSIZ100malloc(mp,size)structmap,*mp;{registerinta;registerstructmap*bp;for(bp=mp;bp->m_size;bp++){if(bp-m_size>=size){a=bp->m_addr;bp->m_addr=+size;if((bp->m_size=-size)==0)do{bp++;(bp-1)->m_addr=bp->m_addr;}while((bp-1)->m_size=bp->m_size);return(a);}}return(0);}mfree(mp,size,aa)structmap*map;{registerstructmapbp;registerintt,a;a=aa;for(bp=mp;bp->m_addr<=a&&bp->m_size!=0;bp++);if(bp>mp&&(bp-1)->m_addr+(bp-1)->m_size==a){//与前合并
(bp-1)->m_size=+size;if(a+size==bp->m_addr){//前后合并
(bp-1)->m_size=+bp->m_size;while(bp->m_size){bp++;(bp-1)->m_addr=bp->m_addr;(bp-1)->m_size=bp->m_size;}}}}else{if(a+size==bp->m_addr&&bp->m_size){//与后合并
bp->m_addr=-size;bp->m_size=+size;}elseif(size)do{//无合并
t=bp->m_addr;bp->m_addr=a;a=t;t=bp->m_size;bp->m_size=size;bp++;}while(size=t);}}6.2.3碎片处理紧凑:移动占用区域,使所有空闲区域连成一片(开销很大)。OSP1(248k)P2(250k)8k6k4k256k:512k:768k:264k:518k:P1OSP2256k:504k:754k:18k6.3存储管理方式界地址管理方式(一维地址)页式管理方式(一维地址)段式管理方式(二维地址)段页式管理方式(二维地址)6.3.1界地址管理方式4.3.1.1基本原理
1.内存空间划分:动态异长;
2.进程空间划分:一个进程一个区域,逻辑地址0l-13.进程空间与内存空间对应关系(可以浮动):0:l-1:......b:lb+l-1:进程空间内存空间6.3.1界地址管理方式4.所需表目:
(1)内存分配表--在PCB中;
(2)空闲区域表:arrayof(addr,size)。
5.所需寄存器:
(1)基址寄存器;
(2)限长寄存器。
6.地址映射:6.3.1界地址管理方式0:l-1:......b:lb+l-1:lb逻辑地址CP+aa+b步骤:(1)由程序确定逻辑地址a;
(2)a与l比较判断是否越界,不满足:0al-1,越界;
(3)a与b相加得到物理地址。进程空间内存空间6.3.1界地址管理方式6.3.1.2双对界代码:一对界数据:一对界6.3.1.3交换技术(swapping)
例:UNIX交换进程sched(#0)
交换原则:外存SRUN状态进程内存
(1)内存有空间,直接移入;
(2)内存空间不够,移出SWAIT,SSTOP状态进程;
(3)如果还不够,移出SSLEEP,SRUN状态进程,条件:在外时间3秒;在内时间2秒。b1l1b2l26.3.2分页式存储管理(paging)6.3.2.1基本原理
1.内存空间划分:静态等长,2i,称为一个页架。
......第0页第1页第k页第2n-i-1页2i02i:12i:k2i:(2n-i-1)2i:物理地址=页架首址+页内地址
=页架号2i+页内地址
=
页架号页内地址i位n-i位6.3.2分页式存储管理2.进程空间划分:静态等长,2i,称为一个页面。......第0页第1页第k页
第l-1页2i02i:12i:k2i:(l-1)2i:逻辑地址=逻辑页首址+页内地址
=逻辑页号2i+页内地址
=逻辑页号页内地址i位3.进程空间与内存空间对应关系...第0页第1页第2页第3页第16页第22页第32页第15页.........进程空间内存空间4.所需表目:(1)页表,每个进程一个物理页号逻辑页号:1522163201235.所需寄存器(2)总页表:系统一个(1)页表首址寄存器:bl(2)页表长度寄存器:系统一个系统一个(3)快表:系统一组:逻辑页号页架号............fp逻辑地址(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){}...逻辑页号页架号............fplbbl......PCB页架号逻辑页号...f...p...f
dp
d+cp
p
f
物理地址逻辑地址b:...6.3.2.2多级页表提出背景进程虚拟空间大幅度增加单级页表需要很大连续内存空间多线程设计导致进程虚拟空间不连续性页表所占内存空间浪费例如32位进程地址空间,页长4k(占12位),页号20位,页表需要220个入口!解决策略二级或多级页表Two-LevelTableSchemeTwo-LevelPagingExampleAlogicaladdress(on32-bitmachinewith4Kpagesize)isdividedinto:apagenumberconsistingof20bits.apageoffsetconsistingof12bits.Sincethepagetableispaged,thepagenumberisfurtherdividedinto:a10-bitpagenumber.a10-bitpageoffset.Thus,alogicaladdressisasfollows:
wherepiisanindexintotheouterpagetable,andpjisthedisplacementwithinthepagetable.pagenumberpageoffsetpipjd101012Address-TranslationSchemeAddress-translationschemeforatwo-level32-bitpagingarchitectureEventhoughtimeneededforonememoryaccessisquintupled,cachingpermitsperformancetoremainreasonable
6.3.2.3反置页表(invertedpagetable)传统页表面向进程空间每个进程逻辑页面有一表项当进程空间很大时,页表很大反置页表面向内存空间每个内存页架一个表项大小固定反置页表--工作原理程序物理内存……pidp……fdpidpdf逻辑地址物理地址反置页表速度问题反置页表查找由表头起始,平均为表长度的一半速度慢解决方案在反置页表前增加一级杂凑表查找杂凑表与反置页表需要两次访问内存为进一步提高速度,快表缓冲1.内存空间划分:动态异长,每区一段。段首址+段内地址物理地址=b’:l’b’+d6.3.3分段式存储管理(segmentation)2.进程空间划分:若干段,每段一个程序单位。调用x段ef:访问d段ae:调用y段fmain(段号0)X(段号1)Y(段号2)D(段号3)a:0…80k-10...40k-10…20k-10…60k-1逻辑地址=
段号段内地址(二维地址)mainxyd3.对应关系40k60k80k20k............进程空间内存空间100k:200k:300k:320k:4.所需表目(1)段表:每进程一个段首址段长度100k40k80k60k段号0:1:2:3:20k200k320k300k(2)空闲表:系统一个
arrayof(addr,size)5.所需寄存器(1)段表首址寄存器:bl(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)由b’d得物理地址。段号段长段首址...…...…......l’b’slbbl......PCB段长段首址段号…...l’b’...s...b’+d物理地址s
d逻辑地址…...cp+b:若快表查不到段号段长段首址...…...…......l’b’slbbl......PCB段长段首址段号…...l’b’...s...b’+d物理地址s
d逻辑地址…...
sl’b’
cp+b:+cp6.3.3.2段的共享段长段首址…...b’l’...
...段号
…si...P1段表:段长段首址…...b’l’...
...段号
…sj...P2段表:共享段......b’:l’内存空间
如何实现?共享段表段名共享记数段长段首址其它…………...vi335k125k??…………...共享段表:进程段表(n)共享段表(1)共享段(1)例子:UNIX正文段(text段)structtext{intx_daddr;/*diskaddressintx_caddr;/*coreaddress,ifloadedintx_size;/*size(64)int*x_iptr;/*inodepointercharx_count;/*referencecountcharx_ccount;/*numberofloadedreference;}text[NTEXT];defineNTEXT40
structproc{……int*p_textp;/*pointertotextstructure;}structuser{……intu_tsize;……}6.3.3.2段的保护
(1)段表的改进:段长段首址……......l’b’101段号
…s...访问权限RWE……......
段号段长段首址………......sl’b’101访问权限RWE(2)快表的改进:………......6.3.4段页式存储管理(segmentationwithpaging)段式优于页式便于共享和保护页式由于段式消除“碎片”问题段页式:结合二者优点每个进程包含若干段每个段包含若干页6.3.4.1基本原理
1.内存空间划分:(同页式)
静态等长,2i,称为一页。物理地址=(页架号,页内地址)=(f,d)2.进程空间划分:一个进程若干个段一个段若干个页逻辑地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低压电工实操难不难?视频课学技巧+题库刷题
- CAAC教员(多旋翼)模拟试卷(配套答案)
- 排油烟系统介绍
- 向楷模学习-吴天一、辛育龄先进事迹
- 张爱玲介绍课件
- UN38.3 检测报告真伪查验与有效性判定指南 2025 版
- IEC 62933-2-3-2025 中文版 电力储能系统 第2-3部分:运行性能测试方法(中国牵头制定)
- 口服给药法及注意事项
- 协同训练赋能:模糊限制语及其范围检测的深度探索
- 协同办公驱动金银花提取物抗菌机制探索:多维度研究与创新突破
- 喷砂工考试题及答案
- 《石材加工企业职业病危害风险分级管控体系实施指南》
- 2026重庆科瑞南海制药有限责任公司招聘15人笔试备考题库及答案详解
- 5.1《从小爱劳动》课件 统编版道德与法治三年级下册
- 企业信息咨询合同范本
- 农田退水水质水量资料整理
- 六年级《艾晚的水仙球》导读课
- 岩石学基性超基性岩类
- 品质主管岗位绩效考核表
- GB/T 4852-2002压敏胶粘带初粘性试验方法(滚球法)
- 预防高血压从认知高血压开始知识讲座课件
评论
0/150
提交评论