1. buffer_head
当一个块被调入内存时,它要存储在一个缓冲区中,每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示。
内核在处理数据时需要一些相关的控制信息,每一个缓冲区都有一个对应的描述符,用buffer_head结构体表示,称作缓冲区头。在文件<linux/buffer_head.h>
中定义。
缓冲区头的目的在于描述磁盘块和物理内存缓冲区之间的映射关系。这个结构体在内核中只扮演一个描述符的角色,说明从缓冲区到块的映射关系。也说明其所描述块的状态(脏,干净,过期等)。它并不与底层的块驱动程序打交道。
弊端:
一、缓冲区头是一个很大且不易控制的数据结构体,对数据的操作不方便也不清晰。
二、仅能描述单个缓冲区。