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


13

我在理解OS X中的有线内存和活动内存之间的区别时遇到了麻烦。

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

Answers:


29

温馨提示:为了给社区的其他成员提供更好的答案,请不要说“不要谈论四种类型的记忆”。即使您非常了解,也可能有一百零一互联网公民来到这里,希望能提供辅助性的答案。:)

“分页”是以下操作的准确术语。如今,“交换”通常用于“寻呼”,但是现在却可以互换使用。“交换”最初是指将程序的存储空间完全移至“辅助存储”(与“主存储”相对,后者在某种意义上是RAM的古称)。Windows和Unix系统调用分页空间交换,使分页和交换之间的界限变得很模糊。

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

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

  1. 如果所有应用程序都没有足够的内存(在没有交换空间的系统上发生这种情况),将导致无法为请求新内存页的新应用程序分配内存–通常会导致程序终止。
  2. 如果某些内存页面(内存分为“页面”)在一段时间前被使用,但现在不再使用,它​​将被转移到交换文件中,而剩余的内存可用于做其他事情,这可能更有用(例如,甚至缓存!)–当这种情况发生在没有交换空间的系统中时,这将导致空闲页面保留在内存中。不过,这并不算太严重,因为这些天我们拥有大量内存。

四种类型的存储器分类如下:

  • 有线的:由声称已分配内存的块必须物理上保留在RAM中且不能交换到磁盘的应用程序使用,无论最近是否使用过,即另一个应用程序可能不请求该特定内存块。示例是系统使用的内存和虚拟机使用的内存的一部分。

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

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

如果您的问题是“在内存不足的严峻情况下,系统将按什么顺序尝试将内存分配给新应用程序?”,那么顺序将是分配

可用内存→非活动内存→活动内存

从某种意义上说,即使最近使用过的内存也可以分页。“有线”部分是不惜一切代价不会被淘汰的内容。

但是,在现代系统中,由于我们有大量可用的RAM,因此不太可能将活动内存调出。


现在,通过谈论其他类型的内存,使这个问题比必须解决的更加复杂。所以现在我要问的是活动内存与非活动内存。我听说不活动的内存实际上是可用内存。那是什么 活动内存还是空闲内存吗?比较活动内存并将其与非活动内存进行比较。
tony_sid 2011年

1
我听说不活动的内存只是缓存,以防万一被关闭的程序再次启动。如果是这样,那么为什么需要将其放入磁盘?
tony_sid 2011年

1
你听错了 除非内存体系结构出现严重问题,否则关闭的应用程序将释放其内存。
bubu

2
很棒的答案!+1
posdef

1
@tony_sid是一个古老的讨论,但您听到的是正确的。如Apple支持上所述:“但是,如果在其他应用程序使用它的不活动内存之前打开邮件,则Mail将打开得更快,因为它的不活动内存已转换为活动内存,而不是从较慢的驱动器加载它。”
Gaurav 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.