| Title |
|---|
| Filesystem |
Visione utente
I computer possono usare diversi media per registrare in modo permanente le info (es. hdds, nastri, floppy ecc) Il file system si occupa di astrarre la complessita' di utilizzo dei diversi media proponendo un interfaccia per i sistemi di memorizzazione:
- comune
- efficiente
- conveniente da usare
Dal punto di vista dell'utente un fs e' composto da due elementi: file (unita' logica di memorizzazione) e directory (servono per organizzare i file che compongono un fs)
File
Il concetto di file:
- e' l'entita' atomica di assegnazione/gestion della mem secondaria
- e'una collezione di info correlate
- fornisce una vista logica uniforme ad info correlate
Attributi dei file:
- Nome: stringa di caratteri che permette agli utenti e al so di identificare un particolare file
- Tipo: necessario in alcuni sistemi per indentificare il tipo di file
- Locazione e dimensione: info sul posizionamento del file in mem secondaria
- Data e ora: info relative al tempo di creazione ed ultima modifica del file
- Info sulla proprieta': utenti, gruppi.
- Attributi di protezione: info di accesso per verificare chi e' autorizzato a eseguire op sui file
- Altro: flag, info di locking, ecc
Tipi di file
A seconda della struttura interna:
- senza formato (stringa di byte): file testo
- con formato: file di record, file di database, a.out
A seconda del contenuto:
- ascii/binario
- sorgente, oggetto
- eseguibile
Alcuni S.O. supportano e riconoscono diversi tipi di file Esistono tre tecniche principali per identificare il tipo di un file:
- meccanismo delle estensioni
- utilizzo di un attributo "tipo" associato al file nella directory
- magic number


I file possono essere strutturati in molti modi:
- seq di byte
- seq di record logici
- file indicizzati (struttura ad albero)

Nota: la struttura piu comune e' la 1. I DB usano strutture 2. La 3. serve per gestire grandi moli di dati.
I sistemi operativi possono attuare diverse scelte nella gestione della struttura dei file:
- scelta minimale
- i file sono considerati semplici stringhe di byte, a parte i file eseguibili il cui formato è dettato dal s.o.
- e.g., UNIX e MS-DOS
- parte strutturata/parte a scelta dell'utente
- e.g. Macintosh (resource fork / data fork)
- diversi tipi di file predefiniti
- e.g., VMS, MVS E’ un trade-off tra:
- più formati: codice di sistema più ingombrante, incompatibilità di programmi (accesso a file di formato differente) MA gestione efficiente e non duplicata per i formati speciali
- meno formati: codice di sistema più snello
Metodi di accesso
- sequenziale (read write)
- ad accesso diretto: read pos, write pos (oppure op di seek)
- indicizzato: read key, write key (tipico dei DB)