[工学]06第六章-存储管理.ppt

[工学]06第六章-存储管理.ppt

ID:52376134

大小:606.01 KB

页数:62页

时间:2020-04-05

[工学]06第六章-存储管理.ppt_第1页
[工学]06第六章-存储管理.ppt_第2页
[工学]06第六章-存储管理.ppt_第3页
[工学]06第六章-存储管理.ppt_第4页
[工学]06第六章-存储管理.ppt_第5页
资源描述:

《[工学]06第六章-存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章存储管理6.1存储管理功能6.2内存资源管理6.3存储管理方式6.4外存空间管理6.5虚拟存储系统6.1存储管理功能内存/外存的管理;内/外存管理采用相同或相似的管理技术;功能存储分配存储共享存储保护存储扩充地址映射6.1存储管理功能(Cont.)存储分配/去配记录内/外存资源的使用情况:分配表、空闲表;分配/去配对象内存、外存(相同方法);分配/去配时刻进程创建、撤销、交换、长度变化(栈溢出,execl)存储共享多个进程共用内存的相同区域;(物理空间有相交的部分)目的:节省内存、相互通讯;内容:代

2、码、数据。存储保护防止地址越界;防止操作越权。存储扩充内存、外存结合,虚拟存储体系;速度接近内存,容量相当外存。地址映射逻辑地址=>物理地址硬件支持基址寄存器(base)、限长寄存器(limit)、快表;使用上述寄存器完成地址映射过程;不能正常完成地址映射时产生中断。6.1存储管理功能(Cont.)6.2内存资源管理6.2.1内存分区分区时刻静态分区:系统初始化时分;动态分区:申请时分。分区大小等长分区:2i异长分区:依程序,程序单位,对象大小。通常作法静态+等长(页式、段页式);动态+异长(段式、界地址

3、)。6.2.2内存分配静态等长分区的分配分配策略:分配几个等长区域;分区表示:字位映象图;空闲页面表;空闲页面链。动态异长分区的分配最先适应(FirstFit);最佳适应(BestFit);最坏适应(WorstFit)。6.2.2.1静态等长分区的分配字位映象图(bitmap)用一个bit代表一页状态,0:空闲,1:占用。100………1……..10第0页第1页第2页………第k页第n-1页第n页分配:按页号从小到大查字位图,找到为0的位改为1,返回页号。去配:把页号对应的bit置为0。空闲页面表:首页面号页

4、面个数…………1204………………占用120页121页122页123页占用……内存分配/去配:需修改空闲页面表。特点:可以分配连续页面。DMA要求6.2.2.1静态等长分区的分配(Cont.)空闲页面表结构6.2.2.1静态等长分区的分配(Cont.)空闲页面链:占用占用占用head空闲页面链结构分配/去配:调整链表。特点:节省空间。(不适合外存管理)6.2.2.2动态异长分区的分配常用于界地址存储管理和段式存储管理。空闲区首址空闲区长度......……addresssize………………0空闲区表初始时一

5、个连续空闲区;空闲区首址由小到大;长度=0为表尾。分配:按分配策略调整表项;去配:把去配的空间插入表中,可能需要合并空闲区。6.2.2.2动态异长分区的分配(Cont.)最先适应算法(FirstFit):空闲区首址空闲区长度128642563210242560…………空闲区表空闲区:首址递增排列;申请:取第一个可满足区域;优点:尽量使用低地址空间,高区保持大空闲区域。缺点:可能分割大空闲区。如申请32将分割第一个区域。6.2.2.2动态异长分区的分配(Cont.)最佳适应算法(BestFit):空闲区首址

6、空闲区长度256321286410242560…………空闲区表空闲区:空闲区长度递增排列;申请:取最小可满足区域;优点:尽量使用小空闲区,保持大空闲区域。缺点:容易形成碎片fragment。如申请30将留下长度为2的空闲区。6.2.2.2动态异长分区的分配(Cont.)最坏适应算法(WorstFit):空闲区首址空闲区长度102425612864256320…………空闲区表空闲区:空闲区长度递减排列。申请:取最大可满足区域。优点:防止形成碎片。缺点:分割大空闲区。例:UNIX存储分配-FirstFit(见

7、12章p286-12.4.2)最先适应算法,空闲区首址递增排列defineCMAPSIZ100defineSMAPSIZ100structmap//存储资源表结构{char*m_size;char*m_addr;};structmapcoremap[CMAPSIZ];//内存资源表structmapswapmap[SMAPSIZ];//外存资源表intmalloc(mp,size)//存储分配函数structmap*mp;{registerinta;registerstructmap*bp;for(bp=

8、mp;bp->m_size;bp++)if(bp->m_size>=size){a=bp->m_addr;bp->m_addr+=size;if((bp->m_size-=size)==0)//当前块=sizedo{bp++;//do循环压缩size=0的存储表项(bp-1)->m_addr=bp->m_addr;}while((bp-1)->m_size=bp->m_size);return(a);//分配成功,返回分配存储

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。