Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Operating system 简单堆实现-自定义内存管理器_Operating System_Heap - Fatal编程技术网

Operating system 简单堆实现-自定义内存管理器

Operating system 简单堆实现-自定义内存管理器,operating-system,heap,Operating System,Heap,我目前正在学习操作系统课程,明天将进行第一次考试。教授为我们提供了一份要准备的主题列表,其中之一是: 简单堆实现 根据到目前为止的课程材料,我对这意味着什么有了一个想法,但我想知道是否有人可以详细说明这一点,或者指导我使用一些进一步的资源来继续研究这个主题 我应该注意哪些事项,如何着手实施这些事项 谢谢您可以使用数据结构构建自己的内存管理器。堆用于动态内存分配。例如:C中的malloc从堆中分配内存 在动态存储分配模型中,内存由一系列大小可变的块组成。有些是分配的,有些是免费的。因此,您将基本上

我目前正在学习操作系统课程,明天将进行第一次考试。教授为我们提供了一份要准备的主题列表,其中之一是:

简单堆实现

根据到目前为止的课程材料,我对这意味着什么有了一个想法,但我想知道是否有人可以详细说明这一点,或者指导我使用一些进一步的资源来继续研究这个主题

我应该注意哪些事项,如何着手实施这些事项


谢谢

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

在动态存储分配模型中,内存由一系列大小可变的块组成。有些是
分配的
,有些是
免费的
。因此,您将基本上创建链表
(具体为双链表)
,用于
空闲的
内存块和
分配的
内存块


请查看和链接以了解详细信息。我建议您在做任何其他事情之前,最好对数据结构
链表
有一个很好的了解。

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

在动态存储分配模型中,内存由一系列大小可变的块组成。有些是
分配的
,有些是
免费的
。因此,您将基本上创建链表
(具体为双链表)
,用于
空闲的
内存块和
分配的
内存块


请查看和链接以了解详细信息。我建议您在做任何其他事情之前,最好对数据结构
链表
有一个很好的理解。

要求您用什么语言实现heap?我们目前正在使用BCPL,但我不确定他是否希望我们对其进行编程,或者只是描述组成它的部分。要求您用什么语言实现堆?我们目前正在使用BCPL,但我不确定他是否希望我们对其进行编程,或者只是描述组成它的部分。这很好。你指的是哪本书?@User5842嗯,我在大学时读的那本书是霍洛维茨和萨尼的《数据结构》。但这些链接与这本书无关。我刚刚在网上搜索了一下,并为您提供了链接。@User5842但内容大致相同。这太棒了。你指的是哪本书?@User5842嗯,我在大学时读的那本书是霍洛维茨和萨尼的《数据结构》。但这些链接与这本书无关。我刚在网上搜索过,并为您提供了链接。@User5842但内容大致相同。