2017-03-06 58 views
0

我目前正在参加一个操作系统课程,明天将会开始我的第一个考试。教授为我们提供的主题列表,以供准备,其中之一是:简单堆实现 - 自定义内存管理器

简单的堆实现

基于课程材料,到目前为止,我有什么这一点的想法需要但是想知道是否有人可以详细说明这一点,或者指导我继续研究这个话题。

我应该注意哪些事情,以及如何实施它们?

感谢

+0

用什么语言你被要求实现堆? – Learnquick

+0

我们目前正在使用BCPL,但我不确定他是否希望我们对其进行编程或仅描述构成它的部分。 –

回答

2

您可以使用数据结构linked list建立自己的内存管理器。堆用于动态内存分配。例如:C中的malloc从堆分配内存。

在动态存储分配模型中,内存由一系列可变大小的块组成。有些是allocated,有些是free。因此,您将基本上创建链接列表(to be specific doubly linked lists),对于free内存块和allocated内存块。

看看thisthis链接的细节。我建议你在做其他事情之前最好对数据结构linked list有一个很好的理解。

+0

这太好了。你在这里提到哪本书? –

+0

@ User5842那么,我在大学时代接下来的书是由horowitz和sahni撰写的数据结构。但链接与本书无关。我刚刚在网上搜索并提供了链接。 –

+0

@ User5842但内容或多或少相同。 –