1 File System Concetti e tecniche generali. 2 Il file system Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente.

Slides:



Advertisements
Presentazioni simili
Gestione della Memoria
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Tecnologia delle basi di dati: Strutture fisiche di accesso
Mat_Insieme Lavoro di Gruppo Prodotti Notevoli
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Unità D2 Archivi e file.
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
1 Casi di studio ISO 9660 FAT-12, FAT-16, FAT-32 NTFS.
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
Frontespizio Economia Monetaria Anno Accademico
1 System Call per Comunicazione tra Processi Pipe.
SC che operano su file (1)
Realizzazione del file system
Interfaccia del file system
Realizzazione del file system
Interfaccia del file system
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Input/Output.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
Windows 2000 supporta i seguenti file system:
Disco magnetico (2) Ciascuna traccia è divisa in settori
Tabelle hash.
memoria gestita staticamente:
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
MEMORIA CENTRALE Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni durante il funzionamento del calcolatore.
Introduzione alle basi di dati
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
File ad accesso casuale o random
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Il Sistema Operativo: il File System
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Architettura Centralizzata di un DBMS Relazionale
Gestione della Memoria
Memoria La memoria è un vettore di stringhe di bit (word/parole) In memoria è allocato il Sistema Operativo. In memoria sono allocati i programmi per poter.
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
Foglio 1 Di cosa si occupa il gestore della memoria?
1 File System Concetti e tecniche generali. 2 Il file system Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente.
1 Alcuni esempi di dispositivi (2) Disco rigido, RAID, video.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Alcuni esempi di dispositivi Disco rigido, RAID, video.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 File system Casi di studio. 2 Esempi di File System Il file system di un CD-ROM Rappresentazione di un elemento di una directory nel file system ISO.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
© 2015 Giorgio Porcu - Aggiornamennto 27/11/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Gestione del File.
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

1 File System Concetti e tecniche generali

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

3 Struttura di un File Come può essere strutturata linformazione allinterno di un file –sequenze di byte, sequenze di record, alberi con chiave

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

5 Tipici attributi di un file

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

7 ABC f B1B2 Ss.c C1 C2 e d root directory C3 File system gerarchici Tutti i file system attuali sono gerarchici –utilizzano i path name visti in Unix –separatori root diversi

8 Operazioni sulle directory 1.Create 2.Delete 3.Opendir 4.Closedir 5.Readdir 6.Rename 7.Link 8.Unlink

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

10 Implementazione di un FS: Unix (2) I-nodi Superblocco Riservato al boot block Blocchi di dati MBR Tabella delle partizioni Part 1Part 2 Part k... Free mgm root d.

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) Situazione dopo lallocazione del File A (4 blocchi) run

12 Allocazione contigua (2) File A (4 blocchi) File B (3 blocchi) File C (6 blocchi) File D (3 blocchi) File E (5 blocchi) File G (3 blocchi) Situazione dopo lallocazione del File A (4 blocchi) e B (3 blocchi) Situazione dopo la cancellazione di B e D Blocchi liberi

13 Allocazione contigua (3) Fenomeno della frammentazione interna : –se lultimo blocco non è del tutto pieno si spreca dello spazio

14 Allocazione contigua (4) Vantaggi dellallocazione 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 lindirizzo 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 …)

15 Allocazione contigua (5) Svantaggi dellallocazione contigua: –(1) frammentazione esterna : es –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 : Situazione dopo la cancellazione di B e D

16 Allocazione contigua (6) Svantaggi dellallocazione contigua (cont.): –(2) lampiezza 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 lediting può fallire!!!!

17 Allocazione contigua (7) Svantaggi dellallocazione contigua (cont.): –(2) lampiezza 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 lediting può fallire!!!! Lallocazione contigua viene utilizzata nei FS dei CD ROM e DVD !!

18 File: lista concatenata di blocchi Memorizzazione come lista concatenata di blocchi

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 lampiezza di blocco non è più una potenza di 2 diventa più costoso il calcolo del blocco...

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 dallindirizzo 2046 –divido 2046 per ( =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 !!

21 Liste concatenate con FAT La FAT si trova in memoria centrale terminatore

22 Liste concatenate con FAT Vantaggi : –lampiezza 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...

23 Index-node (i-node) Es. i-node di un file Unix Attributi Ind blocco 1 Ind blocco 2 Single indirect Ind blocco N... Dati su disco... Double indirect Triple indirect

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 dallampiezza del disco –lefficienza decresce con lampiezza del file

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

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 nellelemento della tabella relativo ad X –è la soluzione usata dai FS FAT-16, FAT-32

27 Implementazione delle Directory (3) attributi workattributi news games mail Blocco/i

28 Implementazione delle directory (4) Una directory in un sistema con i-node –es da Unix V7 12e 16..(punto punto) 4.(punto) 18d C2 e d C1 Numero di i-node Blocco dati relativo alla directory C2

29 Due modi di trattare i nomi di file lunghi –(a) In linea (b) In un heap Implementazione delle directory (5)

30 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 Implementazione delle directory (6) nomefile Funzione hash (0..N-1) tabella 0 N-1 Es : H(nomefile)=f(nomefile)%N Ricerca: 1. X= H(nomefile) 2. Ispeziono la lista che parte da X 3. Se nomefile non sta nella lista non cè X

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)

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 lampiezza del blocco? –Blocchi piccoli usano meglio lo spazio disco diminuiscono la frammentazione interna –Blocchi grandi velocizzano gli accessi diminuiscono seek e rotational delay

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

34 Gestione dello spazio disco (3) Free list Bitmap

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

36 Gestione dello spazio disco (4) Il meccanismo delle quote per tener traccia dello spazio disco utilizzato da ciascun utente Tabella dei file aperti Attributi userid = 8 pun_quota Tabella delle quote …. Quota utente 8 (una struct per ogni utente con file aperti) Hard file limit Current # file # file warning left Current # blocks Soft block limit Hard block limit # block warning left Soft file limit

37 Affidabilità di un file system Problemi legati allhw del disco –settori difettosi sostituzione con spare sectors –blocchi corrotti raccolti in file fittizi (bad block files)

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

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

40 Stable Storage 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 write si garantisce che il valore scritto è corretto oppure è uguale a quallo vecchio

41 Stable Storage (2) Come viene realizzato lo stable storage: due dischi, più software assunzioni : –quando effettuiamo una write() 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

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 uno dei due ha lECC sbagliato, viene sovrascritto con laltro se sono diversi ma corretti, il blocco del primo disco viene scritto sul secondo

43 Stable Storage (4) –Casi possibili di crash in uno stable storage

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)

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 nelli-node se differiscono si modifica li-node

46 Consistenza di un File System (3) (a) consistente (consistent) (b) blocco mancante (missing block) (c) blocco duplicato nella lista libera (duplicate free block) (d) blocco dati duplicato (duplicate data block) Numero di blocco (c) (d)

47 Prestazioni di un File System (1) 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) Block cache Buffer cache

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 nelli-node –se laccesso è 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 lallocazione degli i-node –si cerac di minimizzare il tempo di seek quando si segue un path name

49 Prestazioni di un File System (3) (a) Gli i-node sono piazzati allinizio del disco (b) Il disco è diviso in gruppi di cilindri, ognuno con i suoi blocchi ed i suoi i-node