繁体   English   中英

内存池分配

[英]Memory Pool Allocation

我目前正在为操作系统课程实现自己的内存池,并且想知道是否有任何方法可以搜索系统上的可用内存。

我想先用C / C ++进行编程,然后将其转移到我们选择的BCPL课程语言中。

我的目的是探查可用的堆内存,以找出可以安全使用和处理的内存量。 这样做容易吗,还是仅声明一个静态大小(例如10,000个字节)会更有效?

谢谢

既然您提到您在Windows上,那么听起来您想要的功能是GlobalMemoryStatusEx 具体来说,从文档中:

您可以使用GlobalMemoryStatusEx函数来确定您的应用程序可以分配多少内存,而不会严重影响其他应用程序。

之后,您只需调用malloc / HeapAlloc / VirtualAlloc即可获得一大块连续内存。

如果通过“实现内存池”表示您想要实现一个分配器,则大多数malloc()都会调用VirtualAlloc()来根据需要将更多的内存映射到进程中,因此您可能想要使用它。 如果您想实现一个操作系统,那么下一步将是重新实现VirtualAlloc() ,这实际上将涉及实现虚拟内存管理系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM