Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system...

17
Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Transcript of Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system...

Page 1: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.1Operating System Concepts

Realizzazione del file systemRealizzazione del file system

Struttura del file system Metodi di allocazione Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Page 2: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.2Operating System Concepts

Struttura del file systemStruttura del file system

Struttura di file: Unità di memorizzazione logica;Unità di memorizzazione logica; Collezione di informazioni correlate.Collezione di informazioni correlate.

Il file system risiede nella memoria secondaria (dischi).

Il file system viene organizzato secondo livelli (stratificato).

File control blockFile control block: struttura di memorizzazione che mantiene le informazioni sui file.

File system stratificatoFile system stratificato

File control blockFile control block

Page 3: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.3Operating System Concepts

Metodi di allocazioneMetodi di allocazione

La natura di accesso diretto dei dischi garantisce flessibiltà nell’implementazione dei file.

Problema: 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: Allocazione contiguaAllocazione contigua Allocazione concatenataAllocazione concatenata Allocazione indicizzataAllocazione indicizzata

Page 4: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.4Operating System Concepts

Allocazione contiguaAllocazione contigua

Ciascun file occupa un insieme di blocchi contigui sul disco. Per reperire il file occorrono solo la locazione iniziale (# blocco iniziale)

e la lunghezza (numero di blocchi). Accesso casuale. Spreco di spazio: frammentazione esterna (problema dell’allocazione dinamica della memoria). I file non possono crescere. ExtentExtent : nei nuovi SO, il disco vie- ne allocato con granularità > della dimensione del blocco fisico. Cia- scun file consiste di uno o più extent (di dim. variabile ed even- tualmente definita dall’utente).

Page 5: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.5Operating System Concepts

Allocazione concatenataAllocazione concatenata

Ciascun file è una lista concatenata di blocchi

su disco: i blocchi possono essere sparsi

ovunque nel disco. Richiede l’indirizzo del blocco iniziale. Sistema di gestione dello spazio libero: non si ha spreco di spazio. Non è possibile l’accesso casuale.

puntatoreblocco =

Mappatura da indirizzi logici a indirizzi fisici:

LA/511= (Q,R) Il bocco da accedere è il Q–moIl bocco da accedere è il Q–mo

nella nella catena di blocchi che catena di blocchi che

costituiscono il file.costituiscono il file. Spostamento nel blocco = R + 1.Spostamento nel blocco = R + 1.

Page 6: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.6Operating System Concepts

File–Allocation TableFile–Allocation Table

File–allocation tableFile–allocation table (FAT ) — utilizzata da MS–DOS e OS/2. La FAT è una tabella con un elemento per ogni blocco del disco, indicizzata dal numero di blocco. La FAT consente la memorizzazione “localizzata ” dei puntatori (non sparsa).

Page 7: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.7Operating System Concepts

Allocazione indicizzataAllocazione indicizzata Colleziona tutti i puntatori in un unico blocco indiceblocco indice. Richiede una tabella indice. Accesso casuale. Permette l’accesso dinamico senza frammentazione

esterna; tuttavia c’è il sovraccarico temporale di

accesso al blocco indice. Tabella indice

Per file di dim. max 256K parole e con dim. di blocco di 512 parole, occorre un solo blocco indice.

Mappatura da indirizzi logici a indirizzi fisici:

LA/512 = (Q,R) Q spostamento nella tabellaQ spostamento nella tabella

indice.indice. R spostamento nel blocco.R spostamento nel blocco.

Page 8: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.8Operating System Concepts

Allocazione indicizzata — Schema concatenatoAllocazione indicizzata — Schema concatenato

Mapping fra indirizzi logici e fisici per un file di lunghezza qualunque (dim. blocco 512 word).

Schema concatenato — Si collegano blocchi della tabella indice (non si ha un limite alla dimensione).

LA / (512 x 511)Q1

R1

Q1 = blocco della tabella indice;R1 impiegato come segue:

R1 / 512Q2

R2

Q2 = spostamento nel blocco della tabella indice;R2 spostamento nel blocco del file.

Page 9: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.9Operating System Concepts

Allocazione indicizzata — Indice multilivelloAllocazione indicizzata — Indice multilivello

Indice a due livelli (dim. max del file 5123)

LA / (512 x 512)Q1

R1

Q1 = spostamento nell’indice esterno;R1 impiegato come segue:

R1 / 512Q2

R2

Q2 = spostamento nel blocco della tabella indice;R2 spostamento nel blocco del file.

Page 10: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.10Operating System Concepts

Allocazione indicizzata — Indice multilivelloAllocazione indicizzata — Indice multilivello

Indice esternoIndice esterno

Tabella indiceTabella indice FileFile

Page 11: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.11Operating System Concepts

Schema combinato: UNIX (4K byte per blocco)Schema combinato: UNIX (4K byte per blocco)

Inode di UNIXInode di UNIX

Page 12: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.12Operating System Concepts

Gestione dello spazio liberoGestione dello spazio libero

Vettore di bitVettore di bit (n blocchi)

Calcolo del numero del primo blocco libero. Si scorre il vettore, cercando il primo byte diverso da 0.

Buone prestazioni se il vettore è conservato in memoria centrale.

0 1 2 n -1

bit[i ] = 0 blocco[i ] occupato

1 blocco[i ] libero

(numero di bit per parola) *(numero di parole con valore 0) +offset del primo bit a 1

Page 13: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.13Operating System Concepts

Gestione dello spazio liberoGestione dello spazio libero

La mappa dei bit richiede ulteriore spazio. Esempio:

dim. blocco = 212 byte

dim. disco = 230 byte (1 gigabyte)

n = 230/212 = 218 bit (o 32K byte) È adatto per gestire file contigui. Lista concatenataLista concatenata (free list ):

Non è facile garantirsi spazio contiguo;Non è facile garantirsi spazio contiguo; Non si spreca spazio.Non si spreca spazio.

RaggruppamentoRaggruppamento: memorizzazione degli indirizzi di n blocchi liberi sul primo di tali blocchi. Sull’ultimo sono indirizzati altri blocchi, etc.

ConteggioConteggio: si indica un blocco libero, e da quanti altri blocchi liberi (contigui) è seguito.

Page 14: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.14Operating System Concepts

Gestione dello spazio liberoGestione dello spazio libero

È necessario proteggere: Puntatore alla lista dei blocchi liberi;Puntatore alla lista dei blocchi liberi; Mappa di bit:Mappa di bit:

Deve essere mantenuta sul disco;Deve essere mantenuta sul disco; Le copie in memoria e sul disco Le copie in memoria e sul disco

possono differire;possono differire; Non si può permettere per blocco[Non si può permettere per blocco[ii ] ]

che bit[che bit[ii ] = 1 in memoria e ] = 1 in memoria e bit[bit[ii ] = 0 ] = 0 su disco.su disco.

Soluzione:Soluzione: Porre bit[Porre bit[ii ] = 0 sul disco;] = 0 sul disco; Allocare blocco[Allocare blocco[ii ];]; Porre bit[Porre bit[ii ] = 0 in memoria.] = 0 in memoria.

Lista dei blocchi liberiLista dei blocchi liberi

Page 15: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.15Operating System Concepts

Realizzazione delle directoryRealizzazione delle directory

Lista lineare di nomi di file con puntatori ai blocchi di dati. Semplice da implementareSemplice da implementare Esecuzione onerosa (dal punto di vista del tempo di ricerca).Esecuzione onerosa (dal punto di vista del tempo di ricerca).

Tabella hash — lista lineare con struttura hash. Migliora il tempo di ricerca nella directory;Migliora il tempo di ricerca nella directory; Collisione Collisione — situazione in cui due nomi di file generano lo — situazione in cui due nomi di file generano lo

stesso indirizzo hash nella tabella;stesso indirizzo hash nella tabella; Dimensione fissa.Dimensione fissa.

Page 16: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.16Operating System Concepts

Efficienza e prestazioniEfficienza e prestazioni L’efficienza dipende da:

Tecniche di allocazione del disco e algoritmi di gestione delle directory; Tecniche di allocazione del disco e algoritmi di gestione delle directory; Tipi di dati conservati nell’elemento della directory corrispondente al file.Tipi di dati conservati nell’elemento della directory corrispondente al file.

Prestazioni: Disk cacheDisk cache — sezione — sezione separata della memoria impiegata per blocchi usati separata della memoria impiegata per blocchi usati

molto spesso;molto spesso; Free–behindFree–behind e e read–aheadread–ahead — tecniche per ottimizzare l’accesso sequenziale; — tecniche per ottimizzare l’accesso sequenziale; Si miglioranoSi migliorano le prestazioni dei PC dedicando sezioni della memoria alla le prestazioni dei PC dedicando sezioni della memoria alla

funzione di disco virtuale o disco RAM.funzione di disco virtuale o disco RAM.

Diverse locazioni di caching del discoDiverse locazioni di caching del disco

Page 17: Silberschatz, Galvin and Gagne 2002 12.1 Operating System Concepts Realizzazione del file system Struttura del file system Metodi di allocazione Gestione.

Silberschatz, Galvin and Gagne 200212.19Operating System Concepts

RecuperoRecupero

Verificatore di coerenza — confronta i dati nella struttura di directory con i blocchi di dati sul disco, e tenta di fissare le eventuali incoerenze.

Si impiegano programmi di sistema per copiare (back upback up ) dati dal disco ad un altro dispositivo di memorizzazione (dischetto, nastro magnetico).

Si recuperano file persi o dischi danneggiati ricaricandoli dal back–up.