SISTEMI OPERATIVI

REALIZZAZIONE DEL

Stru3ura del file system

» Stru/ura dei file ˃ Unità di memorizzazione logica ˃ Collezione di informazioni in relazione fra loro » Il file system ha una stru/ura straAficata » File system di solito memorizzato in disposiAvi di memorizzazione secondaria (dischi) ˃ Fornisce accesso efficiente al disco a/raverso meccanismi per la memorizzazione, localizzazione e recupero dei daA » File control block stru/ura che conAene i metadaA relaAvi al file » I driver dei disposiAvi controllano il disposiAvo fisico 2 Giorgio Giacinto 2013

Sistemi OperaAvi File System stra=ficato

3 Giorgio Giacinto 2013

Sistemi OperaAvi

Esempi di file system

» ISO 9660 (CD-ROM) » UFS () » FAT, FAT32, NTFS (Windows) » , () » HFS, HFS+ (Macintosh) » Google file system

4 Giorgio Giacinto 2013

Sistemi OperaAvi Giorgio Giacinto 2013 Giorgio Giacinto 2013 » » » » Principi Generali ConAene i de/agli su quel volume (FCB A ciascun file è associato un File Control Block La stru/ura della directory organizza i file Volume control un Sistema OperaAvo da quel volume ConAene le informazioni necessarie per avviare Boot control ˃ ˃ Sistemi OperaAvi Sistemi OperaAvi Superblock inode ) che conAene diversi de/agli sul file (UFS) (UFS), Master File Table block block (NTFS)

5 6 Giorgio Giacinto 2013 Giorgio Giacinto 2013 UNIX V7 Elemento di directory per MS-DOS Elemento di directory per Sistemi OperaAvi Sistemi OperaAvi 8 7 Giorgio Giacinto 2013 Giorgio Giacinto 2013 Win98 Elemento di directory per File Control Block Sistemi OperaAvi Sistemi OperaAvi

9 10 Stru3ure da= in memoria principale » Tabella di montaggio » Stru/ura della directory » Tabella generale dei file aperA » Tabella dei file aperA per ciascun processo » Buffer (le/ura/scri/ura)

11 Giorgio Giacinto 2013

Sistemi OperaAvi

Operazioni sui file e stru3ure da= del file system

Apertura di un file

12 Giorgio Giacinto 2013 Le/ura di un file

Sistemi OperaAvi Par=zioni

» Un disco può essere suddiviso in più parAzioni ˃ raw par++on e raw disk indicano parAzioni e dischi privi di stru/ura logica (ad es. usaA da DBMS) » Informazioni per l’avviamento del sistema ˃ una parAzione senza stru/ura + conAene una immagine da caricare in memoria e eseguire ˃ boot loader + consente di scegliere fra diversi sistemi operaAvi presenA in diverse parAzioni + deve interpretare diversi file system

13 Giorgio Giacinto 2013

Sistemi OperaAvi

Montaggio

» All’avvio di un sistema operaAvo si effe/ua il montaggio della root par++on ˃ conAene il sistema operaAvo » Montaggio altri file system ˃ verifica che il disposiAvo contenga un file system noto al sistema operaAvo ˃ montaggio in una directory del sistema ˃ inserimento informazioni sul file system montato nella tabella di montaggio in memoria

14 Giorgio Giacinto 2013

Sistemi OperaAvi File System Virtuali

» I file system virtuali (VFS) sono basaA su un approccio object-oriented alla realizzazione del file system

» I VFS consentono di usare una sola interfaccia del file system (API) per accedere a diversi file system

15 Giorgio Giacinto 2013

Sistemi OperaAvi

Schema di un File System Virtuale

16 Giorgio Giacinto 2013

Sistemi OperaAvi Giorgio Giacinto 2013 Giorgio Giacinto 2013 in Linux Virtual File System in Linux Sistemi OperaAvi Sistemi OperaAvi 18 17 Giorgio Giacinto 2013 Giorgio Giacinto 2013 » » directory Realizzazione delle Lista lineare con stru/ura daA hash Tabella daA Lista lineare ˃ ˃ ˃ ˃ ˃ Sistemi OperaAvi Sistemi OperaAvi hash nella medesima posizione Dimensione fissa Evitare collisioni, quando due nomi di file producono Riduce il tempo di ricerca nella directory Esecuzione lenta sopra/u/o per operazioni di ricerca Semplice da programmare Hash di nomi di file con puntatori ai blocchi di

19 20 Giorgio Giacinto 2013 Giorgio Giacinto 2013 Allocazione con=gua Sistemi OperaAvi Sistemi OperaAvi

21 22 Allocazione con=gua

» Sistema di semplice realizzazione » Accesso sequenziale e accesso dire/o molto efficienA » Problemi ˃ Allocazione spazio su disco ai file + Simile al problema di allocazione dinamica della memoria ˃ Frammentazione esterna ˃ Crescita delle dimensioni di un file

23 Giorgio Giacinto 2013

Sistemi OperaAvi

Estensioni

» Consentono l’uso della allocazione conAgua e l’aumento di dimensioni dei file ˃ Una estensione è cosAtuita da un insieme conAguo di blocchi ˃ Un file è cosAtuito da una o più estensioni ˃ Si può generare frammentazione interna

24 Giorgio Giacinto 2013

Sistemi OperaAvi Allocazione concatenata

25 Giorgio Giacinto 2013

Sistemi OperaAvi

Allocazione concatenata

