- 复习dentry相关内容文件目录是一个树形的结构,为了保存这个树形结构 ,需要有一个合理的数据结构。这个数据结构就是dentry,dentry是一个纯粹的内存结构,由文件系统在提供文件访问的过程中在内存中直接建立
其中对于文件夹 d_subdirs 存放了其子文件,与给定目录下的所 有文件和子目录相关联的dentry实例,都归入到d_subdirs链表(在目录对应的dentry实例中)。子 结点的d_child成员充当链表元素。内存中所有活动的dentry实例都保存在一个散列表中,该散列表使用fs/dcache.c中的全局变量 dentry_hashtable实现。用d_hash实现的溢出链,用于解决散列碰撞。因为dentry缓存只包含文件系统结构的一小部分。最 常用文件和目录对应的目录项才保存在内存中。原则上,可以为所有文件系统对象都生成dentry项, 但物理内存空间和性能原因都限制了这样做。Dentry是一个线程层面上的概念 ,一个文件可以有多个dentry,dentry还保存了文件与进程之间通信所需的信息。线程在访问文件时,会生成dentry
(1) Linux系统内核为文件设置了一个缓存,所有文件的读写的数据内容均缓存在这里,称之为page cache 。使用page cahe的IO称之为 bugger IO,内核默认使用buffer IO,由应用自身提供内存,则称之为d