Memory 虚拟内存是无限的吗?

Memory 虚拟内存是无限的吗?,memory,Memory,我在一次采访中被问到虚拟记忆是否是无限的?我回答说它不是无限的。然后面试官问了解释,我的建议是,在windows中,我们确实有一种手动方式来将虚拟内存配置到一定的限制 我想知道虚拟内存是否真的是无限的?如果没有其他东西,那么虚拟内存将受到可用磁盘空间量的限制,很遗憾,这远远不是无限的。在大多数情况下,虚拟内存是RAM和可用硬盘空间的总和。由于求和是一个可数,它不能是无穷大。至少,虚拟内存的大小受到给定平台上指针大小的限制(除非它有近/远指针和非平坦内存模型)。例如,不能使用单个32位指针寻址超过

我在一次采访中被问到虚拟记忆是否是无限的?我回答说它不是无限的。然后面试官问了解释,我的建议是,在windows中,我们确实有一种手动方式来将虚拟内存配置到一定的限制


我想知道虚拟内存是否真的是无限的?

如果没有其他东西,那么虚拟内存将受到可用磁盘空间量的限制,很遗憾,这远远不是无限的。

在大多数情况下,虚拟内存是RAM和可用硬盘空间的总和。由于求和是一个可数,它不能是无穷大。

至少,虚拟内存的大小受到给定平台上指针大小的限制(除非它有近/远指针和非平坦内存模型)。例如,不能使用单个32位指针寻址超过2^32(4GB)的内存


实际上,虚拟内存最终必须使用某种东西进行备份,比如磁盘上的页面文件,因此存储的大小强制执行一个更实际的限制。

您说得对,不,它不是无限的。 可寻址虚拟内存受体系结构地址空间的限制。
有关更多信息,请参见。

虚拟存储器的大小受计算机系统的寻址方案和可用辅助存储器的数量限制,而不是受主存储器位置的实际数量限制


例如:-即使您有20 TB的辅助内存,也不意味着虚拟内存可以是20 TB。它受计算机体系结构的限制

首先,忘记虚拟内存受计算机指针大小限制的想法。

虚拟内存限制与寻址空间不同。使用分页可以寻址比基于指针的地址空间中可用的虚拟内存更多的虚拟内存

  • 虚拟内存上限由 操作系统:例如,在32位Windows上 限制为16TB,并且为64位 Windows限制为256TB
  • 虚拟内存在物理上也受到 可用磁盘空间
有关解决各种误解的优秀概述,请参见以下内容:


虚拟内存是RAM和可用硬盘空间的总和,在大多数情况下
是错误的。RAM是物理内存,不是内存virtual@raoul:我没有说ram是虚拟内存。你清楚地说,在大多数情况下,
虚拟内存是ram和可用硬盘空间的总和
@raoul:我的意思是在大多数情况下,
虚拟内存=ram+HDD空间
。对不起,如果我的英语有其他含义。我知道你在说什么,但我告诉你这是错误的。对不起,那是错误的。例如,查找“PAE”(物理地址扩展)。@Stumith:启用PAE的Linux内核要求CPU也支持PAE。所以,它受到计算机体系结构的限制,对吗?@logic_max:是的,但32位Intel芯片能够支持PAE。也许更好的说法是:它是[芯片支持、操作系统限制、磁盘空间]的最低值。通常最低的值是磁盘空间。@stusmith我认为ARM、PowerPC、MIPS或许多其他CPU没有PAE。老的x86 CPU也没有。这个糟糕的问题没有正确的答案。事实上,根据计算方式(对于系统,对于流程),答案是不同的,但仍然不是无限的。否决任何认为它是无限的人。也不是所有东西都必须有磁盘支持。一个大型的零初始化数组都可以由一页零(通常为4-8k)支持。从任何地址读取的数据都将显示为零。在第一次写入页面时,会发生错误,然后分配页面(需要磁盘或内存)并重新映射。这可以允许使用大型稀疏阵列。是的@Stumith我认为你说得对,你可以寻址比基于指针的系统中可用的虚拟内存更多的虚拟内存,这是使用虚拟内存的整个想法。虚拟内存并不完全受磁盘空间的限制,它可以分配但不映射,即所谓的“保留虚拟内存”。请参阅和MEM_RESERVE以获取解释。嗨,如果是这样,为什么在具有足够磁盘空间的4 GB ram中仍然出现内存不足错误?