如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少?

问题描述:

我知道物理地址的长度是32位,但是如何通过这些信息找出虚拟内存的大小?如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少?

+2

虚拟内存存储在磁盘上,可以是任何大小。 – 2012-08-04 14:22:21

+1

虚拟内存空间总量取决于体系结构(和操作系统)。这与物理内存大小无关。如果你的意思是交换空间,那也与物理内存大小无关。 – Mat 2012-08-04 14:23:34

x86上的虚拟内存地址空间总大小为2^32,x64上的虚拟内存地址空间总大小(目前大约为2^48)。但是,操作系统通常会保留一部分空间,所以32位应用程序不一定能够处理4GB的空间。此外,操作系统可以轻松地交换不同的内存内存,所以如果需要的话,可以通过银行交换的形式在操作系统的帮助下支持超过4GB的内存,通过告诉它当你想访问内存时修改你的页表目前尚未映射到您的地址空间。

此外,支持的最大物理内存量不一定是2^32。甚至32位机器通常通过PSE36或PAE支持2^36。

+0

虚拟内存大于物理内存,所以虚拟内存的大小不应该大于2^32? – Vanya 2012-08-04 14:30:22

+1

不,虚拟内存不一定比分数内存大。 – Antimony 2012-08-04 14:31:02

+0

物理内存的大小是2^32-1,我们必须通过这个信息来找到虚拟内存的大小。 – Vanya 2012-08-04 14:41:03

虚拟内存的大小不能通过给出物理内存的大小来确定。