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