DOS有了文件分配表FAT,能有效地管理磁盘空间。当需要存贮一个新文件时,DOS逐一扫描FAT,跳过已分配的簇直到找到第一个可用簇,将该簇分给文件,其簇号作为该文件起始簇号放在该文件目录项起簇号位置处。在FAT中该簇号的表项对应放什么内容呢?若只需这一簇,就放结束标志(F)FF8~(F)FFF中的一个值,若还需一个簇,继续扫描FAT再找到一个可用簇,将该簇分给文件,其簇号就作为上一簇(起始簇号)对应表项的内容。新近找到的这簇对应FAT表项又放什么内容呢?不是下一簇簇号,就是末簇标志。如上所述重复进行,直到满足文件所需簇号对应的空间为止,最后一个可用簇,其簇号对应表项内容是结束标志值[即(F)FF8~(F)FFF之一]。图2.3以文件所需4簇为例,给出用FAT管理文件写时的示意图。
图2.3 用FAT管理文件写时的示意图
(a)FAT表;(b)以簇号为单位的文件所占磁盘空间;(c)文件所占逻辑空间
在读取一个文件时,先从该文件对应的目录项中找到该文件的起始簇号,再在FAT表内查看该簇号内容,若是一个可用簇号,则为该文件的下一个可用簇,其簇号对应表项内容;若又是一个可用簇号,该簇号为文件的下一簇……其簇号直到可用簇号对应表项内容为结束标志(F)FF8~(F)FFF为止。顺着这些簇号,就可以将文件内容读出来。图2.4所示FAT与磁盘文件的关系,可以较好地解释这个读出过程。因此,文件目录项中存放的起始簇号为FAT入口,由入口开始,第一个FAT 对应登记项中包含文件下一簇的簇号,直到遇到标志文件结束的标志为止。这样由一个盘簇指出文件所用的下一个盘簇的概念称为盘簇链。
(www.xing528.com)
图2.4 FAT 与磁盘文件的关系
(a)FAT表;(b)数据区
通过上面的分析,我们看到FAT是一个以顺序簇号为下标的特殊的一维数组。正如任何一维数组那样,用一个数字指针就能找到元素(其内容也是簇信息)。这个被用作指针指向FAT的号码就是簇号。从外特性看,也可以把FAT看作一个映像图或者一个转换表,它以簇号作为输入,并送回一个不同的簇号作为输出。一个文件的任一簇号均能作为输入,送回的数字是该文件的下一个簇号。
DOS采用这种文件结构的特点有二:第一是文件目录只需记录文件的首簇号,即使很大的文件也只需一个目录项;第二是文件容易扩充,并可使用磁盘上的任意空间而不考虑其物理位置的连续性,从而使文件长度仅受盘空间的限制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。