美文网首页
文件存储

文件存储

作者: packet | 来源:发表于2018-07-20 19:49 被阅读0次

一:硬盘的存储结构

磁盘的最小存储单位是扇区(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:读取文件内容

参考文献:

理解inode - 阮一峰的网络日志

linux文件系统如何进行文件存取 - Debug Hacks

相关文章

  • 数据库安装与配置

    安装目录简介 bin: 存储可执行文件 data: 存储数据文件 include:存储包含的头文件 lib:存储库...

  • iOS数据存储

    iOS开发中数据存储有两类:一、存储为文件 如归档、解归档、plist文件存储及偏好设置都是存储为文件二、存储到...

  • MySQL常用存储引擎之CSV

    存储特点 数据以文本方式存储在文件中 .csv文件存储表内容 .csv文件存储表的元数据如表状态和数据...

  • mysql 高级

    关键文件 日志文件 数据文件 配置文件 存储引擎 mysql使用插件式的存储引擎,MySQL存储引擎有InnoDB...

  • 20170104第一行代码第六章数据存储

    持久化技术:文件存储、SharedPreference存储和数据库存储。 一、文件存储 不对存储内容进行任何格式化...

  • 文件存储

    1)打开文件: 在python中用open()这个函数来打开文件并返回文件对象,open()函数有很多参数,其中第...

  • 文件存储

    一:硬盘的存储结构 磁盘的最小存储单位是扇区(Sector ),大小是512B(0.5K)。 连续的8个扇区组成一...

  • 文件存储

    文件存储是 Android 中最基本的一种数据存储方式。 它不对存储的内容进行任何的格式化处理,所有数据都是原封不...

  • 文件存储

    1.openFileInput和openFileOutput的使用 文件的使用,注意最后要用finally给关闭掉...

  • 文件存储

    将数据储存到文件中 将数据从文件中取出

网友评论

      本文标题:文件存储

      本文链接:https://www.haomeiwen.com/subject/cloqmftx.html