繁体   English   中英

虚拟内存分配

[英]virtual memory allocation

当我需要分配超出系统内存限制的虚拟内存时,我有哪些选择?

分页文件是无限的(受可用磁盘空间限制),为什么我不能使用它来分配超出物理内存限制或OS内存限制的内存? 他们为什么将虚拟内存限制在地址空间的边界内? 我知道CPU可以使用物理内存,但是当我访问虚拟内存的某些部分时,为什么操作系统不为我处理呢?

操作系统确实为您解决了这一问题。 您无需考虑何时充分利用物理内存,因为虚拟内存系统会将其隐藏起来。 应用程序地址空间的限制是体系结构中分配用于存储内存地址的位数的结果。

编辑回复:评论

我认为您可能将给定进程可用的内存量与操作系统管理的虚拟内存总量(由进程共享)混淆。 所有进程的已提交虚拟内存总量都有一个限制,但是此提交限制与单个进程的地址空间限制不同。 总提交限制是物理内存量+页面文件大小。 因此,可以调整页面文件的大小以增加或减少此数字。

Bshields有直接的答案。 我只是想补充一下,如果您使用的是Windows,那么可敬的Mark Russinovich在虚拟内存上有一个非常详细且写得很好的文章: http : //blogs.technet.com/b/markrussinovich/archive/2008/11 /17/3155406.aspx

虚拟内存和地址空间是两个单独的概念。 内存分页是另一回事。

地址空间的大小限于可以寻址的范围位置。 这是对CPU及其工作模式的限制。例如,在具有32 GB内存的64位系统上运行的典型32位应用程序仍具有32位地址空间。 可用存储更多的事实并不会改变32位程序仅使用32位地址的事实(为简便起见,PAE的存在被忽略了)。

实际上,虚拟内存只是操作系统可以控制虚拟内存页面和物理内存页面之间的一组映射的概念。

内存分页允许操作系统进行操作,以便某些虚拟页存储在磁盘上,而不是物理内存上。 与系统上的物理内存相比,这可以分配更多的虚拟内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM