Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

50
C.Brandolese Politecnico di Milano Il File System Il File System Calcolatori Elettronici

Transcript of Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

Page 1: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Politecnico di Milano

Il File SystemIl File System

Calcolatori Elettronici

Page 2: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 2

SommarioSommario

• File• Attributi• Operazioni• Struttura• Organizzazione• Directory• Protezione• Implementazione• Allocazione• Gestione dello spazio libero• Realizzazione delle directory

Page 3: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 3

FileFile

• Il concetto di file offre una visone omogenea delle informazioni memorizzate

• La visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzate

• Un file è costituito da:• Un insieme di informazioni omogenee• Un nome simbolico• Un insieme di attributi

• Un file può contenere:• Dati• Programmi• Riferimenti

Page 4: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 4

AttributiAttributi• Ad un file sono associati alcuni attributi che ne descrivono

alcune caratteristiche:

• Nome: E’ un nome simbolico con cui ci si riferisce ad esso

• Tipo: Definisce il tipo dei dati contenuti. A volte il tipo viene

definito attraverso una estensione del nome

• Locazione: E’ un puntatore alla posizione fisica sul dispositivo

• Dimensione: Dimensione dei dati espressa in bytes o blocchi

• Protezione: Definisce le politiche di gestione degli accessi

• Ora e Data: Indicano il momento della creazione, ultima modifica

o

ultimo accesso

• Proprietario: Indica il nome dell’utente che ha creato il file

Page 5: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 5

OperazioniOperazioni

• Sui file possono essere compiute diverse operazioni• Le operazioni vengono svolte attraverso delle richieste di

servizi al sistema operativo• Le operazioni più comuni sono elencate nel seguito

• Creazione:• Viene aggiunto un nuovo file al file system• Le operazioni richieste sono:

• Allocazione• Creazione del nuovo descrittore del file• Aggiunta del descrittore al file system

Page 6: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 6

OperazioniOperazioni

• Scrittura:• Aggiunge dati a ad un file già creato• Per scrivere dati su un file è necessario fornire:

• Il nome del file• I dati da scrivere

• Il file system mantiene un puntatore alla posizione in cui deve essere effettuata la scrittura successiva

• Lettura:• Preleva dati da un file già creato• Per leggere dati da un file è necessario fornire:

• Il nome del file• Un puntatore alla zona di memoria destinata a contenere i dati

• Il file system mantiene un puntatore alla posizione in cui deve essere effettuata la lettura successiva

Page 7: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 7

OperazioniOperazioni

• Riposizionamento:• Sposta la posizione dei puntatori di lettura e di scrittura• Le operazioni consentite dipendono dal tipo di accesso del file• Spesso viene mantenuto dal file system un solo puntatore valido

per la lettura e per la scrittura

• Cancellazione:• Elimina un file• Per eliminare un file è necessario specificarne il nome• Le operazioni necessarie sono:

• Deallocazione dello spazio sul dispositivo fisico• Aggiunta dello spazio deallocato alla lista dello spazio

disponibile sul dispositivo• Rimozione del descrittore del file dal file system

Page 8: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 8

OperazioniOperazioni

• Le operazioni descritte richiedono l’accesso ad un file • Il file system deve cercare sul dispositivo fisico il file• Per rendere più efficiente la ricerca, il file system mantiene

una tabella dei file in uso• I file in uso si dicono aperti• Servizi forniti dal sistema operativo:

• Open: • Sulla base del nome individua la posizione del file sul disco• Copia il descrittore del file nella tabella dei file in uso

• Close:• Sulla base del nome o di un identificatore localizza il descrittore

del file nella tabella dei file in uso• Elimina il descrittore dalla tabella dei file in uso

Page 9: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 9

StrutturaStruttura

• Un file system ha una struttura logica ed una struttura fisica• Struttura logica:

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

• Nel sistema UNIX un record è un byte

• Struttura fisica:• I 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 generalmente differenti• I dati vengono impaccati prima di essere memorizzati in modo da

sfruttare al meglio le caratteristiche fisiche del dispositivo

Page 10: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 10

StrutturaStruttura

• Tale differenza, unitamente alla dimensione fissata dei blocchi provoca uno spreco di spazio

• Si consideri un file lungo 1350 byte ed un disco con blocchi da 512 bytes

• Questo fenomeno è noto come frammentazione interna

0 512 1024 1350 1536

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

Page 11: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 11

StrutturaStruttura

• I file sono organizzati principalmente in due modi:• Accesso sequenziale:

• I dati vengono letti e scritti in sequenza a partire dall’inizio del file• Le operazioni disponibili per tali file sono:

• Lettura e scrittura• Posizionamento all’inizio o alla fine del file• Posizionamento sul record precedente o successivo

• Accesso diretto o casuale:• I dati vengono letti e scritti in una qualsiasi posizione specifica• La posizione deve essere specificata in termini di blocco logico,

relativamente all’inizio del file• I blocchi logici devono avere dimensione fissa per consentire il

calcolo della posizione effettiva dei dati

Page 12: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 12

OrganizzazioneOrganizzazione

• I moderni dispositivi di memorizzazione di massa consentono di salvare milioni di file

• Spesso sorge la necessità di condividere un file o un gruppo di file tra più utenti

• Tale mole di dati necessita una strutturazione

• Un file system è organizzato in:• Partizioni: Contengono insiemi di file correlati

• Directory: Una partizione è suddivisa in directory. Le directory contengono informazioni sui file e fungono da indice

• File: Contengono effettivamente i dati o i programmi

• Non tutti i file system dispongono di partizioni

• L’elemento fondamentale per l’organizzazione dei file è la directory

Page 13: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 13

DirectoryDirectory

• Sulle directory, così come sui file, è possibile compiere alcune operazioni:• Ricerca di un file: Sulla base di un nome o una espressione

regolare consente di recuperare le informazioni su uno o più file• Creazione di un file: Alla directory viene aggiunto un elemento che

raccoglie le informazioni sul nuovo file• Rimozione di un file: Eliminazione di un descrittore di file. Il

descrittore deve essre prima individuato tramite una operazione di ricerca

• Elenco dei file: Produce l’elenco dei nomi ed eventualmente altre informazioni relative ai file memorizzati

• Rinomina di un file: Modifica il nome di un file già presente nella directory. Il descrittore deve essre prima individuato tramite una operazione di ricerca

Page 14: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 14

Directory a singolo livelloDirectory a singolo livello

• Tutti i file sono contenuti in una sola directory• Questa struttura è molto semplice ma presenta alcuni

problemi:• Con molti file è difficile garantire che tutti i nomi siano diversi• Con molti file le dimensioni della directory diventano grandi a

discapito del tempo di accesso in quanto le ricerche sono più complesse

• Utenti differenti possono accedere agli stessi file

tmp test data jhon cc emacs

Page 15: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 15

Directory a due livelliDirectory a due livelli

• Si hanno due livelli:• Directory principale: contiene un elenco di directory, una per ogni

utente (root)• Directory utente: contiene i file di un singolo utente (home)

• I singoli utenti vedono e gestiscono solo i file nella propria home directory

• La gestione della root directory è affidata ad un amministratore del sistema (root, administrator, superuser)

• Quando un utente richiede l’accesso ad un file, il file system ne cerca il nome nella home directory dell’utente

• Per accedere ai file di altri utenti si utilizza il path name cioè la composizione del nome dell’utente e del nome del file

Page 16: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 16

Directory a due livelliDirectory a due livelli

• Spesso gli applicativi sono accessibili a tutti gli utenti• A tale scopo esiste una directory specifica (bin)• I file vengono prima cercati nella directory dell’utente quindi,

se la ricerca fallisce, nella directory degli applicativi

bin mike bill jhon

gcc tcsh emacs test data gnu data foo

Page 17: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 17

Directory ad alberoDirectory ad albero

• E’ una estensione del caso precedente ad un numeo arbitrario di livelli

