虚拟地址空间与计算机实际地址空间的区别是什么?

时间:2013-10-22 16:11:08

标签: memory malloc ram virtual-address-space

我认为虚拟地址空间是分配给特定进程的RAM的一部分。但我正在阅读的这本书说,4 gbs是虚拟地址空间的标准限制。那不是RAM的全部数量吗?如果是这种情况,那么我对虚拟地址空间感到困惑。谁能开导我?

1 个答案:

答案 0 :(得分:1)

这就是虚拟地址的重点:操作系统处理物理内存,进程处理自己的虚拟内存,映射到操作系统可用的任何内存,不一定是RAM。

在32位操作系统上,正如您所说,虚拟地址空间(VAS)通常为4 GiB。 32位给你(2 ^ 32)个地址(0 ...(2 ^ 32)-1),每个地址寻址一个字节。

您可以拥有更多或更少的物理RAM,并且仍然可以为每个正在运行的进程提供4-GiB-VAS。如果物理RAM较少,操作系统通常会交换到硬盘驱动器。

该过程不需要知道任何此类过程,它可以使用操作系统提供的完整VAS,而操作系统的工作就是提供物理内存。

(这实际上只是the Wikipedia article on VAS的一个愚蠢版本。)