Huge Lemon的博客

文件控制块与索引节点的总结

2019-11-24

序言

文件控制块(FCB)与索引结点(inode)都是操作系统文件管理中逻辑结构的重要部分。在今日考研复习过程中,基本解决了以前遇到的“FCB与inode”的问题,现以此博文记录该知识点。

文件控制块与索引结点

这需要从目录结构说起。

  • 文件目录:包含有关文件的信息,信息主要有:属性,位置,所有权。这些信息主要是由OS进行管理。把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合,其包含许多目录项(即FCB)。

    目录管理的基本要求:从用户角度看待,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射。目录管理提供的是:按名存取。
  • 共享系统中目录还需要提供控制访问文件的信息。重名问题主要通过树形结构来解决。
普通文件目录 以索引结点实现的目录
由FCB构成的一个一个目录项组成;
FCB中存放了和文件相关的所有控制信息
a. 文件名
b. 指向索引结点的指针

采用索引结点的方式来实现目录,好处是文件目录的目录项长度会缩短很多。因为通过文件目录实现对文件的按名存取时,在寻找文件的过程中只需要用到文件名这个信息,而其他信息在寻找文件的时候没有必要。
如果一个目录中存放了很多个文件,采用传统的以FCB构成目录项的方式,那么这个文件目录会非常大,因为每个目录项就特别大。
而采用索引结点的方式实现目录,每个目录项就会很小,只包含文件名和指向索引结点的指针。可以提高文件检索速度。

  • FCB:文件控制块。用于存放控制文件的各种信息的数据结构,实现了按名存取。



总结如下表:

FCB iNode
基本信息:如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等
存取控制信息:如文件存取权限等
使用信息:如文件建立时间、修改时间等
1. 文件描述信息
2. i结点
【在文件目录中的每个目录项仅由文件名和指向该文件所对应的i结点的指针构成】

此处有个小问题:

  • 某科技大学的OS考研试卷填空题答案中索引节点分为文件描述信息和i结点,而资料书上说的是索引节点即为i结点

检索目录文件(FCB的集合)时只用到了文件名。仅当找到一个目录项时才需要从该目录项(FCB)中读出该文件的物理地址。即:检索目录时文件的其他描述信息用不到,也因此不必调入内存。那么我们是否可以考虑,把文件名文件的描述信息(FCB-文件名)分开,文件的描述信息单独形成一个数据结构,这个被称作索引结点。简称为i结点。
这样就可以简化目录结构为:文件名对应i结点指针
比如在UNIX系统中,文件目录项(FCB)占16B,其中14B是文件名,2B是i结点指针。
注意到设计i结点的设计思路是怎么得到的,就很容易理解FCB和i结点包含的信息大部分是相同的,i结点只是抽出了文件名。每个文件对应一个文件名,则一个文件也只要一个i结点。

  • 存放在磁盘上的索引结点称为磁盘索引结点。

文件控制块与索引节点的区别

个人总结:
从文件目录结构来看,UNIX中,

  • 文件目录由FCB(目录项)组成
  • FCB = 文件名 + inode
  • inode包含了文件物理地址信息
  • 物理地址信息的组成主要是主索引表


    如图所示:

个人能力有限,总结有问题请指出。

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