一:硬盘的存储结构
磁盘的最小存储单位是扇区(Sector ),大小是512B(0.5K)。
连续的8个扇区组成一个块block(4K),这是文件读写的基本单位。每个block内只能存放一个文件的数据。
每次读硬盘会读一个或者多个block,也就是预读取(原理是局部性原理)。
二:文件的结构和存储
文件分成两部分,即控制信息和内容信息。这两部分要分开存储。
文件的控制信息(元数据)存储在inode( 储存文件元信息的区域)中,一个文件只能有一个inode(索引节点)。
文件的内容信息存放在block块中。
三:文件的读写过程
1)找到文件的inode编号
文件所在目录(也是一个文件)里有一个目录项列表,其中目录项由两部分组成:文件名和文件的inode编号(id)。
每个文件的inode编号都是唯一的,find命令可利用inode编号搜索文件。
find . -inum 63405 |xargs rm
2)根据inode编号找到inode
3)根据inode中信息找到文件的内容数据所在的block,进行读写操作。
所以,即使目录下的文件数是0.1K级别时, 也需要3次的文件IO
1:读取目录元数据
2:读取inode
3:读取文件内容
参考文献:
网友评论