首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟内存分配

虚拟内存分配
EN

Stack Overflow用户
提问于 2010-06-26 02:00:09
回答 3查看 1.8K关注 0票数 0

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-26 02:02:57

操作系统会帮你解决这个问题。您不必考虑物理内存何时被充分利用,因为虚拟内存系统对您隐藏了这一点。对应用程序的地址空间的限制是在体系结构中分配用于存储存储器地址的位数的结果。

编辑回复:评论

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

票数 3
EN

Stack Overflow用户

发布于 2010-06-26 02:08:32

Bshields有直接的答案。我只想补充一点,如果你在Windows上工作,值得尊敬的Mark Russinovich在这里有一篇关于虚拟内存的非常详细和写得很好的文章:http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx

票数 0
EN

Stack Overflow用户

发布于 2010-06-26 02:16:29

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

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3120277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档