Linux内核分析与应用课件第8章文件系统中的各种缓冲区 本章节主要讲解了Linux内核中的文件系统缓冲区,包括缓冲区、缓存、DCache、Inode Cache、Page Cache、Buffer Cache等概念的定义、作用、区别和实现机理。 缓冲区(Buffer)是内存空间的一部分,预留了一定的存储空间,用于缓冲输入或输出的数据,以减少磁盘碎片和硬盘的反复寻道,提高系统性能。缓冲区可以存放要写入磁盘的数据。 缓存(Cache)是内存缓存区,经常被用在磁盘的I/O请求上,用于存放磁盘中读出来的数据。Cache可以查看proc目录下的meminfo文件,看到机器上buffer和cache的大小。 DCache(Directory Cache)是目录项缓存,用于把路径转换为索引节点,实现目录项的查找。DCache的组织包括散列表、LRU链表等,用于加速查找。 Inode Cache是索引节点缓存,用于表示文件系统中的文件或者目录。Inode Cache的组织包括散列表、LRU链表等,用于加速查找。 Page Cache是文件系统的缓存,用于缓存文件的数据。在文件层面上的数据会缓存到Page Cache中,Page Cache中的数据需要刷新时,会交给Buffer Cache。 Buffer Cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到Buffer Cache中。Buffer Cache的组织包括LRU链表等,用于加速查找。 打开文件的过程中,内核将查找过程分为两部分:查找根目录信息和循环查找路径名后续分量。查找的关键接口为do_lookup,主要过程包括在DCache中查找相应的dentry,若找到则直接返回,若没有找到,则必须去底层文件系统查找对应的dentry。 本章节详细讲解了Linux内核中的文件系统缓冲区的概念、作用和实现机理,为读者提供了深入了解Linux内核的机会。
剩余23页未读,继续阅读
- 粉丝: 1w+
- 资源: 4083
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助