- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Buddy动态存储管理算法的应用研究.doc
基于Buddy动态存储管理算法的应用研究
摘 要 本文分析了动态存储管理的特性, 提出了一种利用哈希表的快速查找特性来优化基于伙伴系统动态存储管理器算法的思想,高效地实现了存储管理器的分配和回收算法,具有简单、速度快、克服了大量存储空间的浪费等优点。
关键词 动态存储管理 伙伴系统 哈希表 算法
1 引言
动态存储管理在实现中体现为一个动态存储分配器(dynamic allocator) 。动态存储分配器的设计目标是尽量减少空间的浪费,减少申请释放存储空间时的时间消耗[1]。理想的动态存储分配器是在不浪费空间,极少的时耗下,能满足任何次序的存储空间申请和释放。由于减少时间消耗与增加空间利用率往往相互矛盾, 现实中理想的分配器是很难甚至是不可能实现的,只能根据特定的环境做出适当的决策[2]。
本文在对当前应用中主要采用的动态存储管理技术进行分析的基础上,提出了一种基于buddy动态存储分配和回收思想,利用哈希查找快速定位最佳可利用空闲块在内存中位置的动态存储管理算法。采用这一算法思想设计的动态存储分配器具有简单、速度快的优点,克服了大量存储空间浪费的问题。
2 动态存储分配技术
对动态存储管理经过多年的研究,已有大量的动态存储管理解决方案和算法提出并应用到不同的系统中[3]。如:顺序搜索、buddy 算法、分类搜索、索引搜索、位图搜索等。其中顺序搜索和分类搜索算法在操作系统动态内存分配中被普遍采用[4]。
采用顺序搜索的动态存储分配器,一般采用“可利用空间队列”avail链接运行中形成的长度不相等的空闲存储块,采用首次适配(first fit) 、下次适配(next fit) 、最佳适配(best fit) 和最差适配(worst fit) 算法顺序搜索适配块。搜索适配块的时间开销依赖于avail 队列长度。优点是简单,存储空间利用率高。缺点是随着系统规模的增大,会形成许多小碎块,使 avail 队列变长,搜索时间将可能增加到不可接受的程度。
采用分类搜索的动态存储分配器,一般按固定大小将存储空间划分为多个相互独立的存储区,每一个存储区包含一条 avail 队列,存储对象在唯一的 avail 中分配空间。优点是申请分配空间时,不需要进行搜索来查找符合要求的空闲块。释放时也没有相邻空闲块合并的要求,提高了系统执行速度,具有良好的可伸缩性。缺点是在每一个存储区都将有一定的存储空间空闲,且相互之间不能共享,造成较为可观的存储空间浪费。这是典型的以空间换时间的作法。并且存储区划分越细,浪费越严重[5]。
另一种动态存储分配办法是将空闲块组织为伙伴系统(buddy system )。伙伴系统规定,无论占用块或空闲块其大小均为2 的k次幂(k为整数)。假设系统的可利用空间容量为2m 个字,则系统开始运行时,整个内存区是一个大小为2m 的空闲块,系统运行中可能会形成若干个空闲块,将相同大小的空闲块都链在的空闲块都链在同一个双重链表中,不同大小空闲块形成k(0lt;=klt;=m)个空闲块链表。当要分配一长度为n 的存储块时,求i 使2i-1 lt; n ≤2i。若长度为2i 的空闲块已耗尽,则把长为2i+1的空闲块分为等长的两半(一对伙伴),一个用于分配,一个链入长为2i 的链表中。若长为2i+1的空闲块也不存在,则需要对长为2i+2的空闲块进行两次分割,依此类推。由此可见,在最坏情况下, 可能要进行k 次分割才能得到适配块。与一次分配可能要进行多次分割一样,一次回收也可能要进行多次合并。其分配和回收的时间性能取决于查找空闲块的位置和分割、合并空闲块所花费的时间。空间性能远优于分类搜索算法,比顺序搜索算法略差。
3 基于哈希查找的基本思想与结构定义
3.1 基于哈希查找的基本思想
基于哈希查找的基本思想是:利用哈希快速查找优点和空闲块在可利用空间表中的分布规律,构造哈希函数。当请求分配存储空间时,通过查找以空闲块大小为关键字的哈希表选择合适的空闲块链,实现最佳分配策略。
对系统运行可能形成的k个空闲块链表,将头指针组织成一个向量结构,根据链表中空闲块大小确定链表头指针在向量中的位置。
由于申请的空闲块长度 n 要求满足关系2i-1 lt; n ≤2i。因此可定义哈希函数如下:
哈希函数计算结果确定了所申请大小的空闲块对应链表应在向量表中的位置。
3.2 存储结构定义
空闲块结点结构定义,如图1所示。
图1 空闲块结点结构
结点数据类型定义描述如下:
#define n size /*定义size为可利用空间容量,大小为2的次幂*/
typedef struct WORD_NODE
{ int tag; /*块标志,0:空闲,1:占用*/
int kval; /*块大小,值为2的K次幂*/
您可能关注的文档
最近下载
- 卫生间改造合同协议书范本模板 .pdf VIP
- 公司档案管理制度流程及公司档案管理办法及实施细则.doc VIP
- 心脏早搏病人护理措施.pptx
- 新解读《GB_T 34585 - 2017纯电动货车 技术条件》最新解读.docx VIP
- 《用户体验设计》课件.ppt VIP
- 2021气瓶安全技术规程.pdf VIP
- 生物材料检验非金属.PPT VIP
- 当代隐喻学认知理论发展及其对翻译研究的启示.docx VIP
- 2024新版2025秋人教版三年级艺术造型美术上册全册教案教学设计(含大单元教学设计).docx
- 第三单元第1课+把握色彩规律+课件+2024—2025学年冀美版(2024)初中美术七年级上册.pptx VIP
文档评论(0)