File System - homes.dico.unimi.ithomes.dico.unimi.it/~sisop/lucidi0910/Solez23.pdf · A.A....
Transcript of File System - homes.dico.unimi.ithomes.dico.unimi.it/~sisop/lucidi0910/Solez23.pdf · A.A....
File System
Sistemi Operativi Lezione 23
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi2
Necessità
• Un qualunque sistema per la gestione delle informazioni deve essere in grado di soddisfare i seguenti requisiti:
• Memorizzare grosse quantità di dati• Garantire che le informazioni memorizzate
sopravvivano al processo che le ha generate• Consentire l’accesso alle informazioni a più processi
indipendentemente dal processo che le ha generate
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi3
File System
• Le informazioni sono memorizzate permanentemente su dischi o dispositivi analoghi sotto forma di file
• I file sono gestiti dal SO che decide le modalità di gestione e d’uso
• La componente del sistema operativo dedicata alla gestione dei file è chiamata file system
• In alcune circostanze il termine file system è usato anche per indicare l’insieme dei file contenuti in un sistema
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi4
Obiettivi di un file system (lato user)
• Fornire sotto forma di syscall o comandi le necessarie primitive affinché ogni utente possa:• Creare, cancellare, leggere, e modificare un file• Eseguire le operazioni di back-up e recovery• Definire schemi per controllare chi accede ai
propri file • Strutturare i propri file in base alle proprie
necessità• Spostare dati tra file
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi5
Obiettivi di un file system (lato sistema)
• Garantire l’integrità dei dati memorizzati nei file
• Ottimizzare l’uso dello spazio su disco• Ottimizzare in termini di tempo le prestazioni
dei dispositivi• Supportare dispositivi di memorizzazione
diversi• Minimizzare o eliminare i rischi per la perdita
di dati
I Dischi
Alcune delle fotografie riportate sono riprese da: http://royal.pingdom.com/2010/02/18/amazing-facts-and-figures-about-the-evolution-of-hard-disk-drives/
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi7
Hard Disk
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi8
Disk Head
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi9
Controller (IDE)
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi10
IDE Cable
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi11
3 ISAslots
5 PCI slots Pentium CPU6 SIMMslots
2 DIMM slots
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi12
Tracce e Settori
• Ogni superficie è suddivisa in un insieme di Tracce
• Ogni traccia è suddivisa in settore
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi13
Tracce
• Struttura fisica di un disco con doppio settore sulle tracce esterne
• Struttura logica dello stesso dispositivo
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi14
Formato di una traccia
dataheadergap gap
CRC
SettoreSettore Precedente
Prossimo
Inter-blockgap
Inter-blockgap
Note:
CRC è acronimo di “cyclic redundancy check”. Un codice correttore relativo al campo data, situato alla fine di ogni settore.
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi15
Cilindri
• Tutte le tracce con lo stesso numero costituiscono un cilindro
surface 0
surface 1surface 2
surface 3surface 4
surface 5
cylinder k
spindle
platter 0
platter 1
platter 2
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi16
Cilindri
•
arm
Le testine si muovonoda cilindro a cilindro
spindle
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi17
Disk Hardware
Evoluzione dei dischi a partire dal dispositivo originale del PC IBM sino al modello Western Digital WD 18300
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi18
1956 – Primo HD (IBM 350)- 5MB
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi19
1979 – 250 MB
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi20
L’evoluzione
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi21
Ultima generazione (2008)
1GB, 16 mm in altezza, 16 grammi
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi22
L’evoluzione
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi23
Errori
• Nella gestione di un disco si possono verificare diverse tipologie di errore, alcune di queste possono essere risolte dal controller, nella maggior parte dei casi è il driver che deve trovare una soluzione• Errori di programmazione: invio di parametri errati (n.ro
cilindro, n.ro settore ecc.) al controller. In questi casi l’operazione va interrotta sperando che non si verifichi troppo frequentemente
• Transient checksum error: errori di lettura/scrittura a causa di tracce di polvere. In questi casi si tratta di riprovare un certo numero di volte
• Permanent checksum error: il settore viene marcato come cattivo (bad). Solo l’hw può porre rimedio a questa situazione
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi24
Errori
• Seek errors: il braccio non è ben calibrato e non si posiziona correttamente sulle tracce. È necessario avviare un’operazione per ricalibrare il braccio, quando il controller lo rende possibile
• Controller error: anche in questo caso va avviata un’operazione di reset del controller, che può comunque risultare non risolutiva
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi25
Bad Block
a. Una traccia con settore rovinatob. Sostituzione di un settore disponibile con il contenuto
del settore rovinatoc. Shifting di tutti i settori per bypassare quello rovinato
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi26
R.A.I.D. Redundant array of inexpensive disks
• Un tipo di unità dischi che utilizza una combinazione di due o più due o più drive per migliorare la resistenza ai guasti e le prestazioni
• Usata frequentemente nei sistemi server, molto meno sui PC
• Si distinguono diversi livelli di R.A.I.D.
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi27
R.A.I.D. (0 - 1)
• Livello 0• Data striping su più dischi • Nessuna ridondanza• Migliora le prestazioni ma non ha effetto sulla fault-tolerance
• Livello 1• Data mirroring: (a.k.a.: “shadowing”)• I dati sono scritti contemporaneamente su due dischi diversi• Se un disco si guasta, il sistema “si sposta” automaticamente sul
secondo senza alcuna perdita di dati o di qualità del servizio• Grosso impatto sulla fault tolerance, poco impatto sulle prestazioni
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi28
R.A.I.D. (3 - 5)
• Level 3• I dati sono gestiti come nel livello 0, in più è però
previsto un disco per contenere i dati necessari alla correzione
• Ottime prestazioni, and some level of fault tolerance
• Level 5• Data striping a livello byte, e codice di correzione a
livello stripe• Prestazioni molto buone, fault tolerance buona
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi29
R.A.I.D.
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi30
Disk Arm Scheduling
• Il tempo richiesto per leggere o scrivere un blocco del disco è determinato da tre fattori
1. Seek time2. Rotational delay3. Actual transfer time
• Il termine preponderante è il tempo di seek
• Il controllo degli errori è effettuato dal device controller
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi31
File system lato utente
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi33
Termini
• Campo• Elemento base• Contiene un singolo valore• Caratterizzato dal tipo di dato e dalla dimensione
• Record• Insieme di campi opportunamente correlati• Trattato come una singola entità logica
• Esempi: record studente, impiegato, cittadino
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi34
File
• File• Insieme di record omogenei opportunamente
correlati• Identificato da un nome logico
• Database• Collezione di record non necessariamente
omogenei e di relazioni tra loro esistenti
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi35
File naming
• Il primo problema che il file system deve risolvere è proporre agli utenti uno schema attraverso il quale identificare i propri file all’interno di un sistema• I nomi solitamente possono contenere un
qualunque carattere alfanumerico fatta eccezione per alcuni caratteri speciali
• I nomi variano in lunghezza 8-255 caratteri• Alcuni sistemi non distinguono tra maiuscole e
minuscole• È oramai prassi utilizzare una notazione postfissa
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi36
File Naming
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi37
Struttura dei file
• Ulteriore elemento che caratterizza un file system sono le modalità con cui consente ad un utente di organizzare le proprie informazioni all’interno di un file
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi38
Tipi di file
• Ogni file system può supportare diversi tipi di file che differiscono tra loro per l’uso che il sistema ne fa• Regular file: contengono informazioni degli utenti
• ASCII• Binary
• Directory: usati dal file system • Character special file: presenti sul sistema Unix,
dove sono usati per la gestione di dispositivi seriali• Block special file: presenti sul sistema Unix, dove
sono usati per la gestione di dispostivi a blocchi
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi39
Binary file
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi40
File Access
• Le modalità di accesso determinano come un’applicazione può accedere ai dati memorizzati in un file
• Accesso Sequenziale • Legge tutti i bytes/records dall’inizio• Non è possibile effettuare salti all’interno del file, è
possibile ritornare all’inizio o ripartire dall’ultima operazione di lettura
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi41
File access
• Random access• bytes/records possono essere letti in qualunque
ordine• Fondamentale per supportare data base • La read può avere due diversi formati:
• Move file marker (seek), then read (file) • Read (file, n.ro rec.), Read (file, key)
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi42
Attributi o metadata
• Sono informazioni associate al file ed usate dal sistema per svolgere attività di gestione e manutenzione del file:• Controllo degli accessi• Back-up• Gestione degli spazi• accounting
• Sono dati molto dipendenti dal sistema operativo
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi43
Attributi di un File
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi44
Operazioni su File
1. Create
2. Delete
3. Open
1. Close
2. Read
3. Write
1. Append
2. Seek
3. Get attributes
4. Set Attributes
5. Rename
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi45
File Directory• File di proprietà del sistema operativo• Di fatto costituiscono un elenco dei file
presenti sul sistema• Esistono diversi modi per organizzare le
directory all’interno di un file system
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi46
Single-Level Directory
• Un sistema con directory ad un livello• contiene 4 file• Di proprietà di 3 persone, A, B, and C• Ovviamente non possono coesistere due file con lo stesso nome
Le lettere indicano i diversiproprietari dei file
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi47
Two-level Directory
• Quando un utente accede ad un file il SO deve sapere chi è al fine di individuare il corretto file
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi48
Hierarchical Directory
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi49
Path name
• Nei casi di directory con strutture ad albero il nome dell’utente e del file non sono più sufficienti per individuare univocamente un file
• Si usano i path name:• Assoluti: che descrivono il commani a partire dalla
radice (root) iniziano sempre con / (\)• Relativi: sono computati a partire da una working
directory (ogni processo ne possiede una)
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi50
Path Name
A.A. 2009/2010 Corso: Sistemi Operativi
© Danilo Bruschi51
Operazioni su Directory
1. Create
2. Delete
3. Opendir
4. Closedir
1. Readdir
2. Rename
3. Link
4. Unlink