当前位置: 首页 > 知识库问答 >
问题:

伙伴内存分配

宦琪
2023-03-14

我有一个大小为n的数组,它代表我的主内存。我不能使用运算符new,我只能访问内存,所以每个数据结构只能使用那个数组来存储数据。我正在尝试构建内存分配器,它将能够快速找到内存(数组)的空闲部分并释放它们。我想在这个数组上构建树状结构--伙伴内存分配--但我很难理解几个概念。

buddy系统是如何使用二叉树查找空闲内存块的?

我如何创建那棵树的新节点(我应该只是在程序开始时为我的树保留足够的空间还是动态地“分配”它--但如何简单地做到这一点)?

我有点对这些问题有了答案,但我很难完全理解它。我将感谢每一个明确的答复和帮助。谢谢你。

共有1个答案

蒋曾笑
2023-03-14
  1. 看看二进制堆。此结构表示数组中的树。
  2. 从AleksandRescu的书中看一看他的小对象分配器。在第二章(AFAIR)中,他描述了一种在外部字节数组中嵌入~8-~128字节长的结构而没有开销的实用方法。
 类似资料:
  • 主要内容:可利用空间表中结点构成,分配算法,回收算法,总结前面介绍了系统在分配与回收存储空间时采取的边界标识法。本节再介绍一种管理存储空间的方法—— 伙伴系统。 伙伴系统本身是一种动态管理内存的方法,和边界标识法的区别是: 使用伙伴系统管理的存储空间,无论是空闲块还是占用块,大小都是 2 的 n 次幂(n 为正整数)。 例如,系统中整个存储空间为 2 m 个字。那么在进行若干次分配与回收后,可利用空间表中只可能包含空间大小为:2 0、2 1、2 2、…、

  • 京东金融 App介绍 [京东金融](jr.jd.com)京东金融是京东数字科技集团旗下专注于金融科技服务的重要业务板块。 京东金融始终基于强大的数字科技能力,致力于为让消费者享受专业、安全的数字金融服务,旗下包含个人和企业两大服务体系。 在个人金融领域,“京东金融App”作为载体,通过独有的大数据技术及人工智能风控能力,携手400多家银行、120余家保险公司、110余家基金公司,已为过亿的消费者精

  • 正在尝试查找YouTube内容合作伙伴API的文档。我是一名内容合作伙伴,我正在与一名开发人员合作创建一个系统,我们能够在analytics Api上进行内容所有者报告调用,因此我知道我的身份验证工作正常,我可以在Api控制台中查看和打开内容合作伙伴Api。我真的需要做以下事情, “YouTube 内容合作伙伴 API 允许管理 YouTube 资产及其相关内容、参考信息、所有权、权利和政策。 但

  • 「Container+」联盟是由 DaoCloud 于今年6月份发起的开放性组织。联盟以打造立体生态、共赢容器市场为目标,旨在推动容器技术在企业落地。 联合产业链上下游的合作伙伴 共同推动企业级容器云平台发展 帮助企业实现互联网的架构和业务双转型 如您有意成为 DaoCloud 「Container+」联盟成员,请与我们联系。

  • 4.3.1.3 创建/使用伙伴内容供应器 合作伙伴内容供应器只能由特定应用使用。 该系统由伙伴公司的应用和内部应用组成,用于保护在伙伴应用和内部应用之间处理的信息和功能。 下面显示了用于实现伙伴内容供应器的示例代码。 要点(创建内容供应器): 将导出属性显式设置为true。 验证请求应用的证书是否已在自己的白名单中注册。 即使数据来自伙伴应用,也要小心并安全地处理收到的请求数据。 可以返回开放给伙

  • 我正在使用 YouTube 合作伙伴 API 代表合作伙伴上传视频,以便跟踪和报告获利情况。过程如下:用户将视频上传到网站。将视频推送到合作伙伴拥有的频道,创建资产,为上传到合作伙伴频道的视频创建版权主张。视频被推送到用户的公共YouTube频道 所有这些都是有效的,但我无法弄清楚如何设置“启用内容ID匹配”选项,该选项位于YouTube CMS视频部分。需要启用此功能,以便匹配上传到用户公共频道