CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

53
CEFRIEL CEFRIEL Consorzio per la Formazione e la Consorzio per la Formazione e la Ricerca Ricerca in Ingegneria dell’Informazione in Ingegneria dell’Informazione Politecnico Politecnico di Milano di Milano Il File System Il File System Master in Convergenza Master in Convergenza Docente: Docente: Carlo Brandolese Carlo Brandolese Politecnico di Milano Politecnico di Milano [email protected] [email protected] www.elet.polimi.it/~brandole www.elet.polimi.it/~brandole

Transcript of CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

Page 1: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione

PolitecnicoPolitecnicodi Milanodi Milano

Il File SystemIl File System

Master in ConvergenzaMaster in Convergenza

Docente:Docente:

Carlo BrandoleseCarlo Brandolese

Politecnico di MilanoPolitecnico di [email protected]@elet.polimi.it

www.elet.polimi.it/~brandolewww.elet.polimi.it/~brandole

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 22 - -

SommarioSommario

FileAttributiOperazioniStruttura

OrganizzazioneDirectoryProtezione

ImplementazioneAllocazioneGestione dello spazio liberoRealizzazione delle directory

Page 3: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 33 - -

FileFile

Il concetto di file offre una visone omogenea delle informazioni memorizzateLa visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzateUn file è costituito da:

Un insieme di informazioni omogeneeUn nome simbolicoUn insieme di attributi

Un file può contenere:DatiProgrammiRiferimenti

Page 4: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 44 - -

AttributiAttributi

Ad un file sono associati alcuni attributi che ne descrivono alcune caratteristiche

NomeE’ un nome simbolico con cui ci si riferisce ad esso

TipoDefinisce il tipo dei dati contenutiA volte il tipo viene definito attraverso una estensione del nome

LocazioneE’ un puntatore alla posizione fisica sul dispositivo

DimensioneDimensione dei dati espressa in bytes o blocchi

Page 5: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 55 - -

AttributiAttributi

ProtezioneDefinisce le politiche di gestione degli accessi

Ora e DataIndicano il momento della creazione, dell’ultima modifica o dell’ultimo accesso

ProprietarioIndica il nome dell’utente che ha creato il file

Page 6: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 66 - -

OperazioniOperazioni

Sui file possono essere compiute diverse operazioniLe operazioni vengono svolte attraverso delle richieste di servizi al sistema operativoLe operazioni più comuni sono elencate nel seguito

CreazioneViene aggiunto un nuovo file al file systemLe operazioni richieste sono:

Allocazione

Creazione del nuovo descrittore del file

Aggiunta del descrittore al file system

Page 7: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 77 - -

OperazioniOperazioni

ScritturaAggiunge dati a ad un file già creatoPer scrivere dati su un file è necessario fornire

Il nome del fileI dati da scrivere

Il SO mantiene un puntatore alla posizione corrente

LetturaPreleva dati da un file già creatoPer leggere dati da un file è necessario fornire

Il nome del fileUn puntatore ad zona di memoria destinazione dei dati

Il SO mantiene un puntatore alla posizione corrente

Page 8: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 88 - -

OperazioniOperazioni

RiposizionamentoSposta la posizione dei puntatori di lettura/scritturaLe operazioni permesse dipendono dal tipo di accessoSpesso viene mantenuto dal file system un solo puntatore valido per la lettura e per la scrittura

CancellazioneElimina un filePer eliminare un file è necessario specificarne il nomeLe operazioni necessarie sono:

Deallocazione dello spazio sul dispositivo fisicoAggiunta alla lista dello spazio disponibile sul discoRimozione del descrittore del file dal file system

Page 9: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 99 - -

OperazioniOperazioni

Tutte le operazioni richiedono l’accesso ad un file Il file system deve cercare il file sul dispositivo

Per rendere più efficiente la ricerca, il file system mantiene una tabella dei file in usoI file in uso si dicono aperti

Servizi forniti dal sistema operativoOpen

Sulla base del nome individua la posizione del file Copia il descrittore del file nella tabella dei file in uso

CloseSulla base del nome individua il descrittore del fileElimina il descrittore dalla tabella dei file in uso

Page 10: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1010 - -

StrutturaStruttura

Un file system haStruttura logica

