SISTEMI OPERATIVI REALIZZAZIONE DEL FILE SYSTEM 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
File System stra=ficato 3 Esempi di file system» ISO 9660 (CD-ROM)» UFS (Unix)» FAT, FAT32, NTFS (Windows)» ext2, ext3 (Linux)» HFS, HFS+ (Macintosh)» Google file system 4
5 Principi Generali» Boot control block ConAene le informazioni necessarie per avviare un Sistema OperaAvo da quel volume» Volume control block ConAene i de/agli su quel volume Superblock (UFS), Master File Table (NTFS)» La stru/ura della directory organizza i file» A ciascun file è associato un File Control Block (FCB) che conaene diversi de/agli sul file inode (UFS) 6
Elemento di directory per UNIX V7 7 Elemento di directory per MS-DOS 8
Elemento di directory per Win98 9 File Control Block 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 Operazioni sui file e stru3ure da= del file system Apertura di un file Le/ura di un file 12
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 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
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 Schema di un File System Virtuale 16
Virtual File System in Linux 17 Virtual File System in Linux 18
19 Realizzazione delle directory» Lista lineare di nomi di file con puntatori ai blocchi di daa Semplice da programmare Esecuzione lenta sopra/u/o per operazioni di ricerca» Tabella Hash Lista lineare con stru/ura daa hash Riduce il tempo di ricerca nella directory Evitare collisioni, quando due nomi di file producono hash nella medesima posizione Dimensione fissa 20
21 Allocazione con=gua 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 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
Allocazione concatenata 25 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
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 File-Alloca=on Table 28
Allocazione indicizzata 29 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
Indici mul=livello! outer-index index table file 31 Schema combinato UNIX UFS (4K bytes per blocco) 32
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 34
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 Lista concatenata 36
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 38
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 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
41 Ripris=no (business con=nuity)» Verifica della coerenza confronto fra i daa nella stru/ura della directory con il contenuto dei blocchi nel disco» Sistemi di back up programmi di sistema che trasferiscono periodicamente i daa dal sistema di produzione ad altri sistemi di memorizzazione (nastri, dischi magneaci, dischi ojci)» Ridondanza i file (e le copie di backup) sono sempre disponibili in diversi sistemi fisici 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