我认为虚拟地址空间是分配给特定进程的一部分 RAM。但是我正在阅读的书说 4 gbs 是虚拟地址空间的标准限制。这不是全部的RAM吗?如果是这种情况,那么我对虚拟地址空间是什么感到困惑。任何人都可以启发我吗?
问问题
1855 次
1 回答
1
这就是虚拟地址的全部意义:操作系统处理物理内存,进程处理自己的虚拟内存,虚拟内存映射到操作系统可用的任何内存,不一定是 RAM。
如您所说,在 32 位操作系统上,虚拟地址空间 (VAS) 通常为 4 GiB。32 位给你 (2^32) 个地址 (0 ... (2^32)-1),每个寻址一个字节。
您可以拥有或多或少的物理 RAM,但每个运行的进程仍然有 4-GiB-VAS。如果您的物理 RAM 较少,则操作系统通常会交换到硬盘驱动器。
该进程不需要知道任何这些,它可以使用操作系统提供的完整 VAS,并且提供物理内存是操作系统的工作。
(这实际上只是维基百科关于 VAS 的文章的简化版本。)
于 2013-10-25T11:00:25.307 回答