I dati sono organizzati in unità logiche di lunghezza fissa ma arbitraria dette record

Nel sistema UNIX un record è un byte

Struttura fisicaI dati sono organizzati in unità fisiche di lunghezza fissa e dipendente dal dispositivo dette blocchi

Dimensioni tipiche dei blocchi di unità a disco rigido variano da 32 a 4096 bytes, tipicamente 512

La struttura logica e fisica sono differentiI dati vengono impaccati prima di essere memorizzati in modo da sfruttare al meglio il dispositivo

Page 11: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1111 - -

Struttura: EsempioStruttura: Esempio

Tale differenza, unitamente alla dimensione fissata dei blocchi provoca uno spreco di spazioSi consideri un file lungo 1350 byte ed un disco con blocchi da 512 bytes

0 512 1024 1350 1536

Questa parte del blocco (186 byte) viene sprecata e non è utilizzabile da altri file

Questo fenomeno è detto frammentazione interna

Page 12: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1212 - -

Struttura: AccessoStruttura: Accesso

Accesso sequenzialeI dati sono letti/scritti in sequenzaLe operazioni disponibili per tali file sono

Lettura e scritturaPosizionamento all’inizio o alla fine del filePosizionamento sul record precedente o successivo

Accesso diretto o casualeI dati vengono letti e scritti in una qualsiasi posizioneLa posizione deve essere specificata in termini di blocco logico, relativamente all’inizio del fileI blocchi logici devono avere dimensione fissa per consentire il calcolo della posizione effettiva dei dati

Page 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1313 - -

StrutturaStruttura

Le memorie di massa contengono milioni di fileNecessità di condividere uno o più fileTale mole di dati necessita una strutturazioneUn file system è organizzato in

PartizioniContengono insiemi di file correlati

DirectoryUna partizione è suddivisa in directoryContengono informazioni sui file e fungono da indice

FileContengono effettivamente i dati o i programmi

Page 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1414 - -

DirectoryDirectory

Sulle directory è possibile compiere alcune operazioni

Ricerca di un fileSulla base di un nome o una espressione regolare consente di recuperare le informazioni su uno o più file

Creazione di un fileAlla directory viene aggiunto un elemento che raccoglie le informazioni sul nuovo file

Rimozione di un fileEliminazione di un descrittore di file. Il descrittore deve essre prima individuato tramite una operazione di ricerca

Page 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1515 - -

DirectoryDirectory

Rimozione di un fileEliminazione di un descrittore di fileIl descrittore deve essre prima individuato tramite una operazione di ricerca

Elenco dei fileProduce l’elenco dei nomi ed eventualmente altre informazioni relative ai file memorizzati

Rinomina di un fileModifica il nome di un file già presente nella directoryIl descrittore deve essre prima individuato tramite una operazione di ricerca

Page 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1616 - -

Directory a singolo livelloDirectory a singolo livello

Tutti i file sono contenuti in una sola directoryQuesta struttura è molto semplice ma presenta alcuni problemi

Con molti file è difficile garantire che tutti i nomi siano diversiCon molti file le dimensioni della directory diventano grandi a discapito del tempo di accesso Utenti differenti possono accedere agli stessi file

tmp test data jhon cc emacs

Page 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1717 - -

Directory a due livelliDirectory a due livelli

Directory principaleContiene un elenco di directory, una per utente (root)La gestione affidata ad un amministratore (superuser)

Directory utenteContengono i file di un singolo utente (home)I singoli utenti vedono e gestiscono solo i file nella propria home directory

Quando un utente richiede l’accesso ad un file, il SO ne cerca il nome nella home directory dell’utentePer accedere ai file di altri utenti si utilizza il path name cioè la composizione del nome dell’utente e del nome del file

Page 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1818 - -

Directory a due livelliDirectory a due livelli

Gli applicativi sono accessibili a tutti gli utentiA tale scopo esiste una directory specifica (bin)I file sono

Prima cercati nella directory dell’utente Se la ricerca fallisce, nella directory degli applicativi

bin mike bill jhon

gcc tcsh emacs test data gnu data foo

Page 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 1919 - -

Directory ad alberoDirectory ad albero

