【发布时间】:2023-03-05 11:47:01
【问题描述】:
我知道物理地址将是 32 位长,但是我如何通过这些信息找出虚拟内存的大小?
【问题讨论】:
-
虚拟内存存储在磁盘上,可以是任意大小。
-
总虚拟内存空间取决于架构(和操作系统)。它与物理内存大小无关。如果您的意思是交换空间,那也与物理内存大小无关。
标签: operating-system virtual-memory
我知道物理地址将是 32 位长,但是我如何通过这些信息找出虚拟内存的大小?
【问题讨论】:
标签: operating-system virtual-memory
虚拟内存地址空间的总大小在x86 架构上为 2^32,而在x64 架构上则更大(目前约为 2^48)。但是,操作系统通常会保留一部分空间,因此 32 位应用程序不一定能同时处理 4GB。此外,操作系统可以轻松地交换不同的内存块,因此如果需要,可以通过一种银行切换形式在操作系统的帮助下支持超过 4GB 的内存,方法是告诉它在您想要访问内存时修改您的页表当前未映射到您的地址空间。
另外,支持的最大物理内存量不一定是 2^32。即使是 32 位机器,通常也通过 PSE36 或 PAE 支持高达 2^36。
【讨论】:
仅仅给出物理内存的大小是无法确定虚拟内存大小的。
【讨论】: