Memory management 内存块计数
这是编译器设计课程的家庭作业问题。我只需要对问题的某些部分进行解释 据称,将块返回到标准内存管理器 这需要大量的管理。为什么? 光有一张单人票还不够吗 每个块的计数器,用于保存 该块的忙记录数, 并在它停止时返回块 达到0 它所指的上下文是关于链表的 答题纸上的答案说明: 你觉得这个计数器怎么启动的 从指针到记录以及如何 你能找到指向的指针吗 返回街区 来自C语言背景。谁能给我解释一下:Memory management 内存块计数,memory-management,linked-list,Memory Management,Linked List,这是编译器设计课程的家庭作业问题。我只需要对问题的某些部分进行解释 据称,将块返回到标准内存管理器 这需要大量的管理。为什么? 光有一张单人票还不够吗 每个块的计数器,用于保存 该块的忙记录数, 并在它停止时返回块 达到0 它所指的上下文是关于链表的 答题纸上的答案说明: 你觉得这个计数器怎么启动的 从指针到记录以及如何 你能找到指向的指针吗 返回街区 来自C语言背景。谁能给我解释一下: 街区是什么 柜台有吗 繁忙的唱片是什么 对文档的引用,这些文档提供了在此计数阶段发生的情况的演练。图表会很有
然后,计数器将计算每个基本块中忙的变量数。为什么经过一些处理后计数器会变为0还不清楚-很可能,“忙”在您的课程中还有另一个含义。我想如果我更改一些术语,以更好地解释我所猜测的情况,可能会有所帮助 如果你有一页内存,我们可以说一页的大小是8k。这是内存管理器分配的最小大小 您有10个请求,每个请求100字节,因此页面上的不同位置都有1000字节 计数器应该是10,但是,您如何知道实际释放了什么,或者已经分配了什么,因为这10个请求可能不是连续的,因为可能已经释放了其他请求 所以,我们有10条繁忙的记录 现在,你需要在答题纸上给出你自己的答案,但是,希望通过看一个例子,它可能会更简单
struct block {
struct block *next;
long counter; //@< the busy record
};
EDIT: changing "area" to "user"
struct user {
struct block *head;
...
};
struct块{
结构块*下一步;
长计数器;/@<忙记录
};
编辑:将“区域”更改为“用户”
结构用户{
结构块*头;
...
};
编辑:回答问题“为什么计数器不足以容纳块?”
将块从“空闲块列表”移动到“已分配块列表”或从“已分配块列表”移动到“已分配块列表”时需要更多信息,例如用于快速定位列表中某个位置的顺序。而我只是根据这一点进行猜测。问题中没有足够的上下文来回答这个问题。。。你的问题的答案将出现在课本中你没有引用的问题部分(或之前的章节)。对不起,我更新了,它在链表的上下文中。你应该问给作业的人这些术语的含义。像你一样,我们只能猜测。然而,仔细阅读摘录,我们可以推断:不是计算内存块,而是计算它们的使用情况,这样做是为了确定内存块何时未使用,从而可以回收。哈哈,这将是一件痛苦的事情。如果他看到这一点,我可能会遇到麻烦,但我的讲师会在答题纸上给我们的作业打分,如果我问任何问题,我将一事无成。我宁愿理解这是怎么回事,也不愿意把答题纸上的答案重新写下来交给他。我看不到“忙碌的记录”。搜索“忙碌”,找到了问题。即使它指的是链表,我仍然不知道如何将“繁忙记录”与那种类型的数据结构相关联。