• Un utente accede ai file attraverso il path name• Per semplificare l’accesso ai file viene definito il concetto di

current working directory (cwd) cioè di directory corrente• I file vengono cercati nella directory corrente• Se un file non è nella directory corrente:

• Si usa il suo path name• Si cambia la directory corrente

• Il sistema operativo offre alcuni comandi per gestire la cwd:• cd <dir>: Change Directory. La directory dir diviene la cwd• pwd: Print Working Directory. Mostra il nome della cwd

Page 18: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 18

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 19: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 19

Directory a grafo aciclicoDirectory a grafo aciclico

• Utenti diversi vogliono condividere uno o più file• Per semplificare l’accesso gli utenti vorrebbero vedere i file

condivisi nella propria home• Esistono due soluzioni con caratteristiche differenti• Duplicazione:

• I file condivisi vengono duplicati nelle home dei diversi utenti• Ciò comporta spreco di spazio e problemi di allineamento

• Riferimento:• Viene copiato solo il descrittore del file • Gli utenti accedono di fatto allo stesso file• La gestione dei riferimenti richiede un sistema operativo più

complesso

Page 20: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 20

Directory a grafo aciclicoDirectory a grafo aciclico

• La soluzione migliore è quella basato sui riferimenti• Tale struttura comporta una complessità maggiore del

sistema operativo, infatti:• Il sistema operativo deve garantire che il grafo risultante si aciclico• Quando un file viene rimosso si presenta il problema di come

trattare i riferimenti a quel file• Utenti differenti possono accedere simultaneamente allo steso file

con il rischio di comprometterne la struttura. Per questo il sistema operativo deve prevedere un meccanismo di gestione degli accessi

• Una implementazione sono link di UNIX:• Soft link: Quando un file viene rimosso i riferimenti rimangono

invariati ma puntano ad un file non esistente• Hard link: Un file viene rimosso effettivamente solo quando tutti i

riferimenti ad esso sono stati eliminati

Page 21: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 21

Directory a grafo aciclicoDirectory a grafo aciclico

• Un esempio di directory a grafo aciclico e il seguente:

bin mike bill jhon

gcc tcsh test data gnu much foo

aax data foo mary work

her mom much

Page 22: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 22

Directory a grafo generaleDirectory a grafo generale

• Una ulteriore estensione consiste nel rimuovere il vincolo di aciclicità del grafo

• In 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 loop• Gli algoritmi di visita di un grafo generale sono più complessi• Il problema della rimozione di un file diviene più complesso

• Una soluzione comune a questi problemi consiste nel limitare la profondità di un path name, ovvero il numero di directory presenti in un path name

Page 23: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 23

Directory a grafo generaleDirectory a grafo generale

• Un esempio di directory a grafo generale è il seguente:

bin mike bill jhon

gcc mike test data gnu much foo

aax data foo mary work

gnu mom much

Page 24: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 24

Protezione Protezione

• I dati memorizzati nei file di un file system necessitano di protezione

• Protezione da danni fisici:• Malfunzionamenti dei dispositivi• Danni meccanici e/o elettrici• Soluzione: backup e mirroring

• Protezione da accessi impropri:• Riservatezza• Modifica o eliminazione accidentale di dati importanti• Soluzione: definizione di una politica di accesso

• Con il termine protezione ci si riferisce alla definizione di una politica di accesso e relativa implementazione

Page 25: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 25

Protezione: Tipi di accessoProtezione: Tipi di accesso

• Alcune banali politiche di accesso sono:• Ogni utente accede solo ai propri file: si tratta di una scelta

limitante, ad esempio per i gruppi di lavoro• Ogni utente accede a tutti i file: è assente una politica di accesso

• La soluzione consiste nell’accesso controllato• Si definiscono regole di accesso ai file sulla base di:

• Identità e gruppo di lavoro dell’utente• Proprietà dei file

• Tali regole dipendono dal tipo di operazione richiesta:• Lettura• Scrittura o eliminazione• Esecuzione o lista• Aggiunta

Page 26: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 26

