【发布时间】:2021-09-30 03:28:26
【问题描述】:
我知道预读是 Linux 内核中的一种预取形式,但我认为预取更多的是关于硬件(缓存)预加载,而预读是一种操作系统级别的行为,用于从磁盘加载到内存/RAM 中。似乎在读取期间预读是only used,但对于写入则不是。我知道名称中有“读取”,但为什么不将预读/预取用于写入?
按照here 的建议,我想我有一个答案(在下面发布),但想要 cmets、建议或更好的答案。
【问题讨论】:
-
缓存写入的主要好处是避免写入。如果您对同一个位置进行多次写入,则只需将最后一次写入磁盘即可。
-
请不要在标题中添加与问题无关的文字
-
@mightyWOZ 抱歉,我试图坦率地说明意图
-
不用抱歉,我们都是来帮助和寻求帮助的,但是措辞清晰的问题会使回答者的任务变得容易一些。
-
@wxz 读写是内核中不同的路径。读取是同步提交的,因为有一个任务在等待数据。写入在后台刷新到磁盘。第一个块的部分写入将触发读取,但如果您正在写入完整块,则不需要读取。写入端没有将(或应该)触发读取的预测代码。当读取端检测到顺序访问模式时,就会完成预读。
标签: linux memory-management linux-kernel operating-system prefetch