给定一个4KB的块大小,当从磁盘读取一个1KB文件并将其缓存在主内存中时,包含该文件的整个4KB块是否已缓存?
类似地,如果打开一个100 1KB的文件,然后在其中查找50 1KB,然后读取1KB的数据,那么仅包含存储在主内存中的1KB数据的4KB块,而不是整个文件吗?
我假设的是ext4文件系统,但没有坚持它。
发布于 2018-12-19 22:09:33
是啊。
权威的Linux页面缓存基础状态
文件块不仅在写入时,而且在读取文件时都会写入Page。
和
在Page中自动存储文件块通常是非常有利的。
这适用于基于块的文件系统,例如ccfs、ext?、gfs、ifs、xfs,如他的图表所示。页面缓存,内存和文件之间的关系也证实了这一点,它明确指出:
如果从文件中读取单个字节,则包含所请求的字节的整个4KB块将从磁盘读取并放入页缓存中。
该网页的第三段只确认了4KB块,其中包含缓存在主内存中的1KB数据,而不是整个文件。
https://unix.stackexchange.com/questions/490008
复制相似问题