Malloc 和分页

Malloc 和分页

当用户进程调用malloc(n)时,是否有物理页分配给该进程?我相信不会,因为 malloc 从堆中分配。它是否正确?

答案1

对于Linux,我相信您的问题的简短答案是“通常不分配物理页”。这就是所谓的 ”内存过量使用“你可以找到文档在上面。 Unix 变体对于 malloc 时的实际物理页分配有不同的策略。基于4BSD的系统传统上不会过度使用,这与chill程序(找不到参考)结合起来是无穷无尽的乐趣。chill分配并保留尽可能多的内存。因为 SunOS(基于 4.2BSD)总是为任何分配物理页面malloc(),所以一个用户就可以分配所有 RAM 并导致其他人无休止地分页。

对于 Linux,您可以找出系统的策略是什么:cat /proc/sys/vm/overcommit_memory应该给出“0”、“1”或“2”,分别表示“启发式过量使用”、“始终过量使用”和“从不过量使用”。

相关内容