提问人:weineng 提问时间:1/26/2023 更新时间:1/26/2023 访问量:87
Linux 如何实现乐观内存分配?
How does Linux implement optimistic memory allocation?
问:
在 linux 手册页中,
默认情况下,Linux 遵循乐观内存分配 策略。这意味着当 malloc() 返回非 NULL 时 不能保证内存确实可用。
Linux 如何能够延迟分配内存?
我的猜测是调用了 sbrk,Linux 会记住进程 ID 并存储某种映射以确定它为哪个虚拟内存地址分配了物理地址。在哪里可以阅读以获取有关此内容的更多信息?
答:
-1赞
KamilCuk
1/26/2023
#1
从 https://man7.org/linux/man-pages/man3/malloc.3.html :
Normally, malloc() allocates memory from the heap, and adjusts
the size of the heap as required, using sbrk(2). When allocating
blocks of memory larger than MMAP_THRESHOLD bytes, the glibc
malloc() implementation allocates the memory as a private
anonymous mapping using mmap(2).
评论