内存分配粒度vs内存分页大小vs内存空间

原帖地址

分配粒度:表示每次请求内存的时候最小给分配多少,比如32位操作系统基本上每次分配的是64K大小。
分页大小:表示的是页面的大小,32位操作系统是4K是内存管理的最小单位。
例如:
假设你要请求6k = 4K + 2K的空间,操作系统会一次分配64K的空间放着,又因为内存最小操作单位是4K,所以实际上给你分配了8K=4K +  4K,剩下的56K放着有需要了再给你。
WIN32 操作系统为每个进程分配4G的内存空间,程序的代码,常量变量都分配在这4G内存空间上。
这里提到的内存空间跟内存条的内存是一个概念吗?

如果辅盘也不足2G呢?

这里说的内存是逻辑上的,也就是虚拟的。并不是物理上的内存空间。实际实现逻辑内存的时候如果物理内存不足就用辅存(硬盘)。
有的人自然要问:既然可以用辅存虚拟,那么每个进程不是想要多大虚拟内存就有多大么?
实际不是这样,32位机决定了内存寻址空间最大只能是2的32次方,即4G

如果程序实际需要的内存大于虚拟内存(尽管没有达到4G),windows就会在右下脚出现一个黄色三角形里面有个感叹号.提示虚拟内存不足,要你设置虚拟内存为更大的值.如果不设置,或如你所说硬盘都不足4G就会自动终止进程终止不了就死机了.我在vista下面用ramDisk的时候就碰到过.

 

你可能感兴趣的:(内存分配)