页缓存(Page Cache),是用来保存磁盘中数据的内存页,主要是为了提高系统IO性能而采用的缓存机制。
具体来说,页缓存是:
1)以页为单位的文件视图
2)属于某文件的缓存页以基树形式组织
3)可以从文件inode的address_space对象获取树根。叶子节点对应文件页,从左到右排列,根据index(文件内的页索引)在基树中查找
4)是否要预读。
页缓存的mpage机制:
尽量扩大当前BIO的大小,延缓BIO的提交。其标准是构成此BIO的页对应的磁盘扇区连续。
当页内的块对应的磁盘扇区不连续时,提交当前BIO;然后分配新的BIO结构,继续填充页,尽量扩大当前BIO然后提交。
页面和BIO具有这样的对应关系:
1)一个页面只属于一个BIO
2)一个BIO要包含多页面
3)BIO中块在磁盘上是连续的
BH_Boundary机制:
避免磁头的前后移动。
为节省空间,当前文件系统都采用间接块寻址。因此,当读取某文件的一段连续内容时,可能出现读取