149d9e72dbf426a5f244ae46da7b51310aa1beaa
sistemi/s02/filesystem.md
| ... | ... | @@ -0,0 +1,85 @@ |
| 1 | +--- |
|
| 2 | +Title: Filesystem |
|
| 3 | +--- |
|
| 4 | + |
|
| 5 | +## Visione utente |
|
| 6 | + |
|
| 7 | +I computer possono usare diversi media per registrare in modo permanente le info (es. hdds, nastri, floppy ecc) |
|
| 8 | +Il file system si occupa di astrarre la complessita' di utilizzo dei diversi media proponendo un interfaccia per i sistemi di memorizzazione: |
|
| 9 | + |
|
| 10 | +- comune |
|
| 11 | +- efficiente |
|
| 12 | +- conveniente da usare |
|
| 13 | + |
|
| 14 | +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) |
|
| 15 | + |
|
| 16 | +### File |
|
| 17 | + |
|
| 18 | +Il concetto di file: |
|
| 19 | + |
|
| 20 | +- e' l'entita' atomica di assegnazione/gestion della mem secondaria |
|
| 21 | +- e'una collezione di info correlate |
|
| 22 | +- fornisce una vista logica uniforme ad info correlate |
|
| 23 | + |
|
| 24 | +Attributi dei file: |
|
| 25 | + |
|
| 26 | +- Nome: stringa di caratteri che permette agli utenti e al so di identificare un particolare file |
|
| 27 | +- Tipo: necessario in alcuni sistemi per indentificare il tipo di file |
|
| 28 | +- Locazione e dimensione: info sul posizionamento del file in mem secondaria |
|
| 29 | +- Data e ora: info relative al tempo di creazione ed ultima modifica del file |
|
| 30 | +- Info sulla proprieta': utenti, gruppi. |
|
| 31 | +- Attributi di protezione: info di accesso per verificare chi e' autorizzato a eseguire op sui file |
|
| 32 | +- Altro: flag, info di locking, ecc |
|
| 33 | + |
|
| 34 | +#### Tipi di file |
|
| 35 | + |
|
| 36 | +A seconda della struttura interna: |
|
| 37 | + |
|
| 38 | +- senza formato (stringa di byte): file testo |
|
| 39 | +- con formato: file di record, file di database, a.out |
|
| 40 | + |
|
| 41 | +A seconda del contenuto: |
|
| 42 | + |
|
| 43 | +- ascii/binario |
|
| 44 | +- sorgente, oggetto |
|
| 45 | +- eseguibile |
|
| 46 | + |
|
| 47 | +Alcuni S.O. supportano e riconoscono diversi tipi di file |
|
| 48 | +Esistono tre tecniche principali per identificare il tipo di un file: |
|
| 49 | + |
|
| 50 | +- meccanismo delle estensioni |
|
| 51 | +- utilizzo di un attributo "tipo" associato al file nella directory |
|
| 52 | +- magic number |
|
| 53 | + |
|
| 54 | + |
|
| 55 | + |
|
| 56 | + |
|
| 57 | + |
|
| 58 | +I file possono essere strutturati in molti modi: |
|
| 59 | + |
|
| 60 | +1. seq di byte |
|
| 61 | +2. seq di record logici |
|
| 62 | +3. file indicizzati (struttura ad albero) |
|
| 63 | + |
|
| 64 | + |
|
| 65 | + |
|
| 66 | +Nota: la struttura piu comune e' la 1. I DB usano strutture 2. La 3. serve per gestire grandi moli di dati. |
|
| 67 | + |
|
| 68 | +I sistemi operativi possono attuare diverse scelte nella gestione della struttura dei file: |
|
| 69 | + |
|
| 70 | +- scelta minimale |
|
| 71 | + - i file sono considerati semplici stringhe di byte, a parte i file eseguibili il cui formato è dettato dal s.o. |
|
| 72 | + - e.g., UNIX e MS-DOS |
|
| 73 | +- parte strutturata/parte a scelta dell'utente |
|
| 74 | + - e.g. Macintosh (resource fork / data fork) |
|
| 75 | +- diversi tipi di file predefiniti |
|
| 76 | + - e.g., VMS, MVS |
|
| 77 | + E’ un trade-off tra: |
|
| 78 | +- 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 |
|
| 79 | +- meno formati: codice di sistema più snello |
|
| 80 | + |
|
| 81 | +#### Metodi di accesso |
|
| 82 | + |
|
| 83 | +- sequenziale (read write) |
|
| 84 | +- ad accesso diretto: read pos, write pos (oppure op di seek) |
|
| 85 | +- indicizzato: read key, write key (tipico dei DB) |