<< 9.4 Dateischutz | Index | 9.6 NTFS-Dateisystem >>


9.5 Dateisystem-Implementierung

  • Datei-Deskriptor pro Datei
    • Linux: File Control Block (FCB)
    • Windows/NTFS: MFT-Eintrag
    • Enthält u. a. Dateiname, Dateigröße, Plattenblöcke mit den Daten bzw. Verweise auf Listen mit diesen Blöcken, ACL oder Hinweis darauf
  • Inhaltsverzeichnis des Wurzelverzeichnisses (Windows/NTFS: MFT, Unix: Superblock) steht an definierter Stelle in einer Partition
  • Freispeicherverwaltung
    1. Verkettete Liste freier Blöcke
    2. Bitmap
  • Verwaltung der Datenblöcke einer Datei
    1. Datei muss aus einer Folge zusammenhängender Blöcke bestehen
      • Einfach zu implementieren
      • Effizient zu lesen
      • Ineffiziente Ausnutzung des Speichers
      • Dateien können nicht beliebig wachsen bzw. müssen ggf. verschoben werden
    2. Verkettete Liste: Jeder Block enthält einen Hinweis auf den nächsten Block
      • Dateien können beliebig wachsen
      • Bei wahlfreiem Zugriff müssen viele Blöcke gelesen werden, um Position zu finden
      • Blockgröße ist durch den Speicherplatz für den Zeiger kein Vielfaches der Seitengröße mehr
    3. File Allocation Table (FAT): Tabelle enthält einen Eintrag pro Plattenblock, der auf den nächsten Block der Datei zeigt
      • Effizientere Suche einer Dateiposition, da Tabelle im Hauptspeicher gehalten wird und nicht mehr viele Blöcke von der Platte gelesen werden müssen
      • Tabelle belegt viel Speicherplatz im Hauptspeicher
    4. Index-Block pro Datei (I-Node?): Tabelle pro Datei enthält Liste der zugehörigen Blöcke, bei großen Dateien über Indirektionsstufen
      • Effizienter wahlfreier Zugriff (i-ter Block kann leicht bestimmt werden)
  • Implementierung von Verzeichnissen
    • Verzeichnisse sind spezielle Dateien, die (neben Attributen) wiederrum Dateilisten enthalten
    • Einträge der Dateiliste enthalten Dateinamen und Hinweis auf den Speicherort (Anfangsadresse, I-Node?, etc.) der Datei (oder des Verzeichnisses)
    • Traversierung des Verzeichnisbaumes bis Datei gefunden wurde
    • Wurzelverzeichnis steht an fester Stelle (in Superblock bzw. MFT vermerkt)

Nach oben

Zuletzt geändert am 14 März 2005 20:46 Uhr von chrschn