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
File system: system call e strutture dati a run-time.
Advertisements

Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
File System Cos’è un File System File e Directory
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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.
Realizzazione del file system
Un DataBase Management System (DBMS) relazionale client/server.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
JAVA C import java.util.*; #include <stdio.h>
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
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.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
Constraints.
Componenti dell’architettura Oracle
Modulo 13: System call relative al File System
Alessandro De Salvo – Status del Tier2 di Atlas a Roma 1 – MDT Meeting – Pavia, 30 settembre – 1 ottobre 2002 Fibra ottica (Lab Atlas) Network Switch 3COM.
Ricerca di una chiave: Search(x, k) if x == nil or k == x.key return x
Roma, 16 novembre 2010 SPT – Il sistema di accettazione Gestione centralizzata Dott. Paolo Spadetta.
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
22 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ore 10:00.
Un esempio: Registrazione e lettura di dati in un file
Microsoft Access Maschere.
1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab Nanodesktop Software development kit per sistemi.
Muoversi tra le finestre
ISTRUZIONI PER L’USO.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Corso di Elementi di Informatica
PRIMI DISEGNI CON CABRI Realizzato da Daniel Bulgarini e Matteo Co CLASSE 2°C LICEO PASCAL MANERBIO.
DISPOSITIVI ASIC Application Specific Integrated Circuit De Faveri Martina Classe 3 BET.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
C. APPROCCIO A INCOGNITA ED EQUAZIONI C1. Confrontare come cambia il testo di un problema verbale standard se cambiano le consegne da (A)Trova a (B)Rappresenta.
Alcune problematiche di replicazione dati in unorganizzazione geograficamente distribuita Collaborazione CASPUR - ENEA Silvia Eccher - CASPUR Franco Iannone.
C OME CREARE I FRAME. Dal pannello File fai doppio clic sul file default.html per aprire la pagina (figura 1.1). Figura 1.1 Il file default.html.
Tableau de bord Cruscotto di direzione
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Tutorial relativo al Mio EBSCOhost. Benvenuti al tutorial dedicato a Mio EBSCOhost, verranno fornite le istruzioni per la configurazione e lutilizzo ottimizzato.
Modulo 1 bis Menù Incolla Esercitazione Un computer è quasi umano, a parte il fatto che non attribuisce i propri errori a un altro computer. (Anonimo)
Architettura dei sistemi di elaborazione
2. Hardware Componenti di base di un computer
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Modulo 3 Gestione dischi e periferiche
CD-Easy Sito per la vendita on-line di CD audio. di Annunziato Tonnara Matr A.A. 2003/2004.
INTERNET Internet è una rete a livello mondiale che permette alle persone di comunicare ed ad accedere a banca dati da qualunque parte del mondo e su qualunque.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
INTERNET Antonio Papa Classe 2^ beat I.S.I.S. G. Meroni a.s. 2007/2008.
LAVORO ED ENERGIA L’energia è la capacità di un sistema di compiere lavoro In natura esistono diverse forme di energia e ognuna di esse si trasforma continuamente.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
2000 Prentice Hall, Inc. All rights reserved. I file Apertura e chiusura I file ad accesso sequenziale I file ad accesso casuale Apre un file già esistente.
Customer Support Research & Development Come registrarsi ed entrare in......ITRC.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
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 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Comparazione File System Domenico Chiefali a.k.a. JDaemon
Sistemi Operativi Modulo 9: File System Renzo Davoli Alberto Montresor
Organizzazione fisica
I FILES AD ACCESSO SEQUENZIALE
I FILE di dati in C#.
File System ed Input/Output
Parti interne del computer
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 l’informazione all’interno 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 l’allocazione 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 l’allocazione 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 l’ultimo blocco non è del tutto pieno si spreca dello spazio

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 …)

15 Allocazione contigua (5) Svantaggi dell’allocazione 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 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!!!!

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 !!

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 l’ampiezza 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 dall’indirizzo 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 : –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...

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 dall’ampiezza del disco –l’efficienza decresce con l’ampiezza 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 nell’elemento 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 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

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 all’hw 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 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)

41 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

42 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)

43 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

44 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

45 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

46 Alcune caratteristiche dei FS Unix-Linux

47 ABC f B1B2 Ss.c C1 C2 e d root directory (/) Condivisione di file : Link Forniscono path name alternativi per lo stesso file – /C/C1/ll oppure /A/f ln -s f ll ln f ll ll

48 Link (2) Hard link : –le due directory condividono la struttura dati relativa al file (i-node) –paradosso della rimozione da parte dell’owner Symbolic Link : –la seconda directory contiene un file speciale (LINK) con il path name del file condiviso –accesso più lento (il path name deve essere seguito ogni volta che accediamo al file) ln -s f ll ln f ll

49 Link (3) (a) situazione precedente al linking (hard) (b) dopo la creazione del link (c) dopo che l’owner originale ha rimosso il file

50 / ABC f B1B2 Ss.c C1 C2 e d Hard disc Mounting Permette di unire in un unico albero file system di tipo diverso memorizzati su dispositivi diversi mount -t type dev dir / e d D1 ew df Floppy

51 / ABC f B1B2 Ss.c C1 C2 e d Hard disc pp Mounting (2) Permette di unire in un unico albero file system di tipo diverso memorizzati su dispositivi diversi mount /dev/fd0 pp / e d D1 ew df Floppy Mount point

52 / ABC f B1B2 Ss.c C1 C2 e d Hard disc Mounting (3) mount /dev/fd0 pp pp e d D1 ew df Floppy

53 / ABC f B1B2 Ss.c C1 C2 e d Hard disc Mounting (4) mount /dev/fd0 pp pp e d D1 ew df Floppy Problemi: 1) Cosa contiene l’i-node di pp ? 2) Come si segue un path name che contiene pp ?

54 Mounting (5) In MT(x) : -- device ( /dev/fd0 ) -- puntatore all’i-nodo della root del FS montato -- puntatore all’i-nodo del mount point ( pp ) -- puntatore alla copia del supeblock di FS in RAM Mount table X I-nodo di pp mount point

55 Lock dei file È possiblie definire dei lock su (parti di) un file ed usarli per sincronizzare gli accessi Varie opzioni (dipendono dalla versione) lock advisory o mandatory –Il controllo del lock è a carico dell’utente (adv) –Il kernel conosce l’esistenza del lock e controlla gli accessi (mandatory) lock shared o exclusive –più processi possono accedere contemporaneamente (shared) –può accedere un processo alla volta (exclusive)