2.6版本以前,内核用的是一个全局的hash表进行检索 (应该是是暗指所有的文件缓存页放在统一的链表上),
现在为什么要用address space来取代hash呢?
第217页,谈到了一下几个原因:
1.锁的竞争会非常大。
2.搜索的范围会非常大。
3.如果搜索操作失败了,此时会去磁盘内读数据。因为搜索失败之前必定要搜索整个hash链表,所以开销非常大。
4.hash表更加耗内存。
第四点个人不是很明白,忘知情者告知。
并且,大家能够给一个原来内核实现PageCache的版本给个示意链接吗?
1252阅读 0评论2010-11-22 almeydifer
分类:LINUX