Ha un numeo arbitrario di livelliUn utente accede ai file attraverso il path namePer semplificare l’accesso ai file viene definito il concetto di current working directory (cwd)I file vengono cercati nella directory correnteSe un file non è nella directory corrente:

Si usa il suo path nameSi cambia la directory corrente

Il SO dispone di alcuni comandi per gestire la cwd

cd dir La directory dir diviene la cwdpwd Mostra il nome della cwd

Page 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2020 - -

Directory ad alberoDirectory ad albero

Un esempio di directory ad albero è il seguente

bin mike bill jhon

gcc tcsh test data gnu data foo

aax data type mary work

her mom much

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2121 - -

Directory a grafo aciclicoDirectory a grafo aciclico

Utenti diversi vogliono condividere uno o più filePer semplificare l’accesso gli utenti vorrebbero vedere i file condivisi nella propria homeEsistono due soluzioni con caratteristiche differenti

DuplicazioneI file condivisi sono duplicati nelle home degli utentiSpreco di spazio e problemi di allineamento

RiferimentoViene copiato solo il descrittore del file Gli utenti accedono di fatto allo stesso fileLa gestione dei riferimenti richiede un sistema operativo più complesso

Page 22: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2222 - -

Directory a grafo aciclicoDirectory a grafo aciclico

La soluzione migliore è quella basata sui riferimentiSi ha una maggiore complessità del SO, infatti

Deve garantire che il grafo risultante sia aciclicoQuando un file viene rimosso si presenta il problema di come trattare i riferimenti a quel fileUtenti differenti possono accedere simultaneamente allo steso file con il rischio di compromettelo.

Una implementazione sono link di UNIXSoft link: Quando un file viene rimosso i riferimenti rimangono invariati ma puntano ad un file inesistenteHard link: Un file viene rimosso effettivamente solo quando tutti i riferimenti ad esso sono stati eliminati

Page 23: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2323 - -

Directory a grafo aciclicoDirectory a grafo aciclico

Esempio di directory a grafo aciclico:

bin mike bill jhon

gcc tcsh test data gnu much foo

aax data foo mary work

her mom much

Page 24: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2424 - -

Directory a grafo generaleDirectory a grafo generale

Estensione Rimuovere il vincolo di aciclicità del grafoIn questo caso possono esistere riferimenti circolari

Tale struttura risulta estremamente flessibile ma comporta una ulteriore complicazione del sistema operativo, in particolare

Nella ricerca di un file il sistema operativo deve evitare di entrare in un loopGli algoritmi di visita sono più complessiIl problema della rimozione di un file è più complesso

Una soluzione possibile Limitare la profondità di un path name

Page 25: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2525 - -

Directory a grafo generaleDirectory a grafo generale

bin mike bill jhon

gcc mike test data gnu much foo

aax data foo mary work

gnu mom much

Esempio di directory a grafo generale:

Page 26: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2626 - -

Protezione Protezione

I dati di un file system necessitano di protezione

Protezione da danni fisiciMalfunzionamenti dei dispositiviDanni meccanici e/o elettriciSoluzione: backup e mirroring

Protezione da accessi impropriRiservatezzaModifica o eliminazione accidentale di datiSoluzione: definizione di una politica di accesso

Con il termine protezione ci si riferisce allaDefinizione di una politica di accesso Implementazione di una politica di accesso

Page 27: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2727 - -

Protezione Protezione

Alcune banali politiche di accessoOgni utente accede solo ai propri file

Scelta limitante, ad esempio per i gruppi di lavoroOgni utente accede a tutti i file

È assente una politica di accesso

La soluzione consiste nell’accesso controllatoSi definiscono regole di accesso ai file sulla base di

Identità e gruppo di lavoro dell’utenteProprietà dei file

Tali regole dipendono dal tipo di operazione richiesta

LetturaScrittura, eliminazione o aggiuntaEsecuzione o lista

Page 28: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2828 - -

Protezione: Liste di accessoProtezione: Liste di accesso

L’accesso ed le operazioni consentite dipendono dalla identità dell’utenteAd ogni file è associata una lista di accesso o ACL

Indica quali operazioni sono consentite a quali utentiAlla richiesta di una operazione il SO controlla la lista di accesso per verificare se il richiedente:

