Linux malloc 分配的物理内存在哪个区?

zhangyuxiu · 2014年01月28日 · 最后由 lostleaf 回复于 2014年01月29日 · 8338 次阅读

如题,malloc 分配的物理内存在哪个区?dma_zone normal_zone 还是 highmem_zone?

malloc 只是针对虚拟内存的一种分配,实际物理地址到底哪里是 os 管的。

#1 楼 @rasefon 那么操作系统根据需求有可能在任意一个区中对其进行分配了么? 另外,你知道 malloc 分配到的物理内存是否是连续的么?

#3 楼 @zhangyuxiu 这个和操作系统实现有关吧,具体我也不是很清楚,但是大体算法 OS 书上都有介绍,不同的 OS 实现也可能不一样。

#2 楼 @sevk 抱歉,没有看懂。 那个 pdf 里面,也没有讲有关 malloc 的分配啊。只有 kmalloc 和 vmalloc 的。

#5 楼 @zhangyuxiu 我也不懂,只是网上找来的资料。可能有帮助。

应用程序会“认为”自己分配到了一段连续的内存 但不一定对应于真实内存中一段连续的空间 真实的内存由操作系统管理 具体细节可以参考相关书籍。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号