Struttura dei File! Unitaʼ logica di memorizzazione! Collezione di informazioni correlate! File control block (inode) struttura dati per le informazioni principali riguardanti un file! Fle system! risiede in memoria secondaria (dischi)! Organizzazione a livelli! 11.2! Silberschatz, Galvin and Gagne 2005! 11.3! Silberschatz, Galvin and Gagne 2005! 11.4! Silberschatz, Galvin and Gagne 2005! 4 1!
11.5! Silberschatz, Galvin and Gagne 2005! 5 11.6! Silberschatz, Galvin and Gagne 2005! Tabella dei volumi/dispositivi montati! Struttura delle directory! Dati relativi a directory cui si eʼ fatto accesso di recente! Tabella dei file aperti di sistema! Control block per ciascun file aperto! Tabella dei file aperti per processo! 11.7! Silberschatz, Galvin and Gagne 2005! 11.8! Silberschatz, Galvin and Gagne 2005! 2!
Lista Lineare di nomi di file con puntatori ai blocchi dei dati.! Semplice da programmare! Lenta! Tabella Hash lista lineare con struttura dati hash.! Basso tempo di ricerca! Problema delle collisioni due o più nomi di file hashed nella stessa locazione! Taglia fissa! Per metodo di allocazione si intende il modo in cui i blocchi del disco sono allocati ai file:! Allocazione contigua! Allocazione concatenata! Allocazione indicizzata! 11.9! Silberschatz, Galvin and Gagne 2005! 11.10! Silberschatz, Galvin and Gagne 2005! Ogni file occupa un insieme di blocchi del disco contigui! Funzione di mappatura logico/fisico! Semplice solo la locazione (blocco #) iniziale e la lunghezza (numero di blocchi) devono essere memorizzate Accesso diretto LA/512! Q! R! Spreco di spazio (problemi con lʼallocazione dinamica) Non è possibile aumentare la dimensione di un file! Blocco desiderato = Q + starting address Scostamento all interno del blocco = R 11.11! Silberschatz, Galvin and Gagne 2005! 11.12! Silberschatz, Galvin and Gagne 2005! 3!
Schema modificato di allocazione contigua! I blocchi sono allocati a gruppi detti estensioni (extent)! Unʼestensione è una collezione di blocchi contigui! Un file consiste di una o più estensioni, non necessariamente contigue.! 11.13! Silberschatz, Galvin and Gagne 2005! 11.14! Silberschatz, Galvin and Gagne 2005! Ogni file è un lista concatenata di blocchi! tali blocchi possono essere distribuiti ovunque sul disco.! blocco =! puntatore! Semplice solo i blocchi iniziale e finale vanno memorizzati! Sistema di gestione dello spazio libero nessuno spreco! Accesso diretto/random difficile da implementare! Sistema di traduzione logico/fisico! Q! LA/511! R! Q: numero del blocco nella lista concatenata di blocchi per il file! R: Scostamento nel blocco!! Alternativa: File-allocation table (FAT)!!! metodo di allocazione dello spazio usato da MS-DOS e OS/2.! 11.15! Silberschatz, Galvin and Gagne 2005! 11.16! Silberschatz, Galvin and Gagne 2005! 4!
11.17! Silberschatz, Galvin and Gagne 2005! 11.18! Silberschatz, Galvin and Gagne 2005! Mantiene insieme tutti i puntatori ai blocchi in un blocco indice.! Vista logica:! index table! 11.19! Silberschatz, Galvin and Gagne 2005! 11.20! Silberschatz, Galvin and Gagne 2005! 5!
Necessita di una tabella indice! Possibilità di accesso diretto/random! Assenza di frammentazione esterna, ma possibile overhead nel blocco indice.! Per un file di taglia massima pari a 256K parole e blocchi di taglia pari a 512 words, cʼè bisogno di un solo blocco per mantenere lʼindice.! LA/512! Q! R! Q = scostamento nella tabella indice! R = scostamento nel blocco! Per un file di taglia illimitata e dimensione dei blocchi pari a 512:! Tabella indice implementata con lista concatenata (taglia illimitata).! LA / (512 x 511)! Q 1 = blocco della tabella indice! R 1 usato come segue:! R 1 / 512! Q 2! R 2! Q 1! R 1! Q 2 = scostamento nel blocco della tabella indice! R 2 scostamento nel blocco del file:! 11.21! Silberschatz, Galvin and Gagne 2005! 11.22! Silberschatz, Galvin and Gagne 2005! Indice a 2 livelli (taglia massima di un file 512 3 )! LA / (512 x 512)! Q 1 = scostamento nellʼindice esterno! R 1 usato come segue:! Q 2! R 1 / 512! R 2! Q 1! R 1!! outer-index! Q 2 = scostamento nel blocco della tavola indice! R 2 scostamento nel blocco del file:! index table! file! 11.23! Silberschatz, Galvin and Gagne 2005! 11.24! Silberschatz, Galvin and Gagne 2005! 6!
Bit vector (n blocchi)! 0! 1! 2! n-1!!! bit[i] =! 1 block[i] free! 0 block[i] occupied! Calcolo dellʼindice del primo blocco libero! (number of bits per word) *! (number of 0-value words) +! offset of first 1 bit! 11.25! Silberschatz, Galvin and Gagne 2005! 11.26! Silberschatz, Galvin and Gagne 2005! Lo schema a Bit map può richiedere spazio eccessivo! Es.:!!!block size = 2 12 bytes!!!disk size = 2 30 bytes (1 gigabyte)!!!n = 2 30 /2 12 = 2 18 bits (or 32K bytes)! È facile cercare spazi di memoria contigua! Lista concatenata (free list)! Difficile trovare spazi di memoria contigua! Ma non cʼè spreco di spazio! Raggruppamento! Un blocco contiene gli indirizzi di n blocchi liberi! Conteggio! Indirizzo del primo libero e del numero di liberi consecutivi! Problemi! Bit map! Consistenza tra la copia sul disco e quella in memoria! block[i] : bit[i] = 1 in memoria e bit[i] = 0 su disco! 11.27! Silberschatz, Galvin and Gagne 2005! 11.28! Silberschatz, Galvin and Gagne 2005! 7!
Lʼefficienza dipende da:! Algoritmi di allocazione del disco e delle directory! Informazioni mantenute negli elementi delle directory Performance! disk cache! free-behind and read-ahead tecniche di ottimizzazione degli accessi! Uso di sezioni di memoria per implementare dischi virtuali o dischi ram! 11.29! Silberschatz, Galvin and Gagne 2005! 11.30! Silberschatz, Galvin and Gagne 2005! 8!