跳转至

FAT

来源:操作系统 / note/文件管理/FAT.md

采用内存中的表进行链表分配(FAT) FAT,即 File Allocation Table,是一种采用内存中文件分配表来管理磁盘块链表的文件系统实现方法。 image.png|225

核心思想

普通链表分配中,每个磁盘块都保存下一个块的地址。 FAT 将这些指针集中放到内存中的一张表里。

优点

  • 数据块可以全部用于存放数据;
  • 比普通链表分配更容易随机访问;
  • 目录项只需要保存文件的起始块号。

缺点

  • 整张 FAT 表需要常驻内存;
  • 磁盘越大,FAT 表越大;
  • 不适合大型磁盘。

相关概念

取出每个磁盘块的指针字,把它们放在内存的一个表中

使用此组织,整个区块可用于数据。此外,隨機訪問要容易得多。虽然仍然必须遵循链才能在文件中找到给定的偏移量,但链完全在内存中,因此无需进行任何磁盘引用即可遵循(访问内存速度要比访问磁盘速度快得多)

与之前的方法一样,目录条目只需要保留一个整数(起始块号),并且仍然能够找到所有块,无论文件有多大

缺点:必须把整个表都存放在内存

这种方法的主要缺点是,整个表格必须一直处于内存中才能工作。该表具有1TB磁盘和1KB块大小,需要10亿个条目,10亿个磁盘块中每个条目一个条目。每个条目必须至少包含3个字节。对于查询速度,它们应该是4字节。因此,该表将一直占用3GB或2.4GB的主内存

FAT的管理方式不能较好地扩展并应用于大型磁盘中(因为磁盘越大,需要占用的内存越大),它是原始的MS-DOS文件系统,但仍然完全支持所有版本的Windows。