数据结构之文件分配表FAT
数据结构之文件分配表FAT一、扇区分簇管理
操作系统或应用程序欲将数据写入一个磁盘文件时,必须在磁盘上找到可以使用的未用扇区。反过来要将数据从磁盘文件中读出时,也要在磁盘上找到已经储存了相应数据的有关扇区,要查找扇区必须知道扇区的地址,文件分配表FAT就是记录扇区地址的。
因为硬盘的扇区非常多,如果将每个扇区的地址都记录在文件分配表里,势必造成文件分配表体积庞大,查找时效率将会很低。为解决这个问题,采用了将扇区分组管理的方法。分组的过程称作扇区分簇,是由高级格式化程序在格式化磁盘时完成的。
扇区分簇以后,将每个簇的地址记录到文件分配表FAT里去。由于一个簇包含很多扇区,所以文件分配表的体积减小了,查找的速度就提高了。
一个簇能包含多少扇区,是由分区格式和分区的大小决定的。
二、簇链和文件检索过程
当使用一个新格式化的逻辑驱动器时,文件数据存放的簇号是连续的,使用一段时间后,由于经常对文件进行删除、复制和修改操作,每个文件分配的簇号就不一定是连续的了。为了确保在存取文件时能够检索到所有连续或不连续的扇区地址,文件分配表采用了“簇链”的记录方式。
当需要从磁盘上读取一个文件时,首先从文件目录表中找到该文件的目录登记项。继而从目录登记项的有关字段,查到分配给该文件的第一个簇号,根据第一簇号的内容可以计算出两组数据。
其中一组数据指出了文件在数据区DATA里的第一簇扇区首地址,从第一簇扇区首地址开始数据是连续存放的,连续存放多少个扇区由分区格式和分区大小决定。
另外一组数据指出了FAT表内簇登记项的地址,如果其值是结束标志FFFFFF0FH(FAT32格式),说明文件至此已经结束。如果不是结束标志,则该登记项的值为第二个簇号,据此又可以计算出两组数据,继而确定文件在数据区里第二簇扇区首地址和FAT表内的第二个簇登记项的地址。
继续重复上面的过程,就可以得到文件在DATA区里的全部数据,以及文件在FAT所有簇登记项的地址。
通常断章取义的文章一定是摘抄来的,好象楼主的不太全哟 不管摘超还是原创.发贴最重要!摘超可以交流.原创可以解惑!
顶! 绝对原创,数据结构大致可分为MBR、DBR、FAT、DIR和DATA五部份。不是说了只是数据结构之文件分配表FAT吗?当然就不全了! 小小 发表于 2007-8-26 19:13
绝对原创,数据结构大致可分为MBR、DBR、FAT、DIR和DATA五部份。不是说了只是数据结构之文件分配表FAT吗? ...
支持支持 0.0
页:
[1]