OS X 中的有线内存与主动内存

OS X 中的有线内存与主动内存

我无法理解 OS X 中有线内存 (Wired Memory) 和活动内存 (Active Memory) 之间的区别。

不要谈论四种类型的内存(不要谈论空闲或非活动内存,因为我已经知道它们是什么)。只需比较和对比有线内存和活动内存,这样我就能更好地理解这两者。

答案1

温馨提醒:为了给社区的其他人提供更好的答案,请不要说“不要谈论四种类型的记忆”之类的话。即使你很了解,也可能有一千零一个互联网公民来到这里希望得到一个附带的答案。:)

“分页”是以下操作的准确术语。“交换”在口语中用于表示“分页”,不过如今它们经常互换使用。“交换”最初是指将程序的内存空间完全移动到“辅助存储”(而不是“主存储”,后者在某种程度上是 RAM 的古老术语)。Windows 和 Unix 系统将分页空间称为交换,这大大模糊了分页和交换之间的界限。

然后,为了理解活动、有线和非活动内存的概念,必须了解分页。分页意味着将内存页面从随机存取存储器(即 RAM)移出并移到硬盘或其他辅助存储设备上。这允许正在运行的应用程序请求比可用系统 RAM 总量更多的内存。

请注意,尽管分页意味着再次访问该特定信息位会带来巨大的性能损失,但分页可以在两种不同的情况下发生:(引用我自己的话:没有交换分区的缺点

  1. 当没有足够的内存供所有应用程序使用时(这种情况发生在没有交换空间的系统中),将导致无法为请求新内存页的新应用程序分配内存,这通常会导致程序终止。
  2. 当一些内存页面(内存被划分为“页面”)在一段时间前被使用,但现在不再使用时,它将被转移到交换文件,剩余的内存可用于执行其他更有用的操作(例如,甚至缓存!)——当这种情况发生在没有交换空间的系统中时,这将导致空闲页面停留在内存中。不过,这并不是什么大问题,因为我们现在的内存量相当大。

四种类型的记忆分类如下:

  • 有线:由声称分配的内存块必须物理地保留在 RAM 中,而不能交换到磁盘的应用程序使用,无论它最近是否使用过,即其他应用程序不得请求该特定内存块。示例包括系统使用的部分内存和虚拟机使用的内存。

  • 活跃与不活跃:这些是通常由用户模式应用程序使用的内存,它们可以交换到磁盘上。“活动”表示最近使用过,“非活动”表示最近未使用过。因此,操作系统将首先交换出非活动页面,然后在必要时交换活动页面。

  • 可用内存:未使用的内存。这些内存用于其他目的,例如硬盘缓存。

如果你的问题是,“在内存不足的紧急情况下,系统会按照什么顺序尝试为新应用程序分配内存?”,那么顺序将是分配

空闲内存 → 非活动内存 → 活动内存

从某种意义上说,即使最近使用的内存也可以被分页。“有线”部分是无论如何都不会被分页的。

然而,在现代系统中,由于我们有足够的可用 RAM,活动内存被分页的可能性相当小。

相关内容