这需要从目录结构说起。
文件目录:包含有关文件的信息,信息主要有:属性,位置,所有权。这些信息主要是由OS进行管理。
目录管理的基本要求:从用户角度看待,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射。目录管理提供的是:按名存取。
共享系统中目录还需要提供控制访问文件的信息。重名问题主要通过树形结构来解决。
FCB:文件控制块。用于存放控制文件的各种信息的数据结构,实现了按名存取。
FCB的有序集合就是文件目录,一个FCB就是一个文件目录项。
这些名词辨析是这部分知识点的主要难点。
FCB包含的信息:
本篇重点是这个索引结点。
检索目录文件(FCB的集合)时只用到了文件名。仅当找到一个目录项时才需要从该目录项(FCB)中读出该文件的物理地址。即:检索目录时文件的其他描述信息用不到,也因此不必调入内存。那么我们是否可以考虑,把文件名和文件的描述信息(FCB-文件名)分开,文件的描述信息单独形成一个数据结构,这个被称作索引结点。简称为i结点。
这样就可以简化目录结构为:文件名对应i结点指针。
比如在UNIX系统中,文件目录项(FCB)占16B,其中14B是文件名,2B是i结点指针。
注意到设计i结点的设计思路是怎么得到的,就很容易理解FCB和i结点包含的信息大部分是相同的,i结点只是抽出了文件名。每个文件对应一个文件名,则一个文件也只要一个i结点。
存放在磁盘上的索引结点称为磁盘索引结点。
索引结点包含的内容
通过内容可以联系与FCB的关系。
内存索引结点额外含有下面的内容: