【发布时间】:2015-08-02 15:33:06
【问题描述】:
在 Linux 中,当请求内存时(使用calloc / malloc),如果请求大小的连续块不可用,内核会将多个单独的内存块映射到一个虚拟块中并将其交给应用程序或它是在磁盘上分配的吗?
如果它是在磁盘上分配的,当一个足够大的块变得空闲时,它是自动移动到 RAM 还是在磁盘上终生存在?
【问题讨论】:
-
当程序使用
malloc()调用大量分配时,不会分配物理内存。只有地址空间被保留,直到内存被实际使用。 -
“连续块不可用”是什么意思?没有这样的概念。内存由内核管理。
-
为了您的理解,另请参阅sbrk:这是涉及内核的地方,更改程序映像大小。
malloc和free是用户空间库,用于管理程序映像的最后一部分。 -
C 标签是干什么用的?
标签: c linux memory-management heap-memory