Skip to content

Struktur des Dateisystems

HannesIlly edited this page May 24, 2018 · 15 revisions

Das Dateisystem besteht aus dem Superblock, der DMAP, der FAT (File Allocation Table), dem Root-Bereich und dem Datenbereich.
Daten zur Struktur des Dateisystems
Hierbei sind DMAP, FAT und Root im Arbeitsspeicher realisiert. Somit muss es Methoden geben, die diese Strukturen initialisieren und persistieren.

Superblock

Der Superblock enthält generelle Dateisysteminformationen. Diese Informationen sind der Inhalt des Structs Superblock in structs-myfs.h:

 fileSystemSize; // Die Größe des gesamten Dateisystems
 emptySpaceSize; // Der aktuelle freie Speicherplatz in Blöcken
 maximumStorageSize; // Der maximale Speicherplatz in Blöcken

 dmapStart; // Der Start-Block der DMAP
 fatStart; // Der Start-Block der FAT
 rootStart; // Der Start-Block des Root-Bereichs
 dataStart; // Der Start-Block der Daten

 dmapSize; // Die Anzahl der DMAP-Blöcke
 fatSize; // Die Anzahl der FAT-Blöcke
 rootSize; // Die Anzahl der Root-Blöcke (Ein Block pro Metadaten)
 dataSize; //  Die Anzahl der Datenblöcke

Methoden:

TODO

DMAP

Die DMAP beschreibt den Status der Datenblöcke, nämlich ob diese leer sind oder einen Inhalt haben.
Die Größe der DMAP beträgt 16 Blöcke (Block 1-16).
Für jede Adresse bzw. Datenblock gibt es einen Eintrag in der DMAP und zwar 0, wenn der Block leer ist und 1 wenn der Block beschrieben wurde.

Methoden:

  • void readDMAP(char** dmap);

  • void writeDMAP();

  • void setPointInDMAP(u_int16_t setAddress);

  • void clearPointInDMAP(u_int16_t setAddress);

  • bool isAdressFull(u_int16_t blockNo);

  • int findFreeBlockDMAP(uint32_t* freeBlock);

FAT

File-Allocation-Table (FAT)

Methoden:

  • void readFAT(Rückgabeparameter);

  • void writeFAT();

Root

Root

Methoden:

  • void readRoot(Rückgabeparameter);

  • void writeRoot();

Daten

Datenbereich