wake-up-neo.com

Blockgröße des Dateisystems

Welche Bedeutung hat die Blockgröße des Dateisystems? Wenn die Blockgröße meines Dateisystems auf 8 KB festgelegt ist, bedeutet dies, dass alle Lese-/Schreibvorgänge bei 8 KB ausgeführt werden? Wenn meine Anwendung also 16 Bytes bei Offset 4097 lesen möchte, wird ein 4K-Block ab Offset 4096 gelesen?

Wie funktionieren Schreibvorgänge in diesem Fall? Angenommen, ich möchte 64 Bytes schreiben.

18
user880946

Du hast recht. Die Blockgröße ist die Arbeitseinheit für das Dateisystem. Jedes Lesen und Schreiben erfolgt in ganzen Vielfachen der Blockgröße.

Die Blockgröße ist auch die kleinste Größe auf der Festplatte, die eine Datei haben kann. Wenn Sie eine Blockgröße von 16 Byte haben, belegt eine Datei mit einer Größe von 16 Byte einen vollständigen Block auf der Festplatte.

Das Buch "Praktisches Design von Dateisystemen" lautet:

Block: Die kleinste Einheit, die von einem Platten- oder Dateisystem beschrieben werden kann. Alles, was ein Dateisystem tut, besteht aus Operationen, die an Blöcken ausgeführt werden. Ein Dateisystemblock ist immer mindestens genauso groß (in ganzzahligen Vielfachen) wie der Plattenblock.

19
dmeister

Wenn Sie mit Dateien in der Programmierung arbeiten müssen, sollten Sie normalerweise die Stream-Abstraktion verwenden. E/A-Operationen über Code werden häufig in Streams gelesen und geschrieben. Das Lesen und Schreiben von und in Streams kann gepuffert werden, sodass Dateiblöcke gelesen oder geschrieben werden können.

Die Blockgröße für fs bezieht sich auf die Zuordnung der Plattenoberfläche. Minor die Größe des einzelnen Blocks Major die Anzahl der Blöcke (und damit die Elemente in der Tabelle, die Informationen zur Zuweisung von Dateien enthalten).

So können Betriebssysteme Dateien auf der Festplatte diskret basierend auf der Blockgröße zuordnen und haben eine kleinere "Zuordnung von Dateien". Wie ich weiß, wirkt sich dies nicht auf die Stream-Abstraktion in APIs der Programmiersprache aus.

0
Andrea Colleoni