Sistemi Operativi

Assegnazione indicizzata

L’ assegnazione indicizzata è uno dei metodi principali per l’ assegnazione dello spazio di un disco. L’ assegnazione concatenata non è in grado di sostenere un efficiente accesso diretto, poiché i puntatori ai blocchi sono sparsi per tutto il disco. L’ assegnazione indicizzata risolve questo problema, raggruppando tutti i puntatori in una sola locazione: il blocco indice. Ogni file ha il proprio blocco indice (i-nodes in unix) che si tratta di un vettore d’ indirizzi di blocchi del disco. L’ i-esimo elemento del blocco indice punta all’ i-esimo elemento del blocco del file. Gli i-nodes sono quindi dei record associati ad ogni file , e contengono gli attributi del file e le informazioni necessarie a reperire i blocchi del file. L’ i-node deve essere caricato in memoria solo quando il file deve essere usato e non deve risiedervi permanentemente. La tabella degli i-nodes dei file in uso è una struttura generalmente molto più piccola della FAT. La tecnica degli i-node permette di dimensionare lo spazio della tabella in funzione del massimo numero di file aperti e non della dimensione del disco. Si solleva a questo punto la questione della dimensione dell’ i-nodes. Ogni file deve avere un blocco indice, quindi è auspicabile che questo sia quanto più piccolo è possibile, ma se un file è grande non può disporre di un numero sufficiente di puntatori, quindi è necessario disporre di un meccanismo per gestire questa situazione. Per trattare “file grandi” gli i-nodes supportano quattro tecniche di indicizzazione: diretta, indiretta, indiretta doppia e indiretta tripla. L’efficienza diminuisce nel caso di file di grandi dimensioni!!

Nell’ indicizzazione diretta un blocco indice è formato normalmente di un solo blocco indice contenente un piccolo numero di puntatori. L’ indicizzazione indiretta invece consiste nell’ impiego di un blocco indice di primo livello che punta a blocchi indice di secondo livello ecc….che a loro volta puntano ai blocchi dei file.






















































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.