在 C/C++ 中实现实时最佳拟合内存分配算法

Posted

技术标签:

【中文标题】在 C/C++ 中实现实时最佳拟合内存分配算法【英文标题】:Implement a real time best-fit memory allocation algorithm in c/c++ 【发布时间】:2012-11-08 14:43:16 【问题描述】:

我们有一种称为“最佳匹配”的算法,操作系统使用该算法将内存分配给需要它的进程。所以我想做的是,编写一个 C 代码,它可以实时找到系统内存中的漏洞并为其匹配进程,就像任何操作系统所做的那样。我正在尝试在 Linux 系统上实现它。我知道 /dev/mem 充当物理内存的接口,所以我将尝试使用 /dev/mem 的 hexdump 以某种方式获取系统中的漏洞记忆。但我不知道这是否是最好的方法。那么,有人可以帮我指出如何实施这样的事情的正确方向吗?

【问题讨论】:

到目前为止你做了哪些研究?或者换一种说法mattgemmell.com/2008/12/08/what-have-you-tried 我知道 /dev/mem 是读取/写入物理内存的接口。正在考虑处理 /dev/mem 的 hexdump 以给我系统中的漏洞。但我不知道这是否是解决此问题的最佳方法。 好的,基本上你需要考虑你想问什么以及如何问,目前这个问题很可能会被忽略或否决 - 解释更多但缩小问题的范围。 谢谢!我现在修改了问题,将我所做的研究添加到问题中,以帮助用户更好地了解我想要做什么。 我认为您需要更好地了解物理内存与虚拟寻址。 【参考方案1】:

我想,您可以使用优先搜索树来实现简单的最佳拟合或首次拟合算法。你可以在这里阅读优先搜索树:http://www.cise.ufl.edu/~sahni/cop5536/presentations.htm(第 35 讲的演讲)

算法实现在下一讲(36的演讲)中解释。

【讨论】:

以上是关于在 C/C++ 中实现实时最佳拟合内存分配算法的主要内容,如果未能解决你的问题,请参考以下文章

操作系统内存分配问题-最佳适应算法(C++源码)

在具有动态大小的内存池的多线程 C/C++ 中实现内存管理器?

C/C++程序内存的分配

数据类型

408考研操作系统)第三章内存管理-第一节5:动态分区分配算法(首次适应和邻近适应)

(王道408考研操作系统)第三章内存管理-第一节5:动态分区分配算法(首次适应和邻近适应)