» A ciascun file è assegnata una lista concatenata di blocchi ˃ Il puntatore al blocco successivo è memorizzato nel blocco stesso » I blocchi possono essere in qualunque parte del disco » Nessuna frammentazione » Efficiente per accessi sequenziali » Non efficiente per accessi direj ˃ Occorre percorrere la lista concatenata 26 Giorgio Giacinto 2013

Sistemi OperaAvi Allocazione concatenata

» Modifiche per ovviare ai problemi ˃ Allocazione per cluster di blocchi + Serve un puntatore per un insieme di blocchi + Migliora l’accesso dire/o al file ˃ Uso di liste doppiamente concatenate + Se si perde un blocco di un file, è possibile recuperare il resto del file » Le FAT sono una variante dell’allocazione concatenata ˃ OS/2, MS-DOS 27 Giorgio Giacinto 2013

Sistemi OperaAvi

File-Alloca=on Table

28 Giorgio Giacinto 2013

Sistemi OperaAvi Allocazione indicizzata

29 Giorgio Giacinto 2013

Sistemi OperaAvi

Allocazione indicizzata

» Vantaggi ˃ Elimina frammentazione ˃ Efficienza nell’accesso dire/o » Svantaggi ˃ Possibile spreco di spazio nel blocco indice » Allocazione di file di grandi dimensioni ˃ Blocchi indice concatenaA ˃ Indici mulAlivello

30 Giorgio Giacinto 2013

Sistemi OperaAvi Indici mul=livello

!

outer-index

index table file 31 Giorgio Giacinto 2013

Sistemi OperaAvi

Schema combinato UNIX UFS (4K bytes per blocco)

32 Giorgio Giacinto 2013

Sistemi OperaAvi Prestazioni

» Dipendono dalla Apologia di accesso ai file » Spesso si usano tecniche combinate ˃ ConAgua per file di piccole dimensioni ˃ Indicizzata per file di dimensioni medie e grandi » CriAcità ˃ I dischi rigidi hanno velocità di accesso molto inferiori alla velocità di esecuzione della CPU + Per ojmizzare gli accessi non è irragionevole aggiungere al sistema migliaia di istruzioni!

33 Giorgio Giacinto 2013

Sistemi OperaAvi

34 Giorgio Giacinto 2013

Sistemi OperaAvi Ve3ore di bit

» Ogni blocco sul disco è rappresentato da un bit ˃ bit = 1 ð blocco libero ˃ bit = 0 ð blocco occupato » Ricerca dello spazio libero ˃ Scansione del ve/ore ˃ L’efficienza dipende dalle istruzioni della CPU per l’analisi di ve/ori di bit » Non ada/o per dischi di grandi dimensioni ˃ Il ve/ore occuperebbe uno spazio eccessivo in memoria

35 Giorgio Giacinto 2013

Sistemi OperaAvi

Lista concatenata

36 Giorgio Giacinto 2013

Sistemi OperaAvi Altri metodi

» Raggruppamento ˃ Ogni n blocchi liberi, il primo blocco conAene gli indirizzi dei successivi n-1 blocchi liberi ˃ L’ulAmo blocco del gruppo di n conAene gli indirizzi dei successivi n blocchi liberi » Conteggio ˃ Spesso i blocchi liberi sono con+gui (cancellazione di file allocaA in modo conAguo) ˃ Si memorizza l’indirizzo del primo blocco e il numero di blocchi liberi conAgui 37 Giorgio Giacinto 2013

Sistemi OperaAvi

38 Giorgio Giacinto 2013

Sistemi OperaAvi Efficienza

» Dipende da molteplici fa/ori ˃ Modalità più frequenA di uso dei file ˃ Informazioni memorizzate nella directory ˃ Tecnologia + Velocità CPU + Dimensioni e velocità dei dischi + Indirizzamento memoria

39 Giorgio Giacinto 2013

Sistemi OperaAvi

Prestazioni

» Cache del disco Parte della memoria principale è usata per memorizzare i blocchi usaA più frequentemente ˃ MolA sistemi operaAvi unificano la cache del disco con la cache delle pagine Memoria virtuale unificata » Free-Behind and Read-Ahead Ojmizzano gli accessi sequenziali » Dischi Virtuali Porzioni della memoria principale 40 Giorgio Giacinto 2013

Sistemi OperaAvi Giorgio Giacinto 2013 Giorgio Giacinto 2013 » » » (business con=nuity) Ripris=no Ridondanza Sistemi di back up Verifica della coerenza ˃ ˃ ˃ Sistemi OperaAvi Sistemi OperaAvi diversi sistemi fisici magneAci, dischi ojci) altri sistemi di memorizzazione (nastri, dischi periodicamente i daA dal sistema di produzione ad il contenuto dei blocchi nel disco i file (e le copie di backup) sono sempre disponibili in programmi di sistema che trasferiscono confronto fra i daA nella stru/ura della directory con 41 42 File System con registrazione delle modifiche » Tecnica mutuata dai sistemi di gesAone delle basi di daA ˃ Operazioni sul file system tra/ate come transazioni » Si manAene un registro (log) dell’esecuzione delle transazioni ˃ de/o anche journaling » Le modifiche da eseguire sul file system sono scri/e sul log ˃ Se le modifiche sono apportate al file system con successo, si cancella la transazione dal log » In caso di interruzione improvvisa dei servizi di gesAone del file system, tu/e le transazioni presenA nel log

devono essere ancora completate 43 Giorgio Giacinto 2013

Sistemi OperaAvi