È contemplato Ha il permesso di compiere quel tipo di operazione

Questa soluzione presenta alcuni svantaggi:Le ACL possono avere dimensioni notevoliLe ACL devono essere create e gestite per ogni fileIl tempo di accesso ad un file viene prolungato

Page 29: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 2929 - -

Protezione: UNIXProtezione: UNIX

UNIX adotta una soluzione semplificata Gli utenti sono identificati in base a

username Identificativo dell’utentegroup Identificativo di gruppo

Gli utenti sono raggruppati in tre classiowner Il proprietario del filegroup I membri del gruppo del proprietario del fileall Tutti gli utenti

Le operazioni sono raggruppate in tre classiread Lettura, copiawrite Scrittura, modifica, eliminazioneexecute Esecuzione

Page 30: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3030 - -

Protezione: UNIXProtezione: UNIX

Ad ogni file sono associatiOwnerGroupMode

Il mode è formato da tre gruppi di bitOgni gruppo si riferisce ad una classe di utentiOgni bit del gruppo si riferisce ad una operazione

rwx rwx rwx owner group all

execute

write

read

111 101 101

rwx rwx rwx

7 5 5

Page 31: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3131 - -

ImplementazioneImplementazione

Il sistema operativo fornisce una visione logica del file system fornendo

File, directory, linkAttributi e politiche di accessoOperazioniMapping del file system logico sui dispositivi fisici

Il file system è una struttura stratificata o a livelliOgni livello usa le funzioni fornite dal livello inferioreOgni livello implementa e fornisce funzioni al livello superioreIl livello più basso è costituito dai dispositivi hardware

Page 32: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3232 - -

ImplementazioneImplementazione

I livelli in cui viene suddiviso il file system sono

Applicazione

File System Logico

Modulo di Organizzaione

dei file

File System di Base

Controllo dell’I/O

Dispositivi

Richiedono funzioni al file system logico.

Sulla base del nome di un file e dell’organizzazione delle directory, genera richieste al modulo per l’organizzazione dei file. Legge i descrittori dei file restituendo la posizione.

Conosce l’organizzazione logica e fisica. Traduce le richieste logiche in richieste fisiche verso il file system di base. Genera il numero assoluto di un blocco dato il suo numero relativo all’ inizio del file.

Invia comandi generali alla parte di controllo dell’I/O. Dato il numero di blocco assoluto genera informazioni specifiche quali faccia, settore, traccia, blocco fisico.

Generano i segnali di controllo a partire dai comandi ricevuti. Tali programmi prendono il nome di driver.

Eseguono i comandi richiesti attraverso i driver.

Page 33: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3333 - -

Allocazione ContiguaAllocazione Contigua

I blocchi di un file sono adiacentiUn file di n blocchi è memorizzato nelle posizioni adiacenti b, b+1, …,b+n-2, b+n-1Un descrittore deve indicare solo la coppia (b,n)Problema

Allocazione di spazio per un nuovo fileI tempi di accesso sono brevi in quanto l’accesso

A due blocchi successivi b e b+1 non richiede lo spostamento della testinaAl blocco logico k richiede l’accesso al blocco fisico b+k

134 135 136 … 141

data (134, 8 )

Page 34: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3434 - -

Allocazione ContiguaAllocazione Contigua

Dato un file di m blocchi è necessario individuare una porzione di disco costituita da almeno m blocchi contiguiSi usano tre politiche:

First-Fit: La prima zona, di almeno m blocchi, viene usataBest-Fit: La zona più piccola, di almeno m blocchi, viene usataWorst-Fit: La zona più grande, di almeno m blocchi, viene usata

Le tecniche migliori sono le prime due, in particolare il metodo first-fit risulta più veloceL’allocazione contigua crea, nel tempo, zone inutilizzate di piccole dimensioniTali zone hanno una bassa probabilità di contenere un fileQuesto fenomeno viene detto frammentazione esterna

Page 35: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3535 - -

Allocazione ContiguaAllocazione Contigua

Una soluzione consiste nella compattazione dei dischi

I file su un disco vengono letti e memorizzati temporaneamente altrove (ad esempio su un disco)Il disco originale viene completamente cancellatoI file vengono riscritti in sequenza

