File Management Sommario File File Management System
Transcript
File Management Sommario File File Management System
31-05-2011 Sommario • Panoramica File Management File • I file costituiscono gli elementi fondamentali di molte applicazioni • Il File System e’ una delle parti piu’ importanti (e caratterizzanti) di un SO • Proprieta’ desiderate per i file: • • • • Organizzazione dei file ed accesso ad essi File Directories Record Blocking Gestione della Memoria Secondaria File Management System • Il sistema di gestione dei file consiste di programmi di utilita’ di sistema che sono in esecuzione come applicativi dotati di speciali privilegi • Gestisce le memorie secondarie – Persistenza – Possibilita’ di condivisione tra diversi processi – Struttura 1 31-05-2011 Operazioni Tipiche • I File system forniscono funzionalita’ relative ai file quali: – Creazione – Cancellazione – Apertura – Chiusura – Lettura – Scrittura Terminologia • Termini di uso comune quando si parla di file: – Field (Campi) – Record – File – Database Campi e Record • Field – Porzione elementare dei dati – Contiene un singolo valore – Caratterizzato dalla lunghezza e dal tipo di dati • Record – Collezione di campi correlati – Trattato come una singola unita’ dei dati File e Database • File – Hanno un nome – Una collezione di record simili – Considerato come unita’ di memorizzazione – Puo’ implementare meccanismi di controllo degli accessi • Database – Collezione di dati correlati – Relazioni tra gli elementi – Consiste di uno o piu’ file 2 31-05-2011 File Management Systems • Fornisce i servizi relativi all’uso dei file ad utenti ed applicativi – Utenti ed applicativi accedono ai file tramite esso • Semplifica la vita dei programmatori – Nessuna necessita’ di includere in ogni programma parti specifiche relative alla gestione dei file Requisiti di un sistema general purpose 1. Ogni uente deve poter creare, cancellare, leggere, scrivere e modificare file 2. Ogni utente puo’ avere accesso (controllato) ai file di altri utenti 3. Ogni utente puo’ controllare quali accessi sono predisposti per i file 4. Ogni utente dovrebbe poter definite una struttura dei file appropriata per le proprie applicazioni Obiettivi del File Management System • Soddisfare le necessita’ di gestione dei file degli utenti • Garantire la validita’ dei dati nei file • Ottimizzare le performance • Fornire supporto all’ I/O dai diversi dispositivi • Minimizzare perdita o alterazione dei dati • Fornire un’insieme di routine standard di I/O • Fornire funzionalita’ di I/O per condivisione tra piu’ utenti (se necessario) Requisiti (cont.) 5. Ogni utente dovrebbe poter trasferire dati tra i file 6. Ogni utente dovrebbe poter fare back up e recovery dei file 7. Ogni utente dovrebbe poter accedere ai file usando nomi simbolici 3 31-05-2011 Tipica struttura a livelli Device Drivers (Controllori) • Livello piu’ basso • Comunica direttamente con i dispositivi periferici • Inizializza le operazioni di I/O sul dispositivo • Completa la richiesta di I/O al dispositivo Basic File System • I/O a livello fisico • Si occupa dello scambio dei blocchi di dati – Trasferimento dei blocchi sul dispositivo di memoria secondaria – Buffering dei blocchi nella memoria centrale Basic I/O Supervisor • Responsabile per l’inizializzazione ed il completamento dell’ I/O su file • Strutture di controllo per • Device I/O, • Scheduling, • File status. • Seleziona il dispositivo per l’operazione di I/O ed utilizza scheduling per ottimizzare. 4 31-05-2011 Logical I/O • Permette l’accesso strutturato ai file (struttura a record) • Fornisce funzionalita’ generali per I/O orientato ai record Modalita’ di Accesso • Corrisponde alle diverse strutture per i file • Fornisce un’interfaccia tra applicazioni ed il file system e i dispositivi che mantengono i dati • Dipendente dalla struttura del dipositivo Elementi del File Management Sommario • • • • • Panoramica Organizzazione dei file ed accesso ad essi File Directories Record Blocking Gestione della Memoria Secondaria 5 31-05-2011 Organizzazione dei File • Struttura logica dei record – La struttura fisica sara’ discussa in seguito • Determina il modo in cui si accede ai file Criteri di organizzazione dei File • Criteri principali: – Tempo di accesso breve – Facilita’ di aggiornamento – Economia di spazio – Semplicita’ di gestione – Affidabilita’ • Priorita’ dipendenti dall’uso (es. read-only CD vs Hard Drive) – In alcuni casi diversi criteri confliggono Tipi di Struttura • Variazioni delle seguenti strutture di base: – Pila – File sequenziale – File sequenziale indicizzato – File indicizzato – File ad accesso diretto o hash La Pila • Dati aggiunti nell’ordine in cui arrivano – Nessuna struttura • Scopo: acquisire una quantita’ di dati e memorizzarli • Record con campi diversi • Accesso ai record mediante ricerca esaustiva 6 31-05-2011 File Sequenziale • Record a struttura fissa • Record di uguale lunghezza – Stessi campi nello stesso ordine e della stessa lunghezza • Nomi dei campi e lunghezza sono proprieta’ del file • Campo Chiave – Identifica univocamente il record – Record memorizzati ordinati per chiave File indicizzato • Usa indici multipli, uno per ogni campo chiave (possono essercene diversi) – Indici esaustivi (una voce per ogni record del file) – Indice parziale (es., tipo rubrica) File sequenziale indicizzato • Maintiene le caratteristiche del file sequenziale: • record organizzati in sequenza sulla base del campo chiave. Due caratteristiche addizionali: • Un indice per permettere accesso random, • Un file di overflow. Accesso diretto o hash • Sfrutta l’accesso diretto al singolo blocco possibile sui dispositivi in cui ogni blocco ha un indirizzo univoco (dischi). • Campo chiave per ogni record – Hashing delle chiavi verso i record • Per ogni inserimento di un nuovo record, tutti gli indici vanno aggiornati. 7 31-05-2011 Performance Sommario Un confronto dei 5 modelli di organizzazione dei File • Panoramica • Organizzazione dei File • File Directories • Record Blocking • Gestione della Memoria Secondaria Directory • Contiene informazioni sui file – Attributi – Posizione – Proprieta’ • La Directory e’ un file di cui il SO e’ proprietario • Fornisce la corrispondenza tra nomi dei file ed i file veri e propri Elementi della Directory • File Name – Nome scelto dal creatore del file (utente o programma). – Non possono esserci due nomi uguali nella stessa directory. • Tipo di File • Organizzazione dei File – Per sistemi che permettono piu’ di un modello 8 31-05-2011 Elementi della Directory • Volume – Indica il dispositivo sui cui risiede il file • Indirizzo inizioale • Taglia – Taglia del file espressa in byte, parolemacchina, o blocchi • Spazio allocato – La taglia massima raggiungibile dal file Elementi della Directory • • • • • • • • Data di creazione Identita’ del creatore Data di ultimo accesso in lettura Identita’ dell’ultimo utente che ha letto Data dell’ultima modifica Identita’ dell’ultimo utente che ha modificato Data dell’ultimo backup Attivita’ in corso – lock, file aperto, file in modifica, etc. Elementi della Directory • Utente proprietario (owner) – puo’ permettere accesso agli altri utenti e/o limitarne i privilegi di accesso. • Informazioni relative agli accessi – Possono includere nome-utente e password per ogni utente autorizzato • Azioni permesse – Per il controllo della lettura, scrittura ed esecuzione, trasmissione in rete, etc. Struttura della Directory • Diversi metodi esistono per memorizzare le informazioni di cui sopra • Il piu’ semplice e’ una lista di voci (una per file) – Un file sequenziale con il nome del file usato come campo chiave – Non permette alcuna organizzazione dei file in sottogruppi – Obbliga gli utenti ad evitare nomi uguali 9 31-05-2011 Operazioni sulla Directory • Minimo insieme di operazioni da garantire: – Ricerca – Creazione di file – Cancellazione di file – Elencare i file nella directory – Aggiornare la directory Schema a due livelli • Una directory per utente e una directori master – La directory master contiene un elemento per ogni utente – Fornisce informazioni di controllo, accesso e localizzazione • Ogni directory utene e’ una semplice lista dei file per quell’utente – Non fornisce struttura per sottoinsiemi di file Struttura gerarchica o ad albero • Master directory con le directory degli utenti come sottodirectory • Ogni directory utente puo’ avere a sua volta sottodirectory e/ o file come suoi elementi Naming • Gli utenti devono potersi riferire univocamente ai file con nomi logici – ma gli utenti potrebbero non essere al corrente dei nomi usati da altri utenti • La struttura ad albero permette agli utenti di avere un riferimento univoco identificato dal cammino dalla radice al file – File con lo stesso nome sono possibili se hanno un diverso pathnames 10 31-05-2011 Esempio di struttura ad albero Directory di lavoro • Usare il pathname completo per riferirsi ad un file non e’ confortevole • In genere ad ogni utente o processo viene associata un directory corrente o di lavoro – I file possono essere indicati con il pathname relativo allla directory di lavoro Sommario • Panoramica • Organizzazione dei file ed accesso ad essi • File Directories • Record Blocking • Gestione della Memoria Secondaria Blocchi e record • I Record sono l’unita’ logica di accesso ad un file strutturato – Ma i blocchi sono l’unita’ per le operazioni di I/O su dispositivo di memoria secondaria • Tre approcci comuni di“traduzione” (blocking) – Blocking con record a lunghezza fissa – Blocking a lunghezza variabile con possibilita’ di record su piu’ blocchi – Blocking a lunghezza variabile con record su singolo blocco 11 31-05-2011 Blocking con record a lunghezza fissa Blocking con record a lunghezza fissa • Un numero intero di record per blocco. • Spazio inutilizzato alla fine di un blocco determina frammentazione interna Blocking a lunghezza variabile con estensione tra blocchi Blocking a lunghezza variabile con estensione tra blocchi • Record di lunghezza variabile vengono compattati in blocchi senza perdita di spazio. • I record possono anche estendersi oltre il limite di un blocco – Indicato da un puntatore al blocco successivo 12 31-05-2011 Blocking a lunghezza variabile senza estensione tra blocchi Blocking a lunghezza variabile senza estensione tra blocchi • Record a lunghezza variabile • Ogni record memorizzato in un solo blocco • Rischio di perdita di spazio in molti blocchi per frammentazione interna. – Un record lascia in un blocco meno spazio di quanto necessario al record successivo Sommario • • • • Panoramica Organizzazione dei file ed accesso ad essi File Directories Record Blocking • Gestione della Memoria Secondaria Gestione delle Memorie Secondarie • Il SO e’ responsabile dell’allocazione dei blocchi ai file • Due problemi correlati – Allocazione di spazio ai file – Mantenimento di informazioni relative allo spazio libero (disponibile per future richieste di allocazione) 13 31-05-2011 Problematiche di allocazione dei file 1. Creazione di un file – allocare direttamente il massimo spazio possibile? 2. Lo spazio viene aggiunto ai file in lotti contigui – Di che taglia devono essere tali lotti? 3. Quali strutture dati per tener traccia dei lotti assegnati ad un file? Taglia dei lotti • Casi estremi: – Lotti abbastanza grandi da contenere l’intero file – Allocazione di un blocco per volta Preallocazione vs. Allocazione Dinamica • Bisogna conoscere la taglia massima raggiungibile dal file al momento della creazione – Difficile da stimare in anticipo – Rischio di sovrastima ed occupazione di spazio non necessario (se il compito e’ lasciato agli utenti) Metodi di Allocazione dei File • Tre metodi principalmente usati: – contigua, – A lista linkata – indicizzata • Trade-off tra l’efficienza d’uso relativa al singolo file, e l’efficienza, e l’efficienza globale del sistema 14 31-05-2011 Allocazione Contigua Allocazione Contigua • Un singolo insieme di blocchi viene allocato al file al momento della sua creazione • Una singola voce nella tavola di allocazione – Blocco iniziale e lunghezza del file • Frammentazione esterna – Necessita’ di “compattazione” Frammentazione Esterna Allocazione a lista linkata • Allocazione per blocchi singoli • Ogni blocco contiene un puntatore al blocco successivo nella lista • Una singola voce nella tavola di allocazione dei file – Blocco inziale e lunghezza del file • Nessuna frammentazione esterna • Metodo migliore per accesso sequenziale 15 31-05-2011 Allocazione a lista linkata “Consolidation” di lista linkata Allocazione Indicizzata Allocazione Indicizzata • La tavola di allocazione contiene un indice monolivello per ogni file • L’indice contiene una voce per ogni lotto allocato al file • La tavola di allocazione contiene il numero di blocco dell’indice • Allocazione puo’ essere – Lotti di taglia fissa – Lotti di taglia variabile • Nessuna frammentazione esterna • Lotti di taglia variabile per aumentare la localita’ (accesso piu’ veloce) • Operazioni di “consolidation” periodiche 16 31-05-2011 Allocazione Indicizzata a lotti fissi (un blocco) Allocazione Indicizzata a lotti variabili Gestione dello spazio libero Bit Tables • Anche lo spazio non allocato necessita di strutture di gestione • Per allocare spazio, bisogna sapere quali blocchi sono liberi • C’e’ bisogno di una tavola di allocazione dei dischi oltre alla tavola di allocazione dei file • Questo metodo usa un vettore contenente un bit per ogni blocco sul disco • 0 corrisponde ad un blocco libero – e ogni 1 corrisponde ad un blocco in uso. • Vantaggi: – Funziona bene con ogni metodo di allocazione dei file – Spazio occupato puo’ essere grande 17 31-05-2011 Lista dei lotti liberi • Le sequenze di blocchi liberi possono essere linkate mediante puntatori ed un valore relativo alla lunghezza dei lotti. • Overhead di spazio trascurabile • Si adatta ai diversi metodi di allocazione • Puo’ diventare poco efficiente in caso di file frammentati da rilasciare o in caso di frammentazione (lotti di dimensione piccola) Free Block List • Ogni blocco ha un numero assegnato – La lista dei numeri dei blocchi liberi e’ mantenuta in una parte riservata del disco. – Una parte della lista puo’ essere tenuta in memoria per aumentare l’efficienza – Ad intervalli regolari la parte in memoria e la lista completa sul disco vanno sincronizzate – La lista in memoria puo’ essere ordinata in modo da facilitare allocazione contigua Indicizzazione • Spazio libero trattato come un file e uso di una tavola indice come nel caso di allocazione indicizzata dei file • Per maggiore efficienza, l’indice dovrebbe essere a lotti variabili. – Una voce per ogni porzione di spazio libero contiguo. Volumi • Un insieme di settori indirizzabili su dispositivi di memoria secondaria che il SO usa per memorizzare dati. • I settori di un volume non corrispondono necessariamente a spazi contigui del dispositivo fisico; – Appaiono tali al SO o alle applicazioni. – Un volume puo’ risiedere su piu’ dischi – Un disco puo’ contenere piu’ volumi 18 31-05-2011 Inode Esempio: UNIX File Management • Index node • Struttura di Controllo che contiene informazioni chiave per un file. • Piu’ filename possono essere associati allo stesso inode (in quale circostanza???) – Ma un inode attivo e’ associato ad un unico file, e – Ogni file e’ controllato da un solo inode FreeBSD Inode File Structure File Allocation • File allocation fatta a blocchi. • Allocazione dinamica direct (0) direct (1) – Blocchi non necessariamente contigui • Indicizzazione direct (11) Single indirect Double indirect Triple indirect – Parte dell’indice nel file inode. • Inode include un numero di puntatori diretti – e 3 puntatori indiretti 19