FAT - File Allocation Table

Unter der File Allocation Table (kurz: FAT, auf deutsch: Dateizuordnungstabelle) versteht man eine Tabelle, über die einerseits eine Zuordnung von Clustern zu Dateien verwaltet wird, andererseits gibt die FAT Aufschluss über freie und belegte Cluster eines Dateisystems.

Im Zuge der technologischen Weiterentwicklung wurden seit Mitte der 1970er-Jahre verschiedene FAT-Versionen entwickelt. Unter anderem waren dies:

  • FAT12 - File Allocation Table 12
  • FAT16 - File Allocation Table 16
  • FAT32 - File Allocation Table 32
  • exFAT - Extended File Allocation Table

Diese Versionen unterscheiden sich beispielsweise in der maximal unterstützten Dateigröße und Dateisystemgröße.


Eine einfache FAT

Die folgende Abbildung zeigt ein Beispiel für eine einfache FAT, bestehend nur aus einer einzelnen Spalte. Die einzelnen Zeilen dieser Spalte sind durch die laufende Cluster-Nummer nummeriert.

Fat.jpg


Freie Cluster

Aus dem FAT-Beispiel der vorangegangenen Abbildung ist erkennbar, dass die Cluster mit den folgenden Nummern noch frei sind:
4, 7, 10, 13, 14, 18, 19, 28 und 30.

Sobald eine weitere Datei auf dem durch diese FAT verwaltete Dateisystem gespeichert werden soll, kann die Datei - entsprechend ihrer Größe - auf diese freien Cluster verteilt werden.


Datei zusammensetzen

Beim Zugriff auf eine Datei, welche auf einem Dateisystem gespeichert ist, das durch die FAT aus der vorangegangenen Abbildung verwaltet wird, muss das Betriebssystem die zu dieser Datei gehörigen Cluster ermitteln. Dies ist beispielsweise wie folgt möglich:

  • Die Datei computer.txt beginnt in Cluster 6. (Diese Information bezieht das Betriebssystem aus dem zu dieser Datei gehörigen Verzeichniseintrag. Der Verzeichniseintrag ist nicht Bestandteil der FAT!)
  • Das Betriebssystem sucht in der FAT die Zeile 6 (\rightarrow laufende Cluster-Nr.).
  • Hier gibt es einen Verweis auf Cluster-Nr. 9
  • Zeile 9 verweist auf Cluster-Nr. 24.
  • Zeile 24 verweist auf Cluster-Nr. 2.
  • Zeile 2 verweist auf Cluster-Nr. 8.
  • Zeile 8 verweist auf "nil", was bedeutet, dass kein weiterer Cluster folgt.

Somit kann der Inhalt der Datei computer.txt dieses Beispiels durch die Inhalte der folgenden Cluster zusammengesetzt werden:
6, 9, 24, 2, 8

Beim Zusammensetzen des Dateiinhalts ist die Reihenfolge der Cluster unbedingt zu beachten.

Die folgende Abbildung verdeutlicht die "Clusterspur" der Datei computer.txt in der Beispiel-FAT:

Datei-in-fat.jpg


Aufgabe 1

Aufgabe
Setze die Datei zusammen!

Betrachte die oben gegebene Beispiel-FAT. Die Datei xyz.jpg beginne in Cluster-Nr. 11.

Aus den Inhalten welcher Cluster setzt sich der Dateiinhalt insgesamt zusammen? Achte auf die richtige Reihenfolge der Cluster-Nummern!


Aufgabe 2

Aufgabe
Lösche die Datei!

Betrachte die oben gegebene Beispiel-FAT. Die Datei xyz.jpg beginne in Cluster-Nr. 11 und soll gelöscht werden.

Wie ändern sich die Einträge in der FAT durch das Löschen der Datei?


Aufgabe 3

Aufgabe
Speichere eine neue Datei!

Betrachte die oben gegebene Beispiel-FAT. Eine neue Datei abc.mp3 soll gespeichert werden. Aufgrund der Dateigröße werden insgesamt fünf Cluster zum Speichern benötigt.

  • In welchem Cluster beginnt die Datei? (Wähle eine geeignete Cluster-Nr.!)
  • In welchen weiteren Clustern legst du die Datei ab?
  • Wie ändern sich also die Einträge in der FAT?