首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬盘上的虚拟内存位置

硬盘上的虚拟内存位置
EN

Stack Overflow用户
提问于 2021-08-01 06:44:20
回答 1查看 107关注 0票数 0

我读过关于分页和交换空间的文章,我对硬盘上有多少空间(以及在哪里)被用来分页/交换帧感到有点困惑。让我们考虑以下场景:

  1. 我们有一个进程,它在虚拟内存中逐步使用更新的页面。每次在一个新的页面中,我们都会在物理内存中分配一个帧。
  2. 但是过了一段时间,物理内存中的帧就会耗尽,我们选择从内存中删除一个受害者帧。

我有以下疑问:

hard-disk?

  • From上的
  1. 是将受害者帧交换到交换空间,还是分页到不同的位置(除了交换空间),交换空间通常大约是内存的1-2倍,这是否意味着一个进程总共只能使用RAM +交换空间?还是会更多地受到虚拟内存大小的限制?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 08:59:32

是将受害者帧交换到交换空间,还是将其分页到硬盘上的不同位置(除了交换空间)?

它会被交换到交换空间。交换空间是用来做这个的。没有交换空间的系统不能使用虚拟内存的这一特性。它还有其他功能,比如避免外部碎片和内存保护。

据我所见,交换空间通常约为内存的1-2倍,这是否意味着进程只能使用RAM +交换空间的内存总量?还是会更多地被虚拟内存的大小所限制?

进程可用的总内存将是RAM +交换空间。想象一下,一台具有1GB RAM + 1GB交换空间的计算机,以及一个需要3GB的进程。该进程的虚拟内存需求高于可用内存。这将无法工作,因为最终进程将访问所有这些代码/数据,并将导致程序崩溃。基本上,进程映像大于RAM +交换空间,因此最终程序将完全从可执行文件加载,而计算机将根本没有足够的空间容纳进程。它会破坏这个过程。

这里真的有两个选择。您可以直接将进程的一部分存储在RAM中,或者将其存储在交换空间中。如果这两种方法都没有空间用于您的进程,那么内核就没有其他地方可走了。因此,它使进程崩溃。

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

https://stackoverflow.com/questions/68608067

复制
相关文章

相似问题

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