Un problema fondamentale nella realizzazione di un f.s. e’ la definizione di algoritmi e strutture dati per far corrispondere il file system logico (file, directory,…) al file system fisico (dispositivi fisici della memoria secondaria)
Dipende dal s.o. e dal file system
In generale una partizione e’ divisa in 4 aree distinte
Area di bootstrap
Area dei file descriptor
Area di controllo
Area dei dati
Problema: come allocare lo spazio disco ai file in modo da avere spreco minimo di memoria e rapidità di accesso?
Il metodo di allocazione dello spazio su disco descrive come i blocchi fisici del disco vengono allocati ai file:
Ogni file occupa un insieme di blocchi contigui.
Per reperire il file occorrono solo la locazione iniziale e la lunghezza
Principali problemi:
I blocchi possono essere sparsi ovunque nel disco.
Ciascun file è una lista di blocchi collegati da puntatori.
Principali problemi:
Prima versione della FAT dell’MS-DOS 1.0 (FAT12) usava 12 bit per l’indirizzamento dei blocchi.
Colleziona tutti i puntatori in un unico blocco indice.
La directory contiene l’indirizzo del blocco indice
Principali problemi:
se il file ha dimensione maggiore di 256Kbyte e’ possibile concatenare i blocchi indice.
Nel Unix File System, l’area dei descrittori (chiamata i-list: index list) contiene una tabella di descrittori chiamati i-node (index node)
Ogni i-node e’ accessibile attraverso l’indice della tabella (i-number)
Un i-node contiene gli attributi di un file
Tra gli attributi vi sono gli indirizzi dei blocchi
L’area di controllo (superblocco) di una partizione contiene le informazioni sulla posizione dei blocchi liberi
Tre possibili gestioni:
Vettore di bit (n blocchi)
Vantaggi: Buone prestazioni se il vettore è conservato in memoria centrale.
Svantaggi: per trovare un blocco libero puo’ essere necessario esaminare gran parte della bitmap
Lista di blocchi liberi legati da puntatori
Puntatori alla testa e alla coda sono memorizzati nel superblocco
Raggruppamento: memorizzazione degli indirizzi di n blocchi liberi sul primo di tali blocchi. Sull’ultimo sono indirizzati altri blocchi, etc.
Per migliorare le prestazioni, i blocchi piu’ usati sono tenuti in memoria centrale (cache del disco)
Quante volte la cache viene sincronizzata col disco?
Estrarre un dischetto sotto MS-DOS non è critico, con UNIX occorre smontare il dispositivo
Uso tipico dei file:
Se si verifica un crash:
Il problema della consistenza e’ particolarmente rilevante per “blocchi critici” (blocchi che contengono FAT, i-node, bitmap,…)
Due possibili soluzioni
Due tabelle used e free che contengono un elemento per ogni blocco dati del sistema
Il blocco e’ assegnato a due file. Gravi problemi di coerenza. Soluzione: si pone used[i]=1 ma un file risultera’ corrotto.
Basati su un giornale delle annotazioni
In caso di caduta del sistema durante la modifica, le annotazioni nel giornale permettono di ripristinare la coerenza del file fystem
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
14. Gli algoritmi di avvicendamento delle pagine
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.