Betriebssysteme // Kapitel 11: Dateisysteme
Warum ist die Verwaltung von Dateien als 'Verkettete Liste' (ohne FAT) ineffizient?
Der wahlfreie Zugriff (Random Access) ist extrem langsam, da man um zu Byte X zu kommen, alle vorherigen Blöcke lesen muss. Zudem sind die Zeiger in den Datenblöcken verteilt.
Wie löst die FAT (File Allocation Table) das Performance-Problem der verketteten Liste?
Sie zieht alle Verknüpfungen aus den Datenblöcken heraus in eine zentrale Tabelle im RAM. Dadurch kann man der Kette von Blöcken schnell im Speicher folgen, ohne auf die Festplatte zugreifen zu müssen.
Was speichert ein Inode (Index-Node)?
Metadaten der Datei: Besitzer, Rechte, Zeitstempel, Größe und die Adressen der Datenblöcke. Der Dateiname steht NICHT im Inode, sondern im Verzeichnis.
Welches Problem haben sehr große Verzeichnisse bei einfachen Dateisystemen und wie wird es gelöst?
Die lineare Suche nach Dateinamen dauert O(n). Moderne Systeme nutzen B-Bäume oder Hash-Maps (wie H-Trees), um die Suche auf O(log n) oder O(1) zu beschleunigen.
Warum ist die 'kontinuierliche Speicherung' (Contiguous Allocation) von Dateien trotz ihrer Geschwindigkeit in modernen Systemen unpraktisch?
Weil beim Erstellen einer Datei die Endgröße oft nicht bekannt ist. Wenn die Datei wächst und kein angrenzender Platz frei ist, müsste die komplette Datei an einen neuen Ort kopiert werden (externe Fragmentierung).
Was ist der fundamentale Unterschied zwischen einem Hard-Link und einem Soft-Link (Symlink)?
Ein Hard-Link zeigt direkt auf den Inode der Datei (die Datei hat technisch mehrere Namen). Ein Soft-Link ist eine eigene kleine Datei, die lediglich den Pfad zur Zieldatei als Textinhalt speichert.
Warum müssen Operationen im Journaling 'idempotent' sein?
Damit das Journal bei einem Absturz während des Replays (Wiederherstellung) sicher mehrfach abgespielt werden kann, ohne das Dateisystem zu beschädigen (z.B. ist 'Setze Wert auf 5' idempotent, 'Addiere 1' nicht).
Welches Problem der verketteten Liste löst die FAT (File Allocation Table), obwohl sie prinzipiell auch eine verkettete Struktur nutzt?
Die Verkettungs-Zeiger liegen nicht verstreut auf der Festplatte (in den Datenblöcken), sondern zentral in einer Tabelle im RAM. Das ermöglicht schnelles Traversieren ohne ständige Festplattenzugriffe.