Perché i filesystem leggono e scrivono in blocchi?

1

Ho letto che i file system solitamente accedono ai dati in blocchi, la cui dimensione è un multiplo integrale della dimensione del blocco del disco. Perché non leggono i singoli blocchi del disco?

    
posta Ishan 13.03.2015 - 10:32
fonte

2 risposte

6

Poiché la lettura di più blocchi consente al sistema operativo di memorizzare nella cache i blocchi successivi e di evitare la latenza quando l'applicazione alla fine ne ha bisogno.

Il più grande rallentamento nell'accesso alle unità disco rotanti (HDD e disco ottico) è il tempo di ricerca, letteralmente la testina di lettura si sposta dove si trova la traccia con il blocco.

Questo è alleviato con lo stato solido ma la lettura dei blocchi adiacenti è ancora più veloce della lettura fuori uso.

    
risposta data 13.03.2015 - 10:38
fonte
9

La velocità di lettura e il caching sono un fattore importante, ma non è l'unico fattore, e forse nemmeno il fattore principale nella selezione della dimensione del blocco di un filesystem. Ogni blocco sul tuo filesystem ha un sovraccarico associato ad esso. Il filesystem deve tracciare quali blocchi sono liberi, quali blocchi appartengono a quali file, ecc. Questo overhead deve essere memorizzato sul disco da qualche parte, il che porta via lo spazio utile che memorizza i dati.

Se rendi i blocchi del filesystem più grandi, ciò riduce il tuo overhead e ti dà più spazio utile. Il trade off è il rischio di più spazio allentato nell'ultimo blocco di un file, che toglie spazio utile. Alcuni filesystem mitigano questo rischio usando una dimensione di blocco variabile, o tramite blocco di suballocazione . Ciò viene fornito con i propri overhead e tradeoff. Inoltre, i blocchi troppo grandi potrebbero non essere più adatti alla cache di una CPU.

Quindi la domanda diventa: perché i produttori di dischi non aumentano le dimensioni dei blocchi per adattarsi meglio alle dimensioni dei blocchi del filesystem? Due ragioni principali. Uno è che i produttori di dischi non sanno quale tipo di filesystem verrà eventualmente inserito. La dimensione di blocco ideale per un desktop con molti piccoli file è diversa da un server multimediale in una configurazione RAID che memorizza i film, ad esempio. La seconda ragione è che i difetti di fabbricazione e l'usura potrebbero rendere i blocchi contrassegnati come inutilizzabili, quindi è importante selezionare dimensioni del blocco del disco che massimizzino la quantità di spazio utile rimanente quando si verifica un difetto.

    
risposta data 13.03.2015 - 12:40
fonte

Leggi altre domande sui tag