对于32位操作系统来说,它的地址位数为32位,所以对应的物理内存最大为4G,
这里要区分32位操作系统和32位地址线:
但是对于虚拟内存来说,却可以为4G的1.5倍到2倍,同时,一个大于4G的程序也可以运行,
虚拟地址大小的限制条件有两个:
它是虚拟内存,可以把一部分逻辑地址先导入内存,但是对于大于4G的程序来说,它的逻辑地址应该是大于32位的啊,那通过页表和只有32位的物理地址怎么进行映射啊。。。。
通过上面分析可知:CPU和操作系统任意一个是32位就会把虚拟地址空间限制在4G上,故而不能允许4G以上的程序;
还有一点需要说明,应用程序的虚拟地址是编译器来确定的,它会自动优化空间问题,对于32位的时代来说,通常情况下不会超过4G的可寻址虚拟地址空间的
内存管理方面的可以参考这里,有问题可以直接提问,我尽量解答;