Questa operazione è molto costosa in termini di tempo e deve essere compiuta con una certa frequenzaUna soluzione migliore sta nella memorizzazione di un file in due zone differenti, ognuna formata da blocchi contiguiLa zona aggiuntiva prende il nome di extentSono ancora necessari algoritmi per la ricerca di spazio disponibile

Page 36: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3636 - -

Allocazione ContiguaAllocazione Contigua

Un descrittore di file indica (b, e, n1, n2):b: base della sezione principale e: base dell’extentn1: dimensioni della sezione principalen2: dimensione dell’extent

11 12 13 …

data (11, 131, 3, 5 )

130 131 132 133 134 135 …

Page 37: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3737 - -

Allocazione ConcatenataAllocazione Concatenata

L’idea dell’uso di un extent può essere estesa a ad un numero maggiore di estensioniIn questo modo un file è costituito da una sequenza di blocchi in cui:

Il descrittore contine il riferimento al primo e ultimo bloccoOgni blocco contiene un riferimento al blocco successivo

11 12 13 …

data (12, 132 )

130 131 132 133 134 135 …

Page 38: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3838 - -

Allocazione ConcatenataAllocazione Concatenata

Questa soluzione risolve tutti i problemi tipici della allocazione contigua, in particolare:

Non si ha frammentazione esterna

Una parte di ogni blocco è dedicata a contenere un riferimento al blocco successivo

La memorizzazione dei riferimenti riduce lo spazio disponibile per i datiCon blocchi di 512 byte e riferimenti di 4 byte si ha uno spreco di spazio pari allo 0.78% del disco

Dati Riferimento

Page 39: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 3939 - -

Allocazione ConcatenataAllocazione Concatenata

Anche questo metodo presenta alcuni svantaggiPer l’accesso casuale è comunque necessario scorrere il file dall’inizio fino al blocco desideratoL’accesso ad un file è meno efficiente in quanto può comportare molti riposizionamenti della testina

Una soluzione consiste nel raggruppare più blocchi in un cluster e prevedere l’accesso ai tali gruppi piuttosto che ai singoli blocchi:

Si ha un miglioramento delle prestazioni per via del numero minore di riposizionamenti della testinaSi ha una riduzione dello spazio utilizzato per i riferimentiSi ha una maggiore frammentazione interna

Page 40: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4040 - -

Allocazione IndicizzataAllocazione Indicizzata

Più efficiente della allocazione concatenataI riferimenti ai blocchi di un file sono raggruppati e memorizzati in un unico blocco indiceUn blocco indice è quindi:

Un vettore di riferimenti ai blocchi del fileL’i-esimo elemento del vettore si riferisce all’i-esimo blocco del file

Il descrittore contiene il riferimento al blocco indiceIn questo modo si ottiene:

Eliminzaione della frammentazione esternaAccesso casuale ai blocchi molto efficiente

Page 41: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4141 - -

Allocazione IndicizzataAllocazione Indicizzata

EOF indica un riferimento vuotoSe un file è costituito da pochi blocchi

Sottoutilizzo del blocco indice (dimensioni fissate)

11 12 13 14 15 16 ...

data (13)

130 131 132 133 134 135 …

16133131EOFEOFEOF

Page 42: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4242 - -

Allocazione IndicizzataAllocazione Indicizzata

E’ importante scegliere una dimensione opportuna per il blocco indicie

Se troppo grande, molto spazio viene sprecatoSe troppo piccolo, non consente di trattare file di grandi dimensioniIn genere il blocco indice coincide con quello fisico

Esistono tre schemi possibili per risolvere i problemi legati alla gestione di file di diverse dimensioni

Schema concatenatoSchema multilivelloSchema combinato

Page 43: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4343 - -

Allocazione IndicizzataAllocazione Indicizzata

Schema concatenato:Il blocco indice ha i riferimenti ai blocchi del fileL’ultimo elemento del blocco indice contiene un riferimento ad un secondo blocco indice, se il file è di grandi dimensioniL’ultimo elemento del blocco indice contiene EOF se tutti i blocchi del file sono già stati referenziati

data (13)

161331311833498

361451132110017

614266EOFEOFEOF

13 98 106

Page 44: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4444 - -

Allocazione IndicizzataAllocazione Indicizzata

