Sistemi Operativi Il file system Casi di studio AA 2002/03 ©Bruschi, Rosti 1 Sistemi Operativi Corso di laurea in Informatica CP/M • • • • • Control Program for Microcomputer Predecessore del MS-DOS Dimensione media 16K File system predisposto per Floppy Allocazione dei file come lista-linkata di blocchi • Gestione dei blocchi liberi via bitmap • Nomi dei file di caratteri 8 + 3 AA 2002/03 ©Bruschi, Rosti 2 Sistemi Operativi Corso di laurea in Informatica CP/M • Dimensione fissa dei record di directory (32-byte) • La dimensione della directory è anch’essa fissa • Directory singola • Dimensione del blocco fisico 128 byte • Dimensione del blocco logico 1K-byte AA 2002/03 ©Bruschi, Rosti 3 Sistemi Operativi Corso di laurea in Informatica Il File System di CP/M Elemento di directory del S.O. CP/M AA 2002/03 ©Bruschi, Rosti 4 Sistemi Operativi Corso di laurea in Informatica CP/M • Dopo il boot il sistema carica dal disco la bitmap dei blocchi liberi (23 byte per un disco di 180K) • La open ricerca nella directory l’entry relativa al file richiesto e trasferisce il suo contenuto in memoria • Gli accessi al contenuto sono facilitati dall’avere l’indirizzo dei blocchi su cui i file risiede in memoria AA 2002/03 ©Bruschi, Rosti 5 Sistemi Operativi Corso di laurea in Informatica MS-DOS • Sistema operativo costruito su processori INTEL • Nella prima versione è un abbellimento del CP/M • Allocazione dei file come lista-linkata di blocchi • Adotta come meccanismo per la gestione dello spazio su disco la FAT AA 2002/03 ©Bruschi, Rosti 6 Sistemi Operativi Corso di laurea in Informatica MS-DOS • Dimensione variabile dei record di directory (32-byte) • Directory singola nella release 1.0 ad albero a partire dalla release 2.0 • Diverse possibili dimensioni per i blocchi, comunque multipli di 512 byte • Diverse versioni di FAT • Il file system supporta più partizioni per ogni disco AA 2002/03 ©Bruschi, Rosti 7 Sistemi Operativi Corso di laurea in Informatica Il File System di MS-DOS Elemento di directory in MS-DOS AA 2002/03 ©Bruschi, Rosti 8 Sistemi Operativi Corso di laurea in Informatica W2000 AA 2002/03 ©Bruschi, Rosti 9 Sistemi Operativi Corso di laurea in Informatica Formati • W2000 supporta diversi formati di file system che differiscono tra loro per le modalità con cui gestiscono le informazioni in essi memorizzate: • • • • CDFS: per i CD-ROM UDF: per i DVD FAT12, FAT16, FAT32 NTFS: file system nativo AA 2002/03 ©Bruschi, Rosti 10 Sistemi Operativi Corso di laurea in Informatica NTFS • I dischi sono divisi in volumi • Il blocco logico in NTFS viene chiamato cluster • NTFS indirizza solo i cluster • La principale struttura dati per ogni volume è la Master File Table (MFT) • MFT è un array di record la cui dimensione è fissa e pari a 1Kbyte • La gestione dei blocchi liberi è fatta attraverso bitmap AA 2002/03 ©Bruschi, Rosti 11 Sistemi Operativi Corso di laurea in Informatica MFT AA 2002/03 ©Bruschi, Rosti 12 Sistemi Operativi Corso di laurea in Informatica MFT • Ogni MFT è costituito da una sequenza di attributi • Ogni attributo è definito da una coppia: header e valore • Il numero di attributi che definiscono un MFT e quindi un file non è fisso AA 2002/03 ©Bruschi, Rosti 13 Sistemi Operativi Corso di laurea in Informatica Attributi usati in MFT AA 2002/03 ©Bruschi, Rosti 14 Sistemi Operativi Corso di laurea in Informatica Attributi • Un file può quindi avere più attributi di tipo data • Se un file è particolarmente corto il suo contenuto è memorizzato nel MFT corrispondente • Altrimenti nel MFT sono memorizzati gli indirizzi di sequenze di cluster (run) in cui sono presenti i dati AA 2002/03 ©Bruschi, Rosti 15 Sistemi Operativi Corso di laurea in Informatica Esempio di Record MFT AA 2002/03 ©Bruschi, Rosti 16 Sistemi Operativi Corso di laurea in Informatica MFT complesso AA 2002/03 ©Bruschi, Rosti 17 Sistemi Operativi Corso di laurea in Informatica Directory AA 2002/03 ©Bruschi, Rosti 18 Sistemi Operativi Corso di laurea in Informatica Struttura di W2000 AA 2002/03 ©Bruschi, Rosti 19 Sistemi Operativi Corso di laurea in Informatica Object Name Space AA 2002/03 ©Bruschi, Rosti 20 Sistemi Operativi Corso di laurea in Informatica File Name Lookup Passi per la ricerca del file C:maria\web.htm AA 2002/03 ©Bruschi, Rosti 21 Sistemi Operativi Corso di laurea in Informatica Compressione • In W2000 un file può essere creato in modo compresso • Ogni volta che un file viene riscritto su disco il sistema tenta di comprimerlo utilizzando come unità di riferimento 16 cluster • Se la compressione dà esito positivo si provvede a riscrivere i dati compressi AA 2002/03 ©Bruschi, Rosti 22 Sistemi Operativi Corso di laurea in Informatica Compressione AA 2002/03 ©Bruschi, Rosti 23 Sistemi Operativi Corso di laurea in Informatica UNIX AA 2002/03 ©Bruschi, Rosti 24 Sistemi Operativi Corso di laurea in Informatica Layout del disco • Il superblocco contiene informazioni di gestione • Numero di i-node • Numero di blocchi del disco • Indirizzo d’inizio della lista dei blocchi liberi AA 2002/03 ©Bruschi, Rosti 25 Sistemi Operativi Corso di laurea in Informatica I-node Directory entry fields. AA 2002/03 ©Bruschi, Rosti 26 Sistemi Operativi Corso di laurea in Informatica File di grosse dimensioni AA 2002/03 ©Bruschi, Rosti 27 Sistemi Operativi Corso di laurea in Informatica Entry di Directory AA 2002/03 ©Bruschi, Rosti 28 Sistemi Operativi Corso di laurea in Informatica UNIX V7 File System Come avviene la ricerca del file: /usr/ast/mbox AA 2002/03 ©Bruschi, Rosti 29 Sistemi Operativi Corso di laurea in Informatica Lettura dei dati da file • Per accedere ai dati di un file è necessario trasferire i dati presenti nell’i-node in memoria • Le soluzioni possono essere due • In una tabella di sistema • Facilità la condivisione delle strutture dati • In una tabella privata del processo • Svincola le attività di un processo su un file da quelle che possono essere svolte da un altro processo • Spreco memoria AA 2002/03 ©Bruschi, Rosti 30 Sistemi Operativi Corso di laurea in Informatica Lettura dati • Considero il I caso • due processi che accedono al file in posizioni diverse (dove inserisco il puntatore al file?) • Posso inserirlo in uno spazio privato riservato ad ogni processo • Mantengo così una struttura unica con i dati degli i-node • Rendo più processi che vogliono operare sullo stesso file autonomi, ma ciascuno “vede” le modifiche apportare dall’altro AA 2002/03 ©Bruschi, Rosti 31 Sistemi Operativi Corso di laurea in Informatica Lettura dati • Sorge però un altro problema • Come posso fare in modo che due processi padre e figlio possano condividere in fase di esecuzione lo stesso puntatore a file e cioè ciascuno veda le modifiche che l’altro apporta a questo campo? AA 2002/03 ©Bruschi, Rosti 32 Sistemi Operativi Corso di laurea in Informatica UNIX File System (3) AA 2002/03 ©Bruschi, Rosti 33 Sistemi Operativi Corso di laurea in Informatica Linux • Linux supporto un proprio file system noto come Ext2 • Ext2 è basato sui principi generali del file system di Unix • Adotta la bitmap come sistema per memorizzare i blocchi liberi e gli i-node liberi • Per l’indirizzamento usa lo schema 12+3 invece di 10+3 • Il disco viene diviso in gruppi di blocchi per tenere fisicamente vicini gli i-node con i blocchi dati AA 2002/03 ©Bruschi, Rosti 34 Sistemi Operativi Corso di laurea in Informatica File System di Linux AA 2002/03 ©Bruschi, Rosti 35 Sistemi Operativi Corso di laurea in Informatica