Protezione: Liste di accessoProtezione: Liste di accesso

• L’accesso ed le operazioni consentite dipendono dalla identità dell’utente

• Ad ogni file è associata una lista di accesso che indica quali operazioni sono consentite a quali utenti

• Quando una operazione viene richiesta il sistema operativo controlla la lista di accesso per verificare se:• Il richiedente è contemplato • Il richiedente ha il permesso di compiere quel tipo di operazione

• Questa soluzione presenta alcuni svantaggi:• Le liste di accesso possono essere di dimensioni notevoli• Le liste di accesso devono essere create e mantenute per ogni file• Il tempo di accesso ad un file viene prolungato

Page 27: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 27

Protezione: UNIXProtezione: UNIX

• Una soluzione semplificata consiste nella implementazione del sistema operativo UNIX

• Gli utenti sono identificati in base a:• Username: Identificativo dell’utente• Group: Identificativo di gruppo, condiviso da più utenti

• Gli utenti sono raggruppati in tre classi:• Owner: Solo il proprietario del file• Group: Solo i membri del gruppo del proprietario del file• All: Tutti gli utenti

• Le operazioni sono raggruppate in tre classi:• Read: Lettura, copia• Write: Scrittura, modifica, eliminazione• Execute: Esecuzione

Page 28: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 28

Protezione: UNIXProtezione: UNIX

• Ad ogni file sono associati:• Owner• Group• Control access list

• La control access list è formata da tre gruppi di bit:• Ogni gruppo di bit si riferisce ad una delle tre classi di utenti• Ogni bit del gruppo si riferisce ad una delle tre operazioni

rwx rwx rwx owner group all

execute

write

read

111 101 101

rwx rwx rwx

7 5 5

owner group all

Page 29: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 29

ImplementazioneImplementazione

• L’implementazione del file system permette all’utente di disporre dei servizi descritti sino a questo punto

• In particolare il sistema operativo fornisce una visione logica del file system fornendo:• File, directory, link• Attributi e politiche di accesso• Operazioni• Mapping del file system logico sui dispositivi fisici

• Il file system è una struttura stratificata o a livelli:• Ogni livello usa le funzioni fornite dal livello inferiore• Ogni livello realizza e fornisce funzioni al livello superiore• Il livello più basso è costituito dai dispositivi hardware

Page 30: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 30

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 31: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 31

Allocazione ContiguaAllocazione Contigua

• I blocchi di un file sono adiacenti• Un file di n blocchi è memorizzato nelle posizioni adiacenti

b, b+1, …,b+n-2, b+n-1• Un descrittore deve indicare solo la coppia (b,n)

• I tempi di accesso sono brevi in quanto l’accesso: • A due blocchi successivi b e b+1 non richiede lo spostamento della

testina in quanto sono sulla stessa traccia• Al blocco logico i-esimo richiede l’accesso diretto al blocco fisico b+i

• Problema: allocazione di spazio per un nuovo file

134 135 136 … 141

data (134, 8 )

Page 32: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 32

Allocazione ContiguaAllocazione Contigua

• Dato un file di m blocchi è necessario individuare una porzione di disco costituita da almeno m blocchi contigui

• Si usano tre politiche:• First-Fit: La prima zona, di almeno m blocchi, viene usata• Best-Fit: La zona più piccola, di almeno m blocchi, viene usata• Worst-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ù veloce

• L’allocazione contigua crea, nel tempo, zone inutilizzate di piccole dimensioni

• Tali zone hanno una bassa probabilità di contenere un file• Questo fenomeno viene detto frammentazione esterna

Page 33: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 33

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 secondo disco)• Il disco originale viene completamente cancellato• I file vengono riscritti in sequenza, eliminando così gli spazi vuoti

• Questa operazione è molto costosa in termini di tempo e deve essere compiuta con una certa frequenza

• Una soluzione migliore sta nella memorizzazione di un file in due zone differenti, ognuna formata da blocchi contigui

• La zona aggiuntiva prende il nome di extent• Sono ancora necessari algoritmi per la ricerca di spazio

