- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[北京邮电大学数据结构与算法课件]DSC8.ppt
* §8.1 存储管理概述 第八章. 动态存储管理 (Chapter 8. Dynamic Storage Management) 前面几章我们介绍了数据的几种逻辑结构及其相应的物理结构(在内存中的映像),本章则简单介绍了在单一连续区方式下计算机内存储器的动态管理。 内存的初始状态 U1 U2 U3 U4 系统运行初期 U2 U4 系统运行若干时后 计算机内存在刚开始工作时,空闲部分是一个整块的连续区域;随着用户进入系统,多次申请和释放内存以后,空闲部分不再是连续的了,而成了多个空闲区,通常用链表的 形式管理起来,即可利用空间表。右图即为内存在不同时间下的示意图: §8.2 可利用空间表和分配回收方法 可利用空间表是将所有内存空闲块用链表连接而成。空闲块的大小可以是全相同的,也可以是分成若干固定大小的,还可以是随机大小的。如下面所示即是随机大小的: tag size link space tag=0:空闲 tag=1:使用 av 0 200 0 300 0 150 ... 对于随机大小的可利用空间块,在分配时可以采用三种分配策略,它们各有利弊: 1、首次适应法:操作方便,查找快捷; 2、最佳适应法:尽可能将大的空闲块留给大程序使用; 3、最坏适应法:尽可能减少分配后无用碎片; 分配和回收: 1、 分配时根据用户申请内存大小利用相应的分配策略分配给用户所需的空间,若分配块大小与申请大小差不多,则将此块全部分给用户;否则,就需将分配块分为两块,一部分给用户使用,另一部分继续留在可利用空间表中。 2、 回收时需测试 回收块前后相邻内存块是否空闲,若是则需将回收块与相邻空闲块合并成较大的空闲块,再链入可利用空间表中。 §8.3 边界标识法 边界标识法(boundary tag method)的数据结构示意如右: space tag size rlink llink tag uplink header footer llink 和 rlink 构成双向循环链表,uplink 则指向块头,tag 表示是否空闲。 typedef struct blk { struct { blk *llink , *rlink; int tag int size } header; datatype space[ 0 .. size-3 ]; struct { blk *uplink; int tag; } footer; } blk, *blkptr; 边界标识法的数据结构定义如下: §8.4 伙伴系统 伙伴系统(buddy system)采用的是一系列固定大小(2k)的空闲块。 系统开始时只有一个空闲块, 大小为 2m ,其后随着用户的内存申请,就将刚好满足用户需求的 2k大小的空闲块分配给用户,若不存在 2k 这么大的空闲块,就找大小为 2k+1的空闲块,将其分为两半(互称伙伴),一半给用户,另一半加入大小为 2k的循环链表中。回收时,只有伙伴才合并,并将合并后的新空闲块加入上一级大小的空闲块链表中。 B1 B2 B3 B4 注意:并非大小相同的相邻块都是伙伴,找伙伴时单方 向的!如左图中的 B1 和 B2、B3 和 B4 是伙伴,它们的大小都相同,但 B2 和 B3 则不是伙伴,它们再回收时时不能够合并的。 首地址为 Z,大小为2k 的内存块,其伙伴为: (a) 初始状态 (b) 若干时间后 20 21 2k 2m ∧ ∧ ∧ 0 m 20 2k-1 2k 2m ∧ ∧ k-1 0 k 0 k 0 Buddy(k,Z)= Z+2k 当 Z mod 2k+1 = 0 Z - 2k 当 Z mod 2k+1 = 2k { typedef struct freenode { struct { freenode *llink, *rlink; int tag; int kval; } header; datatype space[0 .
您可能关注的文档
- [四川大学电机学课件]chapter11 异步电动机运行原理.ppt
- [四川大学电机学课件]chapter12 异步电机的能量功率.ppt
- [四川大学电机学课件]chapter13 异步电机正常和非正常运行.ppt
- [四川大学电机学课件]chapter14 异步电动机的起动、调速.ppt
- 精 品课程(微型计算机控制技术)建设立项结题报告-福建jtbg.pdf
- [四川大学电机学课件]chapter17 同步发电机对称运行时的特性.ppt
- [北京邮电大学数据结构与算法课件]DSC11.ppt
- [北京邮电大学数据结构与算法课件]DSC12.ppt
- [北京邮电大学数据结构与算法课件]DSC1.ppt
- [北京邮电大学数据结构与算法课件]DSC2.ppt
- [北京邮电大学数据结构与算法课件]DSC9.ppt
- [北京邮电大学数据结构与算法课件]DSC10.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第5.1节 电阻电路.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第1.1节 MATLAB语言概述.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.1节 变量及其赋值.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.2节 矩阵的初等运算.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.3节 元素群运算.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.4节 逻辑判断及流程控制.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.5节 基本绘图方法.ppt
- [北京邮电大学《电路辅助设计与仿真-MATLAB》课件]第2.6节 M文件及程序调试.ppt
最近下载
- 红色革命文化-2025年高考语文作文复习之主题素材积累与运用.pdf VIP
- 中国传媒大学《微视频创意与制作》课件-微视频创意与制作-PPT-微视频创意与制作(第一章).pptx VIP
- 事故救援应急响应专项预案事故救援应急响应专项预案.doc VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 千级无尘室工程施工方案(3篇).docx VIP
- 深度解析《GBT 44037-2024焦炭溶损率及溶损后强度试验方法》.pptx
- 2025 中级注册安全工程师《金属非金属矿山安全》速记口诀.pdf
- 2025年中国吸顶式车载显示器数据监测研究报告.docx
- 九年级化学酸、碱、盐、氧化物知识小结 “三表一图”(二)天津版.doc VIP
- 部编版六年级上册语文第一周(草原-丁香结)达标测评卷 含答案.docx VIP
文档评论(0)