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