【问题标题】:Linux memory management (caching)Linux 内存管理(缓存)
【发布时间】:2016-11-23 11:10:39
【问题描述】:

我很难区分不同的缓存区域 (OS)。我想简要解释一下磁盘\缓冲区\交换\页面缓存。他们住在哪里?它们之间的主要区别是什么?

据我了解,页面缓存是存储从 I/O 设备带来的页面的主内存的一部分。 缓冲区缓存和磁盘缓存是否相同?它们是否“生活”在 I/O 设备上?

非常感谢!!

【问题讨论】:

    标签: linux caching operating-system


    【解决方案1】:

    在 linux 中,两个缓存是不同的:文件在页面缓存中,磁盘块在缓冲区缓存中。鉴于大多数文件由磁盘上的文件系统表示,数据被表示两次,一次在每个缓存中。许多 Unix 系统都遵循类似的模式。

    但是,缓冲区高速缓存仍然存在,因为内核仍然需要根据块而不是页来执行块 I/O。由于大多数块代表文件数据,因此大部分缓冲区缓存由页缓存代表。但少量块数据不是文件支持的——例如元数据和原始块 I/O——因此仅由缓冲区缓存表示。

    【讨论】:

      【解决方案2】:

      磁盘缓存/缓冲区缓存

      此缓存缓存磁盘块以优化块 I/O。

      它是用于更快访问磁盘的 RAM。它嵌入在磁盘中,也可以作为主内存的一部分留出。

      交换缓存/页面缓存

      此缓存缓存文件页面以优化文件 I/O

      交换缓存是页表条目的列表。此页表条目用于换出页面,并描述了该页面保存在哪个交换文件中以及它在交换文件中的位置,因此当必须再次带回时,我们将在交换文件中找到它的位置。

      它驻留在磁盘上。

      【讨论】:

      • 谢谢大君!
      • 我如何接受答案?我是新来的,找不到任何接受选项
      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      相关资源
      最近更新 更多