2017-09-25 10 views
0

Frage:Was meinst du mit Blocknummern in einem Inode?

Angenommen, ein I-Knoten kann 7 direkte Blockzeiger und einen einfach-indirekten Blockzeiger enthalten. Wenn die Blockgröße 4 KB beträgt und 32-Bit-Blocknummern vorhanden sind, welche Datei unterstützt das System am meisten?

Antwort:

7 direkte Blöcke, 4KB Größe

Indirect Blockpunkte auf 4K/4 = 1024 Blöcken, die jeweils 4 kB-Block in der Größe

1031 * 4 K = 4222976B = 4124KB ~ 4,03 MB

Typischerweise heutzutage Inodes haben:

12 direkte Blockzeiger

1 einzeln indirekte Zeiger

1 doppelt indirekte Zeiger

1 dreifach indirekten Zeiger

< < < < < < < < < < < < < < < < < < Mein Verständnis >>>> >>>>>>>>>>>>

Ich verstehe, dass ein Inode hat 7 direkte und 1 indirekte Blockzeiger und jeder Blockzeiger hat 4kb size.and wenn es heißt, dass es 32-Bit-Blocknummer sind, bedeutet das, dass es mehr 1024 Block pointes gibt?

+0

Auf welchem ​​Dateisystemtyp? zfs, extfs, ufs usw.? –

+0

Unix filesystes – Raveel

+2

@Raveel Alle von Alexandre erwähnten FS sind Unix-Dateisysteme. – glglgl

Antwort

0

Wenn die Blockgröße 4 kB beträgt und Sie 32 Bit (4 Byte) Blocknummern haben, können Sie 1024 solche Blocknummern in einem Block haben. (Ich denke, das ist der Teil, den Sie nicht verstanden haben.) Das bedeutet: Jede der 32-Bit-Zahlen verwendet 4 Bytes des Blocks, also 1024 dieser Zahlen verwenden 4096 Bytes = genau 1 Block. So können 1024 Blocknummern in einem Block gespeichert werden.

Aber im Inode gibt es sieben direkte Blöcke, die (normalerweise) zuerst verwendet werden. Alle Dateien mit einer Größe von < 28 kiB verwenden nur die direkten Blöcke.

Sobald die direkten Blöcke aufgebraucht sind, wird ein Block zugewiesen und diesem Inode als eine Liste von Blocknummern zugewiesen, die gespeichert werden können.

Verwandte Themen