![]() | ![]() |
|
|
FILE SYSTEM - Allocazione dei file
I file sono implementati dal sistema operativo con tecniche diverse per ciò che riguarda la loro memorizzazione sul disco .
I metodi maggiormente utilizzati sono :
allocazione contigua
allocazione non contigua 252j95c
L'allocazione non contigua può essere a sua volta
concatenata
indicizzata
In ogni caso i file sono memorizzati a partire dall'inizio di un blocco e occupano quindi un numero intero di blocchi.
Si ricordi che gli indirizzi su disco crescono attraverso i blocchi di una traccia, poi attraverso le tracce di un cilindro, e infine dal cilindro 0 al cilindro n-1 (se n sono i cilindri del disco).
Allocazione contigua
Si assegna ad un file un'area contigua sulla memoria di massa, ossia un insieme di blocchi che hanno indirizzi contigui.
Il file system gestisce una tabella che per ogni file, specifica il nome, l'indirizzo di inizio e la lunghezza (ad esempio in numero di blocchi). Quando viene creato un file da allocare in modo contiguo, deve essere dichiarata anche la sua lunghezza in modo che il file system possa creare su disco un'area contigua sufficiente a contenerlo. Quando un file viene cancellato, l'area che esso occupava diventa libera ma può esservi allocato un nuovo file solo se quest'ultimo ha dimensioni tali da potervi essere contenuto.
Possiamo avere allora la situazione in cui ci sono tante aree libere, nessuna sufficiente per l'allocazione del nuovo file, mentre globalmente ci sarebbe abbastanza spazio libero.
Ritroviamo il problema della frammentazione, in questo caso "esterna", che può essere eliminato con un'operazione di compattamento.
Il compattamento del disco può essere realizzato con particolari comandi che copiano i file uno di seguito all'altro (Defrag). Questo tipo di allocazione rende particolarmente semplice il reperimento di un record sia nell'accesso sequenziale che in quello casuale.
Allocazione non contigua - Lista concatenata dei blocchi di un file
In questo caso il file viene memorizzato in blocchi sparsi non necessariamente contigui, e la contiguità logica del file viene mantenuta tramite dei puntatori che collegano tra loro i blocchi occupati dal file. In ogni blocco è memorizzato il puntatore al blocco successivo.
Con un'allocazione di questo tipo non è necessario dichiarare la lunghezza di un file
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025