操作系统中的虚拟内存分配,就是当物理内存不足时,系统将暂时不用的页面换进磁盘,
1. 我想知道,在linux下,这里的磁盘是否指的就是swap分区?
2. 在virtualbox中,测试程序如下:
#include <stdio.h>
#include <stdlib.h>
int main(){
char *ptr;
int i;
i = 0;
while (1) {
++i;
ptr = (char *)malloc(1024*1024);
if (ptr == NULL)
exit(1);
printf("Now allocate %d MB\n", i);
sprintf(ptr, "Hello");
}
return 0;
}
内存如下:
磁盘使用ext4格式,只有14.7G
而运行程序到:malloc 33461MB才崩溃,这是为什么?