File System. Concetti e tecniche generali
|
|
|
- Giuliano Galli
- 9 anni fa
- Просмотров:
Транскрипт
1 File System Concetti e tecniche generali 1
2 Il file system Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente Tipicamente le astrazioni fornite sono: File : unità di informazione memorizzata in modo persistente Directory : astrazione che permette di raggruppare assieme più file 2
3 Struttura di un File Come può essere strutturata l informazione all interno di un file sequenze di byte, sequenze di record, alberi con chiave 3
4 Accesso ai File Accesso diretto (random) i byte/record possono essere letti in qualsiasi ordine una read può essere specificata specificando la posizione del dato da accedere ad ogni chiamata, usando una speciale operazione (la seek) per posizionare la testina prima di iniziare più letture nei moderni sistemi operativi tutti i file sono automaticamente ad accesso diretto 4
5 Tipici attributi di un file 5
6 Operazioni su File 1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write 7. Append 8. Seek 9. Get attributes 10.Set Attributes 11.Rename 6
7 File system gerarchici root directory A B C f B1 Ss.c B2 C1 C2 C3 Tutti i file system attuali sono gerarchici utilizzano i path name visti in Unix separatori root diversi d e 7
8 Operazioni sulle directory 1. Create 2. Delete 3. Opendir 4. Closedir 5. Readdir 6. Rename 7. Link 8. Unlink 8
9 Implementazione di un File System (1) Come rappresentare i file? i dati sono memorizzati in unità (blocchi) di ampiezza fissa (tipicamente 1,2 KB) si devono memorizzare gli attributi e la posizione dei singoli blocchi Come rappresentare le directory? generalmente sono file con uno speciale formato Come organizzare lo spazio disco? allocazione dei blocchi relativi ad un singolo file gestione blocchi liberi tenere traccia della root directory 9
10 Implementazione di un FS: Unix (2) MBR Tabella delle partizioni Part 1 Part 2... Part k Superblocco I-nodi Free mgm root d. Blocchi di dati Riservato al boot block 10
11 Implementazione dei File (1) Allocazione contigua dello spazio disco ogni file viene memorizzato in un gruppo di blocchi contigui (run) es : Situazione iniziale (tutti i blocchi sono liberi) run Situazione dopo l allocazione del File A (4 blocchi) 11
12 Allocazione contigua (2) Situazione dopo l allocazione del File A (4 blocchi) e B (3 blocchi) File B (3 blocchi) File D (3 blocchi) File G (3 blocchi) File A (4 blocchi) File C (6 blocchi) File E (5 blocchi) Situazione dopo la cancellazione di B e D Blocchi liberi 12
13 Allocazione contigua (3) Fenomeno della frammentazione interna : se l ultimo blocco non è del tutto pieno si spreca dello spazio 13
14 Allocazione contigua (4) Vantaggi dell allocazione contigua: è facile tenere traccia dei blocchi che appartengono a ciascun file indirizzo su disco del blocco iniziale (B) lunghezza del file (in blocchi) se voglio l indirizzo del blocco X del file ind(x) = B + X le prestazioni della lettura sono eccellenti basta una seek ed è possibile leggere tutto il file in blocchi contigui (senza rotational delay ) 14
15 Allocazione contigua (5) Svantaggi dell allocazione contigua: (1) frammentazione esterna : es Situazione dopo la cancellazione di B e D dopo un po il disco sarà frammentato in un insieme di buchi (hole), troppo piccoli per contenere un file (es. file R 5 blocchi) de-frammentazione del disco : 15
16 Allocazione contigua (6) Svantaggi dell allocazione contigua (cont.): (2) l ampiezza massima di un file deve essere decisa al momento della creazione dobbiamo riservare un numero adeguato di blocchi per la sua crescita futura ancora spazio sprecato difficile da stimare ed utilizzare : es prima di iniziare ad editare un file di testo devo dire quanto sarà lungo altrimenti l editing può fallire!!!! 16
17 Allocazione contigua (7) Svantaggi dell allocazione contigua (cont.): (2) l ampiezza massima di un file deve essere decisa al momento della creazione dobbiamo riservare un numero adeguato di blocchi per la sua crescita futura ancora spazio sprecato difficile da stimare ed utilizzare : es prima di iniziare ad editare un file di testo devo dire quanto sarà lungo altrimenti l editing può fallire!!!! L allocazione contigua viene utilizzata nei FS dei CD ROM e DVD!! 17
18 File: lista concatenata di blocchi Memorizzazione come lista concatenata di blocchi 18
19 File: lista concatenata di blocchi (2) Vantaggi della lista concatenata : non c è frammentazione esterna per ogni file è necessario mantenere solo il puntatore al primo blocco Problemi : lettura di tutto il file molto lenta accesso random molto lento perdita di un certo numero di byte iniziali l ampiezza di blocco non è più una potenza di 2 diventa più costoso il calcolo del blocco... 19
20 File: lista concatenata di blocchi (3) Es. indirizzi di 4 byte, blocchi fisici di 1 K se voglio effettuare una read di 40 byte dall indirizzo 2046 divido 2046 per (1024-4=1020) : risultato = 2, resto = 6 devo leggere 40 byte, in blocco 2 a partire dal byte 6 le divisioni per numeri arbitrari sono operazioni estremamente costose le divisioni per potenze di 2 sono shift!! 20
21 Liste concatenate con FAT terminatore La FAT si trova in memoria centrale 21
22 Liste concatenate con FAT Vantaggi : l ampiezza di blocco è una potenza di due accesso casuale più veloce (non accede alla memoria secondaria Svantaggi : tutta la FAT deve stare in memoria disco 20 GB, blocchi 1K ampiezza FAT = 4* 20M! Paginazione, lentezza etc... 22
23 Index-node (i-node) Es. i-node di un file Unix Attributi Ind blocco 1 Ind blocco 2... Ind blocco N Single indirect Double indirect Triple indirect Dati su disco... 23
24 Index-node (i-node) (2) Vantaggi : solo gli i-node dei file in uso devono risiedere in RAM lo spazio è proporzionale al numero massimo di file aperti e non dipende dall ampiezza del disco l efficienza decresce con l ampiezza del file 24
25 Implementazione delle Directory (1) Devono permettere di recuperare tutte le informazioni relative ai file contenuti Punto fondamentale : associare il nome del file (una stringa di caratteri) ad attributi e dati (indirizzo/i dei blocchi) diversi formati diverse restrizioni sui possibili nomi dei file lunghezza fissa o arbitraria case sensitiveness : pippo e PiPPo 25
26 Implementazione delle Directory (2) Soluzione più semplice : la directory contiene una tabella con un elemento per ogni file attributi e indirizzi del blocchi del file X sono memorizzati direttamente nell elemento della tabella relativo ad X è la soluzione usata dai FS FAT-16, FAT-32 26
27 Implementazione delle Directory (3) games mail news work attributi attributi attributi attributi Blocco/i Blocco/i Blocco/i Blocco/i 27
28 Implementazione delle directory (4) Una directory in un sistema con i-node es da Unix V7 4.(punto) 16..(punto punto) 12 e Numero di i-node C2 4 C d d e Blocco dati relativo alla directory C2 28
29 Implementazione delle directory (5) Due modi di trattare i nomi di file lunghi (a) In linea (b) In un heap 29
30 Implementazione delle directory (6) Ricerca di un file X in una directory tipicamente i nomi dei file non sono in ordine (ricerca lineare) se aspettiamo directory con centinaia di file si possono usare hash table nomefile Funzione hash (0..N-1) Es : H(nomefile)=f(nomefile)%N N-1 Ricerca: 1. X= H(nomefile) 2. Ispeziono la lista che parte da X 3. Se nomefile non sta nella lista non c è X tabella 0 30
31 Implementazione delle directory (7) Ricerca di un file X in una directory tipicamente i nomi dei file non sono in ordine (ricerca lineare) se aspettiamo directory con centinaia di file si possono usare hash table alternativamente si può fare il caching di file acceduti recentemente (Berkley FFS) 31
32 Gestione dello spazio disco (1) Praticamente tutti i file system: dividono i file in blocchi di ampiezza fissata ed eseguono letture e scritture su blocchi o multipli i blocchi non sono contigui su disco Problema 1 : come scegliere l ampiezza del blocco? Blocchi piccoli usano meglio lo spazio disco diminuiscono la frammentazione interna Blocchi grandi velocizzano gli accessi diminuiscono seek e rotational delay 32
33 Gestione dello spazio disco (2) Problema 2 : come tenere traccia dei blocchi liberi su disco? Free list lista concatenata di blocchi pieni di indirizzi di blocchi liberi Bitmap una mappa di bit con un bit per ogni blocco es. 0 blocco libero, 1 blocco in uso mantiene la contiguità dei blocchi (allocare un file su blocchi vicini diminuisce il tempo di seek in letture consecutive 33
34 Gestione dello spazio disco (3) Free list Bitmap 34
35 Gestione dello spazio disco (4) (a) blocco di puntatori ai blocchi liberi quasi pieno (RAM) - tre blocchi di puntatori su disco (b) situazione dopo aver liberato un file di 3 blocchi (c) strategia alternativa per gestire i 3 blocchi - gli elementi in grigio puntano a blocchi di disco liberi 35
36 Gestione dello spazio disco (4) Tabella dei file aperti Attributi userid = 8 pun_quota. Tabella delle quote Soft block limit Hard block limit Current # blocks # block warning left Soft file limit Hard file limit Current # file # file warning left Quota utente 8 (una struct per ogni utente con file aperti) Il meccanismo delle quote per tener traccia dello spazio disco utilizzato da ciascun utente 36
37 Affidabilità di un file system Problemi legati all hw del disco settori difettosi sostituzione con spare sectors blocchi corrotti raccolti in file fittizi (bad block files) 37
38 Gestione degli errori del disco Una traccia con un settore difettoso Sostituzione del settore difettoso con un settore di riserva Slittamento dei settori per evitare quello difettoso 38
39 Affidabilità di un file system (2) Backup periodici copia delle informazioni del FS per poterle utilizzare in caso di crash del disco, alluvioni etc... cancellazioni accidentali backup fisico si copiano tutti i blocchi del disco (su tape o altro) backup logico si copiano file e directory modificati dopo una certa data 39
40 Stable Storage Memorizzazione stabile Permette di mettersi al riparo da errori che si verificano durante una scrittura : sto effettuando una write() dopo la scrittura calcolo i codici correttori di errore (ECC) che segnalano un malfunzionamento a questo punto il vecchio valore del settore è andato perso ed il nuovo è sbagliato! Nello stable storage, ogni volta che eseguiamo una scrittura si garantisce che il valore scritto è corretto oppure è uguale a quello vecchio 40
41 Stable Storage (2) Come viene realizzato lo stable storage: due dischi, più software assunzioni : quando effettuiamo una write() di un blocco si scrive una valore corretto o scorretto un valore scorretto può essere determinato rileggendo il valore e controllando gli ECC la probabilità che lo stesso settore X abbia malfunzionamenti su due dischi diversi è trascurabile 41
42 Stable Storage (3) Implementazione : Ogni blocco viene implementato usando due blocchi con lo stesso indirizzo sui due dischi. Scritture : scrive la stessa infromazione prima nel primo disco (blocco X) e poi nel secondo (blocco X) Letture : legge dal primo disco e se ci sono errori dal secondo Recovery dopo un crash si leggono tutti i blocchi dei due dischi e si confrontano se sono corretti e uno dei due ha l ECC sbagliato, viene sovrascritto con l altro se sono diversi ma corretti, il blocco del primo disco viene scritto sul secondo 42
43 Stable Storage (4) Casi possibili di crash in uno stable storage 43
44 Consistenza di un File System (1) Problema: tipicamente i file system leggono un bloccho, lo modificano e scrivono la copia aggiornata più tardi se avviene un crash prima della scrittura della copia aggiornata il FS può trovarsi in uno stato inconsistente il problema è ancora più preoccupante se si tratta di i- node, informazioni di una directory o informazioni sui blocchi liberi Ci sono utility che controllano la consistenza di un file system lo riportano in uno sttao consistente (eventualmente con la perdita di dati) es: scandisk (Windows) fsck (Unix) 44
45 Consistenza di un File System (2) Funzionamento di fsck Verifica la consistenza dei blocchi scandisce i-node e blocchi liberi costrisce tabella blocchi liberi e tabella blocchi in uso 00 missing block - viene aggiunto alla lista libera 20 duplicate free block - viene ricostruita la lista libera 02 duplicate data block - viene duplicato il blocco per avere una copia diversa in ciascun file Verifica la consistenza delle directory scandisce le directory costruisce la tabella di occorrenza file controlla la consistenza fra la tabella di occorrenza ed il conto degli hard link nell i-node se differiscono si modifica l i-node 45
46 Consistenza di un File System (3) Numero di blocco Numero di blocco (c) (d) (a) consistente (consistent) (b) blocco mancante (missing block) (c) blocco duplicato nella lista libera (duplicate free block) (d) blocco dati duplicato (duplicate data block) 46
47 Prestazioni di un File System (1) Block cache Buffer cache Strutture dati per il cache dei blocchi Hash su dispositivo::indirizzo del blocco I blocchi critici per la consistenza del FS vengono scritti subito (i-node, directory, lista libera) 47
48 Prestazioni di un File System (2) Si effettua la lettura anticipata (read ahead) si controlla il pattern di accesso del disco e se ne tiene traccia nell i-node se l accesso è sequenziale si leggono in anticipo i prossimi blocchi della sequenza e si memorizzano nella cache Si cerca di allocare blocchi di disco vicini per blocchi logici vicini di uno stesso file Si ottimizza l allocazione degli i-node si cerca di minimizzare il tempo di seek quando si segue un path name 48
49 Prestazioni di un File System (3) (a) Gli i-node sono piazzati all inizio del disco (b) Il disco è diviso in gruppi di cilindri, ognuno con i suoi blocchi ed i suoi i-node 49
Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"
Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?" SOL Se è permesso che i nomi dei file abbiano lunghezza arbitraria, basta associare al nome
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
Esercizio 1. Si consideri il seguente frammento di FAT: Blocco Fisico - valore nella FAT. e di directory D1 : nome file - primo blocco A 32 B 36
Esercizio 1. Si consideri il seguente frammento di FAT: Blocco Fisico - valore nella FAT 30 16 31 34 32 33 33 35 34 41 35 40 36 37 37 31 38 29 39 30 40 39 e di directory D1 : nome file - primo blocco A
Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
File System ext2. Struttura del filesystem ext2.
Struttura di base File System ext2 Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. Nel filesystem ext2 il blocco (block) definisce la minima
Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2
Esercizio FAT 1 In un disco con blocchi di 1 Kbyte (= 2 10 byte), è definito un file system FAT. Gli elementi della FAT sono in corrispondenza biunivoca con i blocchi fisici del disco. Ogni elemento ha
File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:
File System File: definizione Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da: Dimensione Posizione Accessibilità (solo lettura, lettura e scrittura) Tipo (estensione)
Sistemi Operativi: Filesystems
Sistemi Operativi: Filesystems Amos Brocco, Ricercatore, DTI / ISIN 5 luglio 22 Basato su: [STA9] Operating Systems: Internals and Design Principles, 6/E, William Stallings, Prentice Hall, 29 [TAN] Modern
Sistema Operativo (Software di base)
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
Interfaccia del file system
Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
Sistemi Operativi. Modulo 9: File System
Sistemi Operativi Modulo 9: File System Renzo Davoli Alberto Montresor Copyright Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Parte V. Il File System
Parte V Il File System Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 V - 1 Il File System I/O Virtuale: l'accesso alla memoria di massa avviene tramite tramite il SO La memoria di massa è organizzata
File System. Capitolo 13
Capitolo 13 File System Problema 1: Le copie di un file possono essere inconsistenti, quindi per sbaglio si potrebbero leggere dati vecchi. È meglio creare un link a data nella home di ogni utente. Tuttavia,
La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni
La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo
Stru3ura del file system
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
