这是编译器设计课程的一个家庭作业问题。我只需要解释问题的某些部分。
据称,将块返回到标准内存管理器将需要大量的管理。为什么每个块都有一个计数器(它保存了该块的繁忙记录数),并且当它达到0时返回该块还不够呢?
它所指的上下文中提到了链接列表。
答题纸上的答案是:
如何找到从指向记录的指针开始的计数器,以及如何获得返回块的指针?
来自基于C的背景。有人能向我解释一下:
引用文档,提供在此计数阶段发生的情况的遍历。图表会有帮助的。
谢谢。
发布于 2009-10-18 07:56:53
例如:
struct block {
struct block *next;
long counter; //@< the busy record
};
EDIT: changing "area" to "user"
struct user {
struct block *head;
...
};
编辑:回答以下问题:“为什么一个柜台对一个街区来说不够?”当将块从“空闲块列表”移动到“分配块列表”时需要更多信息,反之亦然,例如用于快速定位列表中某个位置的顺序。而我只是猜到这一点。
https://stackoverflow.com/questions/1583466
复制相似问题