disponibile

Page 34: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 34

Allocazione ContiguaAllocazione Contigua

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

11 12 13 …

data (11, 131, 3, 5 )

130 131 132 133 134 135 …

Page 35: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 35

Allocazione ConcatenataAllocazione Concatenata

• L’idea dell’uso di un extent può essere estesa a ad un numero maggiore di estensioni

• In questo modo un file è costituito da una sequenza di blocchi in cui:• Il descrittore contine il riferimento al primo ed all’ultimo blocco• Ogni blocco contiene un riferimento al blocco successivo

11 12 13 …

data (12, 132 )

130 131 132 133 134 135 …

Page 36: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 36

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 dati

• Con blocchi di 512 byte e riferimenti di 4 byte si ha uno spreco di spazio pari allo 0.78% del disco

Dati Riferimento

Page 37: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 37

Allocazione ConcatenataAllocazione Concatenata

• Anche questo metodo presenta alcuni svantaggi• Per l’accesso casuale è comunque necessario scorrere il file

dall’inizio fino al blocco desiderato• L’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 testina• Si ha una riduzione dello spazio utilizzato per i riferimenti• Si ha una maggiore frammentazione interna

• Questo approccio è utilizzato in molti sistemi operativi

Page 38: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 38

Allocazione ConcatenataAllocazione Concatenata

• Le liste di blocchi sono fragili in quanto la perdita di un solo riferimento può rendere inaccessibili grandi quantità di dati

• Una soluzione, adottata ad esempio da MS-DOS e OS/2, consiste nella costruzione di un indice detto File Allocation Table (FAT) per ogni partizione

• La FAT: • Contiene tanti elementi quanti sono i blocchi del disco• Un blocco disponibile è indicato da uno 0 nella tabella• L’ultimo blocco di un file è indicao da uno speciale valore EOF• Ogni elemento della tabella contiene l’indice dell’elemento della

FAT che che contiene il blocco successivo

• Questo metodo comporta mediamente un tempo di accesso ai file maggiore dell’allocazione concatenata

Page 39: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 39

Allocazione ConcatenataAllocazione Concatenata

• Un descrittore di file deve semplicemente indicare il numero del primo blocco del file

• Le informazioni sulla posizione dei blocchi successivi sono contenute nella FAT

11 12 13 14 15 16 ...

data (11 )

130 131 132 133 134 135 …

0

16

133

EOF

0

0

11

16

133

N -1

FAT

Page 40: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 40

Allocazione IndicizzataAllocazione Indicizzata• Risolve i problemi di scarsa efficienza della allocazione

concatenata raggruppando tutti i riferimenti• I riferimenti ai blocchi di un file vengono memorizzati in un

unico blocco indice• Un blocco indice è quindi:

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

• Il descrittore del file contiene il riferimento al blocco indice• In questo modo si ottiene:

• Eliminzaione della frammentazione esterna• Accesso casuale ai blocchi molto efficiente

• Lo spazio richiesto per i riferimenti è maggiore che nel caso di allocazione concatenata

Page 41: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 41

Allocazione IndicizzataAllocazione Indicizzata• Gli elementi del blocco indice che non si riferiscono a

nessun blocco hanno il valore EOF• Se un file è costituito da pochi blocchi si ha un sottoutilizzo

del blocco indice che ha dimensioni fissate

11 12 13 14 15 16 ...

data (13)

130 131 132 133 134 135 …

16133131EOFEOFEOF

Page 42: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 42

Allocazione IndicizzataAllocazione Indicizzata

• E’ importante scegliere una dimensione opportuna per il blocco indicie:• Se troppo grande, molto spazio viene sprecato• Se troppo piccolo, non consente di trattare file di grandi dimensioni

• In genere il blocco indice coicide con un blocco fisico• Esistono tre schemi possibili per risolvere i problemi legati

alla gestione di file di diverse dimensioni:• Schema concatenato• Schema multilivello• Schema combinato

