JiaweiHawk/jiaweihawk.github.io

Some questions about L1_pmm, THX

Closed this issue · 3 comments

JiaweiHawk 先生您好,最近在看您的blog,关于lab1中的chunk的定义有一些疑惑,在您前面的图片上了解到chunk是在堆区前为待分配的内存做的bitmap,是用一个unsigned long上的位标志一些信息,但是后面的实现上多次使用了chunk->un.lock来表示buddys[i]上的锁,这里面的chunk又变成了struct,可能我理解有误,不知可否参考下您的源码,谢谢

您好,非常高兴我的博客能帮助到你

你理解的是对的。在3.5.5节中,chunks就是bitmap变量,用来表示内存的使用情况;
而诸如3.5.6.3节中的chunk,是结构体,其用于管理空闲的内存。具体来说,如果内存空闲的话,他上面的字节就可以用来表示一些信息,这样子可以节省内存空间。

因为c语言中允许变量名和结构体名称一样,我为了方便所以这样,希望能帮助到你。

关于源代码的问题,当时因为学术诚信守则,所以我没有公开代码,如果还有问题的话,可以邮件联络我。

感谢您的解答,现在可以理解chunk部分了,不知道您是否方便留下私人邮箱,之后可能还要麻烦您问点问题。谢谢!!!

好的。
我的邮箱是18801353760@163.com