Descrizione del sistema di archiviazione
Ogni dispositivo che permette la memorizzazione dei file contiene anche un descrittore del sistema di archiviazione (una struttura di dati con le informazioni sul modo in cui è organizzata la memorizzazione dei dati sul dispositivo).
Le informazioni contenute nel descrittore del sistema di archiviazione dipendono dal tipo di dispositivo e dalla tecnica di allocazione usata.
Il descrittore del sistema di archiviazione su disco può contenere:
- l’etichetta del disco,
- il valore della lunghezza massima dei file che si possono memorizzare,
- informazioni sulla tabella dei descrittori dei file (come inizio e dimensione della tabella e inizio e dimensione della mappa dei descrittori),
- informazioni sulle tabelle usate per l’ assegnazione dei blocchi ai file: (inizio FAT e lunghezza FAT o inizio mappa blocchi e lunghezza mappa blocchi),
- l’indicazione del primo blocco utilizzato per i file e il numero di blocchi presenti,
- informazioni di identificazione del disco su cui si trova il sistema di archiviazione.
Dopo il descrittore del sistema di archiviazione si trovano:
- la mappa dei descrittori di file con lo stato di assegnazione dei descrittori di file,
- la tabella dei descrittori,
- la FAT con le informazioni sull’assegnazione dei blocchi ai file o la mappa dei blocchi che indica la disponibilità dei blocchi (in tal caso l’assegnazione dei blocchi è registrata nei descrittori dei file).
Al termine delle strutture di dati del file system si trovano i blocchi disponibili per i file.
Il sistema di archiviazione sul nastro è molto più semplice; il nastro contiene una etichetta di identificazione del nastro e per ogni file una etichetta di identificazione del file. Se un file supera le dimensioni del nastro, il nastro termina con una etichetta EOV che segnala la fine del volume.
Allocazione dello spazio su disco
L’allocazione dello spazio su disco avviene per blocchi; in genere si usano metodi di allocazione in cui si utilizzano blocchi non contigui.
Bisogna utilizzare delle informazioni aggiuntive per conoscere quali blocchi sono assegnati ad ogni file. Le tecniche principali sono:
- blocchi concatenati: i blocchi del file sono collegati tra loro in una lista concatenata, cioè in ogni blocco è presente un puntatore al blocco successivo; l’accesso ai blocchi può avvenire solo in modo sequenziale scorrendo la catena di puntatori, inoltre si hanno molti accessi al disco;
- tabella di puntatori (o FAT): si usa una tabella formata da tanti elementi quanti sono i blocchi del disco; ogni elemento può contenere un puntatore al blocco successivo se il blocco appartiene a un file, o un’indicazione che il blocco è libero; il numero del primo blocco del file viene memorizzato nel descrittore del file e consente l’accesso al resto del file; la catena di puntatori viene scorsa solo all’interno della tabella, che può essere copiata in memoria centrale per rendere più veloce l’accesso;
- mappa dei blocchi: si usa una tabella per ogni file, contenente la sequenza dei puntatori ai blocchi del file; la tabella può essere memorizzata nel descrittore del file ed essere caricata in memoria centrale quando il file viene aperto.
Ci deve sempre essere anche il modo di individuare i blocchi liberi da assegnare a un nuovo file. Possono essere usate varie modalità:
- tutti i blocchi liberi sono concatenati in una lista dello spazio libero;
- con la tabella di puntatori i blocchi liberi possono essere collegati in una lista di puntatori all’interno della tabella; la ricerca dei blocchi liberi viene fatta scandendo la tabella e rende semplice la ricerca di blocchi liberi con requisiti di vicinanza;
- mappa dei blocchi liberi; si può avere un puntatore al primo blocco di un’area libera seguito dal numero di blocchi liberi contigui;
- bit map: è un modo molto efficiente; si usa una sequenza di bit, uno per blocco, che indica se il blocco corrispondente è libero o occupato.
Tabella dei descrittori e directory
Ogni file è descritto da un descrittore in una tabella. Ogni descrittore contiene le informazioni necessarie per la gestione del file: nome del file e tipo di organizzazione, lunghezza del record e numero di record, informazioni per l’accesso ai record (indirizzo del primo blocco o elenco dei blocchi occupati ecc.), informazioni relative alla protezione (come il tipo di accesso consentito), data di creazione del file, data dell’ultima modifica e così via.
L’elenco dei file presenti sul disco è mantenuto nella directory. La directory per ogni file può contenere direttamente il descrittore del file oppure può contenere soltanto la posizione corrispondente del descrittore nella tabella dei descrittori, separata. Separare directory e tabella dei descrittori permette di gestire più facilmente i collegamenti ai file: si possono avere collegamenti allo stesso file in directory diverse utilizzando un unico descrittore comune con tutte le informazioni. Di solito la directory è organizzata gerarchicamente in una struttura ad albero.