• Tutti questi metodi sono utilizzati in sistemi operativi e file system reali

Page 43: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 43

Allocazione IndicizzataAllocazione Indicizzata

• Schema concatenato:• Il blocco indice contiene i riferimenti ai blocchi del file• L’ultimo elemento del blocco indice contiene un riferimento ad un

secondo blocco indice, se il file è di grandi dimensioni• L’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: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 44

Allocazione IndicizzataAllocazione Indicizzata

• Schema multilivello:• Un blocco indice di primo livello contiene i riferimenti ai blocchi

indice di secondo livello• Un blocco di secondo livello contiene i firerimenti ai blocchi di dati• Con blocchi di 4.096 byte e riferimenti a 4 byte si possono

indirizzare file con (4.096/4)2 = 1.048.576 blocchi ovvero 4GB

data (13)

98124106EOFEOF

361451132110

614266EOFEOF

13

98

106

Page 45: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 45

Allocazione IndicizzataAllocazione Indicizzata

• Schema combinato:• La parte iniziale di un blocco indice contiene riferimenti a blocchi di

dati del file• Gli ultimi elementi del blocco indice contengono riferimenti ad altri

blocchi indice• Se il file ha dimensioni ridotte non viene utilizzato il secondo livello

data (13)

9812410698EOF

3614511EOFEOF

13

98

Page 46: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 46

Allocazione: UNIX Allocazione: UNIX i-nodei-node

• Il sistema operativo UNIX utilizza lo schema di allocazione indicizzata combinata, realizzato attraverso gli i-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: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 47

Gestione dello spazio liberoGestione dello spazio libero

• All’atto della creazione e scrittura di un nuovo file è necessario individuare sul disco il primo blocco libero

• Una soluzione consiste nell’uso un vettore di bit in cui:• La posizione del bit indica il numero del blocco• Se il bit vale 0 il blocco è già utilizzato• Se il bit vale 1 il blocco è disponibile

• Si individua il primo blocco libero in questo modo:• Si scorrono le parole (di b bit) fino alla prima diversa da zero• Sia k il numero di parole uguali a zero• Si trova l’offset d del primo bit con valore 1

• L’indirizzo n del blocco è dato da:

n = k b + d

Page 48: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 48

Gestione dello spazio liberoGestione dello spazio libero

• Una soluzione alternativa si basa sull’utilizzo di una lista concatenata, simile a quella utilizzata per i file

• In questo schema:• La posizione del primo blocco disponibile è memorizzata in una

zona riservata del disco• Ogni blocco disponibile contiene un riferimento al blocco disponibile

successivo

• Questa soluzione è migliore della precedente per dischi di grandi dimensioni

• Per migliorare l’efficienza:• Si ricorre all’uso della FAT• Si usano raggruppamenti di un numero prefissato di blocchi• Si usano raggruppamenti di dimensioni variabili

Page 49: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 49

Realizzazione delle directoryRealizzazione delle directory

• La soluzione più semplice consiste nella realizzazione attraverso una lista lineare:

• Ogni elemento contiene • Il nome del file • Il descrittore del file

• Tutte le operazioni sui file (eliminazione, creazione, rinomina, ...) richiedono una ricerca del nome

• La ricerca è di semplice realizzazione ma è scarsamente efficiente in quanto è lineare nel numero degli elementi

• Una lista ordinata lessicograficamente:• Consente una ricerca binaria (logaritmica)• Comporta problemi aggiuntivi per mantenere la lista in ordine

Page 50: Politecnico di MilanoC.Brandolese Il File System Calcolatori Elettronici.

C.Brandolese Calcolatori Elettronici 50

Realizzazione delle directoryRealizzazione delle directory

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

• In questo schema una tabella di hash, sulla base del nome del file, resrtituisce un puntatore al descrittore memorizzato ancora in una lista lineare

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

• Una soluzone è quella di utilizzare liste lineari di elementi aventi lo stesso codice di hash

• SI ha un impatto notevole sulle prestazioni che comunque risultano migliori che nel caso della lista lineare semplice