Schema multilivello:Un blocco indice di primo livello contiene i riferimenti ai blocchi indice di secondo livelloUn blocco di secondo livello contiene i firerimenti ai blocchi di dati

data (13)

98124106EOFEOF

361451132110

614266EOFEOF

13

98

106

Page 45: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4545 - -

Allocazione IndicizzataAllocazione Indicizzata

Schema combinato:La parte iniziale di un blocco indice contiene riferimenti a blocchi di dati del fileGli ultimi elementi del blocco indice contengono riferimenti ad altri blocchi indiceSe il file ha dimensioni ridotte non viene utilizzato il secondo livello

data (13)

9812410698EOF

3614511EOFEOF

13

98

Page 46: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4646 - -

Allocazione: UNIX Allocazione: UNIX i-nodei-node

ModeOwner, group

TimestampSize

Number of blocksNumber of references

Direct blocks (12)

Single indirect blocksDouble indirect blocksTriple indirect blocks

Data

Data

Data

Data

Data

Data

Data

Data

Data

Data

Data

Data

Data

i-node

Page 47: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4747 - -

Gestione dello spazio liberoGestione dello spazio libero

All’atto della creazione di un nuovo file è necessario individuare sul disco il primo blocco liberoUna soluzione sta nell’uso un vettore di bit in cui

La posizione del bit indica il numero del bloccoSe il bit vale 0 il blocco è già utilizzatoSe il bit vale 1 il blocco è disponibile

Si individua il primo blocco libero in questo modoSi scorrono le parole (di b bit) fino alla prima diversa da 0Sia k il numero di parole uguali a zeroSi trova l’offset d del primo bit con valore 1L’indirizzo n del blocco è dato da n = k x b + d

Page 48: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4848 - -

Gestione dello spazio liberoGestione dello spazio libero

Una soluzione alternativa si basa sull’utilizzo di una lista concatenata, simile a quella utilizzata per i fileIn questo schema:

La posizione del primo blocco disponibile è memorizzata in una zona riservata del discoOgni blocco disponibile contiene un riferimento al blocco disponibile successivo

Questa soluzione è migliore della precedente per dischi di grandi dimensioni

Page 49: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 4949 - -

Realizzazione delle directoryRealizzazione delle directory

La soluzione più semplice è una lista lineare in cui ogni elemento contiene

Il nome del file Il descrittore del file

Per velocizzare le operazioni di accesso la lista viene ordinata lessicograficamente

bar

i-node

data

i-node

foo

i-node

zap

i-node

end

Data Data Data Data

Page 50: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 5050 - -

Realizzazione delle directoryRealizzazione delle directory

Le operazioni sui file EliminazioneCreazioneRinomina ...

Richiedono una ricerca del nomeLa ricerca è di semplice realizzazione ma è poco efficiente ( è lineare nel numero degli elementi)Una lista ordinata lessicograficamente:

Consente una ricerca binaria (logaritmica)Comporta problemi aggiuntivi per mantenere la lista in ordine

Page 51: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 5151 - -

Realizzazione delle directoryRealizzazione delle directory

Una tecnica più efficiente consiste nell’uso di una tabella di hash o funzione di hashLa funzione di hash

sulla base del nome del file,resrtituisce un riferimento, detto chiave o key, al descrittore di file

I descrittori sono memorizzati in una lista lineare

Funzionedi hash

Key 1

Key 2

Key 3

Key N

foo

Page 52: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 5252 - -

Realizzazione delle directoryRealizzazione delle directory

Un limite di questo metodo sta nei potenziali conflitti cioè quelle situazioni in cui per due nomi differenti la tabella restituisce lo stesso puntatore

Funzionedi hash

Key 1

Key 2

Key K

Key N

foo

Funzionedi hashfrob

Page 53: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

- - 5353 - -

Realizzazione delle directoryRealizzazione delle directory

Una soluzone è quella di utilizzare liste lineari di elementi aventi lo stesso codice di hashSi ha un impatto notevole sulle prestazioni che comunque risultano migliori rispetto all’uso di una lista lineare semplice

Key 1

Key 2

Key K

Key N

alpha

i-node

arpa

i-node

ax

i-node

end

foo

i-node

frob

i-node

end

end