最近实验室战boss的数据库课程提到了点有关fat分区表的知识,其实在本科的学习中有学过,只不过不叫fat分区表罢了,趁着它的作业正好回顾一下知识,记录一下。
FAT即文件分配表(File Allocation Table)是dos,windows9x的寻址方式(当今的系统能否使用我还不知道,我会再补充)文件在磁盘中的存放方式并不是连续存放的,而是断断续续的,形成像一种链一样的状态,链与链之间需要知道彼此的位置,所以就需要有个表来存放这些链的位置信息,而这个表就是FAT。操作系统在读取文件时首先访问FAT表,确定文件的碎片被存放在了哪些部分,之后才能读取文件。
而磁盘上的基本单位并不是字节,而是“簇”,每个簇的扇区数与磁盘的容量大小有关,都是2的指数。为了实现文件的链式存储,计算机必须知道哪些簇被占用,哪些簇没有被占用,这就要调用FAT分区表来查看该文件簇的下一个簇的簇号,如果已经到了文件的最后一个簇,则要标记该簇后面已经没有簇了,文件读取完毕。
然后补充一下磁盘的基本知识:
1扇区=512字节
1磁道=64扇区
1柱面=256磁道
磁盘在进行I/O操作时必要要一个扇区一个扇区的写,扇区的大小由上产厂家来决定,一般是512字节
先写这么多,还要再去查查高级语言读取扇区的教程。