请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有几个问题。

1 下面分配的过程听得懂,就是不明白节点是指什么?每个固定的内存大小比如2K 4K里面的节点也都是固定的2K 4K吗?就是比如4K有6个节点就是内存中有6块4k大小的块吗?
2 刚才分配的内存伙伴在空闲链表上吗是什么意思?刚刚我们分配了100K内存,所以他的内存伙伴是谁?另一个块128K大小的内存吗?明明=在判断分配的过程中没有128K的啊,128K是从1M一步一步切割下来的啊,所以伙伴是谁呢?这里听不懂

正在回答 回答被采纳积分+3

1回答

咚咚呛 2021-11-01 20:26:31
  1.  节点指的是使用链表管理内存时,所对应的链表节点,这个可以和前面第五章的双向链表建立起联系。

  2. 伙伴指的是大小相同并且物理空间相邻的内存片段,这个称为伙伴,这个可以通过课程内容了解的哈,有相对清晰的解析,并且通过内存分配以及回收的过程也能理解这一点哦

希望对你有所帮助,加油!!

0 回复 有任何疑惑可以回复我~
  • 提问者 SomnusL #1
    1 每个固定的内存大小比如2K 4K里面的节点也都是固定的2K 4K吗?就是比如4K有6个节点就是内存中有6块4k大小的块吗?
    2 刚才分配的内存伙伴在空闲链表上吗是什么意思?刚刚我们分配了100K内存,所以他的内存伙伴是谁?另一个块128K大小的内存吗?明明=在判断分配的过程中没有128K的啊,128K是从1M一步一步切割下来的啊,所以伙伴是谁呢?
    老师说的是定义全都是PPT里的。显然没回答我的问题
    回复 有任何疑惑可以回复我~ 2021-11-01 21:19:35
  • 咚咚呛 回复 提问者 SomnusL #2
    1. 是的,2k、4k、8k、16k,因为只有这样才能满足2的幂次,也才能让buddy算法运行。
    2. 是另一块128k大小的内存,并且要求物理位置是相邻的,1M可以一步一步切成128k,首先1M可以切成相邻的两个512k,所以这两个512k是互为buddy,然后一个512k可以切成两个256k,他们互为buddy,以此类推。
    回复 有任何疑惑可以回复我~ 2021-11-02 11:13:44
  • 所以,意思就是,实际上这个包含了分配的100k的128k内存块的伙伴,就是同为从这1M里面一步一步切割出来的另一个128k内存块,我这么理解是对的吧? 感觉你在这里描述地实在是过于模糊,如果我们不把我刚才说的这个掰清楚,是根本不能理解这个内容的。建议你在视频里这个地方,加一个详细点的说明。
    回复 有任何疑惑可以回复我~ 2023-03-20 18:07:16

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信