繁体   English   中英

Linux内存管理(缓存)

[英]Linux memory management (caching)

我很难分辨不同的缓存区域(OS)之间的区别。 我希望对磁盘\\缓冲区\\交换\\页面缓存进行简要说明。 他们住在哪里? 它们之间的主要区别是什么?

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

非常感谢!!

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

但是,由于内核仍需要根据块而不是页面执行块I / O,因此保留了缓冲区高速缓存。 由于大多数块表示文件数据,因此大多数缓冲区高速缓存由页高速缓存表示。 但是少量的块数据不是文件备份的(例如,元数据和原始块I / O),因此仅由缓冲区高速缓存表示。

磁盘缓存/缓冲区缓存

该缓存可缓存磁盘块,以优化块I / O。

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

交换缓存/页面缓存

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

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

它驻留在磁盘上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM