Il File System - WordPress.com
Transcript
Il File System - WordPress.com
Il File System Indice 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Il File System Vantaggi del FS Protezione Condivisione I file - 1 I file - 2 Attributi dei file Directory Livelli di astrazione - 1 Livelli di astrazione - 2 Struttura logica vs Struttura fisica Compiti del file system Integrità dei dati e affidabilità Struttura logica di un file – 1 Struttura logica di un file – 2 settembre 2008 Il File System 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Struttura logica di un file – 3 Struttura logica di un file – 4 Struttura logica di un file – 5 Metodo di accesso Accesso sequenziale Accesso diretto Descrittore del file Directory – 1 Directory – 2 Directory – 3 Directory simbolica Directory di base Tipi di directory – 1 Tipi di directory – 2 2 Indice 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Tipi di directory – 3 Operazione di I/O su file - 1 Operazione di I/O su file - 2 Operazione di I/O su file - 3 Operazione di I/O su file - 4 Operazione di I/O su file - 5 Operazione di I/O su file - 6 File system fisico Descrittore sistema archiv. - 1 Descrittore sistema archiv. – 2 Allocazione spazio su disco Allocazione contigua - 1 Allocazione contigua - 2 settembre 2008 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. Il File System Allocazione concatenata - 1 Allocazione concatenata - 2 Allocazione concatenata – FAT – 1 Allocazione concatenata – FAT – 2 FAT - 1 FAT - 2 Allocazione indicizzata Blocchi indice - 1 Blocchi indice - 2 Nodi indice (Unix → Linux) i-node Blocchi liberi 3 Il file system Il file system è quel modulo del sistema operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Identifica e cataloga tutti i file presenti. Gestisce le operazioni sui file, offrendo primitive e utility di gestione. Assegna l’uso dei file ai processi (attuando anche meccanismi di protezione). Gestisce l’allocazione delle aree su disco. settembre 2008 Il File System 4 Vantaggi del file system • Il compito di leggere e scrivere sui dispositivi potrebbe essere affidato ai processi, ma la gestione da parte del S.O. tramite il file system riduce i problemi per i processi e permette di controllare la protezione e di gestire la condivisione. • Inoltre si solleva l’utente dalla necessità di muovere esplicitamente i dati tra la memoria principale e la memoria secondaria e dal dover gestire i dati in modo diverso, a seconda del supporto su cui sono fisicamente memorizzati. settembre 2008 Il File System 5 Protezione • Il file system offre meccanismi di protezione per stabilire chi può effettuare operazioni sui file e quali. • Solitamente chi crea il file viene considerato il proprietario e può stabilire quali operazioni possono essere effettuate dagli altri utenti. • Ogni volta che viene richiesta un’operazione sul file il file system controlla se l’operazione è permessa. settembre 2008 Il File System 6 Condivisione • Più processi possono aprire sessioni contemporanee su uno stesso file: questo potrebbe causare situazioni di inconsistenza dei dati. • Per evitare ciò il file system gestisce gli accessi contemporanei: un blocco può essere condiviso in fase di lettura, ma non se sono previste operazioni di aggiornamento. • Questo tipo di gestione può portare a situazioni di stallo, che viene risolto predisponendo gli aggiornamenti in un ordine opportuno. settembre 2008 Il File System 7 I file - 1 I file sono l’astrazione logica delle risorse che il S.O. definisce per conservare informazioni in modo permanente su memoria di massa. I dati contenuti in un file sono correlati e trattati unitariamente. Dal punto di vista dell’utente un file è la più piccola porzione di informazione logica che può essere memorizzata in memoria di massa, in altre parole i dati non possono essere scritti in memoria secondaria se non vengono inclusi in un file. settembre 2008 Il File System 8 I file - 2 In generale un file è una sequenza di bit, byte, righe o record il cui significato è definito dal creatore del file e dall’utente. I file possono contenere informazioni di vario tipo: Programmi (sorgente, oggetto, eseguibili) Dati (l’estensione indica l’applicazione che li ha generati) Speciali (file di sistema o astrazione di dispositivi) Directory (descrivono altri file) settembre 2008 Il File System 9 Attributi dei file Ogni file è individuato nel file system da un nome simbolico ed è caratterizzato da un insieme di attributi. Solitamente: tipo: stabilisce l’appartenenza ad una classe (eseguibili, batch, testo, etc) indirizzo: puntatore alla memoria secondaria dimensione: numero di byte di cui è composto il file data e ora: di creazione e/o di modifica In S.O. multiutente anche: creatore e possessore (anche distinti) protezione: diritti di accesso al file per ciascun utente settembre 2008 Il File System 10 Directory Le informazioni su tutti i file sono mantenute nella directory, che risiede come il file in memoria secondaria. Tipicamente un valore nella directory consiste nel nome del file e in un identificatore univoco che, a sua volta, individua gli altri attributi del file. In un sistema con molti file la dimensione della directory può essere di alcuni MB: essa dovrà quindi essere caricata a pezzi in memoria, in base alle necessità. settembre 2008 Il File System 11 Livelli di astrazione -1 La struttura dei dati all’interno di un file può essere vista da tre livelli di astrazione distinti: • Livello utente – Il programma utente associa significato al contenuto del file • Livello di struttura logica – I dati grezzi (non interpretati) sono raggruppati dal S.O. in strutture logiche per facilitarne il trattamento • Livello di struttura fisica – Il S.O. mappa le strutture logiche sulle strutture fisiche della memoria secondaria disponibile (es. blocchi su disco) settembre 2008 Il File System 12 Livelli di astrazione - 2 Oggetti gestiti Chiamate tipiche (primitive) FILE COPY, DELETE, RENAME Programmi applicativi e di sistema (chiamate al sistema operativo) PARTI DI FILE (indirizzamento logico all’interno del file) OPEN, CLOSE, SEEK, READ, WRITE Device driver SETTORI (cilindro, testina, settore) OPEN, CLOSE, SEEK, READ, WRITE Livello Utenti interattivi (linguaggio dei comandi) settembre 2008 Il File System 13 Struttura logica vs Struttura fisica Sulle memorie di massa i dati sono raggruppati in modo da formare delle strutture, detti record fisici o blocchi, sulle quali è possibile compiere le operazioni di lettura/scrittura. In pratica il record fisico rappresenta l’unità di informazione indivisibile che può essere trasferita dalla memoria di massa a quella centrale con una sola operazione di I/O. Tale unità dipende dalla struttura HW del sistema e, in generale, non coincide con l’unità logica di informazione (record logico). È quindi possibile che un record fisico contenga più record logici o che un record logico richieda più record fisici per la sua registrazione. settembre 2008 Il File System 14 Compiti del file system Realizza l’indipendenza dai dispositivi, nascondendo la collocazione dei file e la loro eventuale allocazione su più dispositivi quindi i processi che devono accedere ai file in lettura e/o scrittura non devono preoccuparsi di sapere dove questi sono allocati fisicamente: è sufficiente che usino primitive come read(..) o write(..). Fa corrispondere un modello logico del file a una struttura fisica sul supporto di memoria e stabilisce i metodi di memorizzazione e di accesso. settembre 2008 Il File System 15 Integrità dei dati e affidabilità • Il file system deve garantire l’affidabilità dei file con meccanismi di verifica e ripristino della consistenza. • Le cause principali di inconsistenza dei dati sono l’immissione di dati errati e l’interruzione improvvisa di programmi di elaborazione. Procedure di recovery e transazioni Procedure di validazione dei dati inseriti settembre 2008 Il File System 16 Struttura logica di un file - 1 • Le possibili strutture logiche di un file sono: – A sequenza di byte (byte stream) – A record di lunghezza fissa – A record di lunghezza variabile settembre 2008 Il File System 17 Struttura logica di un file - 2 • Sequenza di byte (byte stream) – La struttura logica più rudimentale e flessibile • la scelta di UNIX (→Linux) e Windows – Il programma utente sa come dare significato al contenuto informativo del file • minimo sforzo per il S/O – L’accesso ai dati utilizza un puntatore relativo all’inizio del file – Lettura e scrittura operano a blocchi di byte settembre 2008 Il File System 18 Struttura logica di un file - 3 • Record di lunghezza fissa – È difficile stimare a priori la lunghezza dei record – Gli spazi non utilizzati sono riempiti da caratteri speciali (es. NULL o SPACE) – L’accesso ai dati può essere diretto o sequenziale e utilizza un puntatore al record corrente – Lettura e scrittura operano su record singoli – Scelta obsoleta e legata a specifiche limitazioni dell’architettura di sistema settembre 2008 Il File System 19 Struttura logica di un file - 4 • Record di lunghezza variabile – Struttura interna di ogni record descritta e identificata univocamente da una chiave (key) posta in posizione fissa e nota nel record – Chiavi raccolte in una tabella a sé stante (file indice), ordinata per chiave, contenente anche i puntatori all’inizio del record – Accesso ai dati per chiave di record settembre 2008 Il File System 20 Struttura logica di un file - 5 • Record di lunghezza variabile Ab.. Ma... Be.. Bo.. Be.. Ab.. Ma... Zi... Zi... Bo.. File indice File dati – L’accesso a un record avviene a partire dal file indice tramite il campo chiave settembre 2008 Il File System 21 Metodo di accesso Per metodo di accesso si intende la modalità secondo cui è possibile accedere a un singolo elemento (record logico) del file. Accesso sequenziale: per accedere ad un determinato record è necessario scorrere sequenzialmente quelli che lo precedono • Si applica a file di record di lunghezza variabile Accesso diretto: un puntatore consente di posizionarsi direttamente sull’elemento desiderato • Si applica a file di record di lunghezza fissa settembre 2008 Il File System 22 Accesso sequenziale • Scansione dall’inizio del file di tutti i record fino a quello cercato 1 2 3 4 Carattere prefissato (es.CR) per indicare la fine del record 5 Per leggere il record 5 è necessario leggere prima tutti i byte dei record 1, 2, 3, 4 settembre 2008 Il File System 23 Accesso diretto • Accesso diretto (random) al record cercato 1 2 3 Lunghezza prefissata 4 5 Per leggere il record 5, sapendo la lunghezza dei record, ci si può posizionare direttamente sul suo primo byte settembre 2008 Il File System 24 Descrittore del file È la struttura dati che contiene gli attributi di un file, cioè tutte le informazioni necessarie per la gestione del file e per l’accesso al suo contenuto. Deve essere memorizzato in modo permanente. Il descrittore di ogni file viene inserito come record nella directory. settembre 2008 Il File System 25 Directory - 1 • Per catalogare i file presenti sulla memoria di massa, il file system utilizza un file (directory), memorizzato anch’esso sulla memoria di massa in una posizione fissa e conosciuta al sistema operativo (di norma sulla traccia 0), che contiene le informazioni riguardanti tutti i file presenti sul supporto. settembre 2008 Il File System 26 Directory - 2 Per ogni file viene inserito nella directory un record contenente queste informazioni: ID-FILE LUNG.REC dove: id-file lung.rec n.rec indirizzo accesso creazione modifica settembre 2008 N.REC INDIRIZZO ACCESSO CREAZIONE MODIFICA = identificativo del file; = lunghezza record; = numero record; = indirizzo primo blocco; = diritto di accesso (solo lettura, lettura e scrittura); = data creazione; = data ultima modifica. Il File System 27 Directory - 3 • La directory viene aggiornata dal file system ogni volta che si crea, si cancella o si modifica un file: per velocizzare queste operazioni, quando è richiesto l’uso di una memoria di massa, la directory è portata nella memoria centrale sotto forma di tabella. • La tabella directory può essere anche molto ampia e occupare troppo spazio nella memoria centrale. Per semplificare le operazioni di ricerca e di gestione, la tabella directory viene suddivisa in due parti: la directory simbolica e la directory di base. settembre 2008 Il File System 28 Directory simbolica • La directory simbolica contiene, per ogni file, il nome simbolico e un puntatore al record della directory di base in cui sono contenute tutte le informazioni riguardanti il file. La directory di base contiene invece l’insieme completo delle informazioni. DIRECTORY SIMBOLICA dove: NUM NUM = num. progressivo ID-FILE ID ID-FILE = identificativo file ID = identificativo del file nella directory di base settembre 2008 Il File System 29 Directory di base DIRECTORY DI BASE ID-FILE LUNG-REC N-REC INDIRIZZO ACCESSO CREAZIONE MODIFICA ID Solo la directory simbolica è caricata in memoria centrale: attraverso l’identificativo (ID) sono reperite tutte le informazioni presenti nella directory di base. settembre 2008 Il File System 30 Tipi di directory - 1 Struttura gerarchica a N livelli • La modalità più frequente è quella in cui le directory hanno una struttura ad albero: esistono più file directory e ogni descrittore può contenere il nome di un file o di un’altra directory (sottodirectory), partendo da una directory principale (root). settembre 2008 Il File System 31 Tipi di directory - 2 settembre 2008 Il File System 32 Tipi di directory - 3 • Tale struttura agevola i meccanismi di ricerca di un file, poiché ogni directory contiene un numero limitato di file • Permette di avere file con lo stesso nome in directory diverse • Il file system rende disponibili le operazioni di gestione delle directory (creazione, cancellazione..) e aggiorna le directory quando vengono eseguite operazioni sui file. settembre 2008 Il File System 33 Operazione di I/O su file - 1 • Una operazione di I/O su file genera una interruzione che richiede l’intervento del sistema operativo. • Una generica richiesta di operazione su un record del file può avere la seguente sintassi: leggi (file, destinazione, i) nome del file su cui eseguire l’operazione settembre 2008 variabile in cui memorizzare il record Il File System posizione logica del record nel file 34 Operazione di I/O su file - 2 Cosa accade dal momento in cui al File System perviene la richiesta di lettura? Vengono effettuate nell’ordine le seguenti operazioni: 1. Scansione dell’albero delle directories per trovare la directory del file a cui è richiesto l’accesso 2. Estrazione dal descrittore delle informazioni relative al file cercato. Una volta reperito, il descrittore viene copiato in RAM nella cosiddetta tabella dei file aperti, in modo da rendere più veloce l’elaborazione del file. L’allocazione del descrittore nella tabella dei file aperti corrisponde all’operazione di apertura del file. settembre 2008 Il File System 35 Operazione di I/O su file - 3 3. 4. Verifica dei controlli d’accesso, che possono essere di tipo statico (determinano se il processo ha il permesso di effettuare l’operazione richiesta sul file) o dinamico (verificano se ci sono altri processi che stanno usando in modo condiviso il file e stanno eseguendo operazioni che impediscono al momento di procedere) Calcolo dell’indirizzo logico del record all’interno del file (espresso in byte, come se il file fosse un byte stream), utilizzando le informazioni sul tipo di organizzazione e la lunghezza del record. La richiesta di operare su un record viene quindi trattata come richiesta di accesso a uno o più byte. settembre 2008 Il File System 36 Operazione di I/O su file - 4 Esempio: Se l’organizzazione di un file fosse a record di lunghezza fissa, la dimensione di ciascun record LR = 512 bytes e l’accesso fosse diretto, si avrebbe che la richiesta di accedere al 3° record (NR) si trasformerebbe nella richiesta di accedere al byte logico di indirizzo Ind = (NR –1) * LR = (3 – 1) * 512 = 1024 record 1 record 2 record 3 LR Ind = 1024 settembre 2008 Il File System 37 Operazione di I/O su file - 5 5. Calcolo dell’indirizzo fisico: a partire dall’indirizzo logico, il file system fisico individua il numero del blocco che contiene il record richiesto, in base alla lunghezza dei blocchi, e l’indirizzo relativo del record all’interno del blocco. Il calcolo del n. del blocco è ancora indipendente dal tipo e dalle caratteristiche della periferica e dalla modalità di allocazione dello spazio sulla periferica. 6. Interfaccia con la gestione dei dispositivi: l’esecuzione vera e propria dell’operazione richiede l’intervento del gestore dei dispositivi e l’utilizzo del driver della periferica. settembre 2008 Il File System 38 Operazione di I/O su file - 6 • Utilizzando il driver della periferica si effettua la conversione del numero di blocco nell’indirizzo fisico relativo alla periferica (per es. numero di cilindro, testina e settore su un disco). • Viene generato un processo di I/O che al termine genera una interruzione. lettura di un blocco Buffer di I/O HD settembre 2008 scrittura di un blocco Il File System 39 File system fisico Ogni dispositivo che permette la memorizzazione dei file contiene anche un descrittore del sistema di archiviazione, una struttura con le informazioni sul modo in cui è organizzata la memorizzazione dei dati sul dispositivo. Le informazioni contenute nel descrittore del sistema di archiviazione dipendono dal tipo di dispositivo e dalla tecnica di allocazione utilizzata. settembre 2008 Il File System 40 Descrittore del sistema di archiviazione - 1 Il descrittore del sistema di archiviazione su disco può contenere: – L’etichetta del disco – Il valore della lunghezza massima dei file che si possono memorizzare – Informazioni sulla tabella dei descrittori dei file – Informazioni sulle tabelle usate per l’assegnazione dei blocchi ai file – L’indicazione del primo blocco utilizzato per i file e il numero di blocchi presenti settembre 2008 Il File System 41 Descrittore del sistema di archiviazione - 2 Dopo il descrittore del sistema di archiviazione si trovano: – La mappa dei descrittori di file con lo stato di assegnazione dei descrittori di file – La tabella dei descrittori – la FAT con le informazioni dei blocchi ai file o la mappa dei blocchi che indica la disponibilità dei blocchi Al termine delle strutture di dati del file system si trovano i blocchi disponibili per i file. settembre 2008 Il File System 42 Allocazione dello spazio su disco L’allocazione dello spazio su disco avviene per blocchi, secondo tre possibili tecniche: allocazione contigua, allocazione concatenata, allocazione indicizzata. In ogni caso bisogna usare delle informazioni aggiuntive per conoscere quali blocchi sono assegnati ad ogni file. settembre 2008 Il File System 43 Allocazione contigua - 1 Ogni file è mappato su un insieme di blocchi fisicamente contigui. Vantaggi: – basso costo della ricerca di un blocco – possibilità di accesso sequenziale e diretto Svantaggi: – individuazione dello spazio libero per l’allocazione di un nuovo file – frammentazione esterna: a mano a mano che si riempie il disco rimangono zone contigue non utilizzabili – Ricompattazione periodica molto costosa settembre 2008 Il File System 44 Allocazione contigua -2 Esempio di allocazione contigua directory file settembre 2008 inizio lunghezza count 0 2 f 6 2 tr 14 3 mail 19 6 list 28 4 Il File System 45 Allocazione concatenata - 1 I blocchi sui quali viene mappato il file sono organizzati in una lista concatenata: ciascun blocco di file deve contenere il puntatore al blocco successivo (o fine lista). Vantaggi: – non c’è frammentazione esterna – Non si deve dichiarare la dimensione del file quando lo si crea Svantaggi: – – – – possibilità di errore se un link viene danneggiato maggiore occupazione (spazio per i puntatori) costo della ricerca di un blocco (continui accessi al disco) l’accesso sequenziale resta semplice, quello diretto diventa oneroso settembre 2008 Il File System 46 Allocazione concatenata - 2 directory file prova inizio fine 9 25 Esempio di allocazione concatenata settembre 2008 Il File System 47 Allocazione concatenata – FAT - 1 Un’importante variazione al metodo di allocazione concatenata è l’uso della tabella di allocazione dei file (File Allocation Table o FAT), usato dai sistemi operativi MS-DOS. Si usa una tabella per ogni partizione formata da tanti elementi quanti sono i blocchi del disco; ogni elemento può contenere un puntatore al blocco successivo se il blocco appartiene a un file, o una indicazione che il blocco è libero. settembre 2008 Il File System 48 Allocazione concatenata – FAT - 2 Il numero del primo blocco del file viene memorizzato nel descrittore del file e consente l’accesso al resto del file. La catena di puntatori viene scorsa solo all’interno della tabella, che può essere copiata in memoria centrale per rendere più veloce l’accesso. settembre 2008 Il File System 49 FAT - 1 Si tratta di una tecnica di allocazione efficiente perché la ricerca di un blocco avviene accedendo alle informazioni riunite in un’unica tabella piuttosto che dislocate nei vari blocchi sparsi sul disco. Vantaggi: • Non comporta frammentazione esterna • Consente accesso sequenziale e diretto settembre 2008 Il File System 50 FAT - 2 …. test nome (n. blocchi del disco – 1) settembre 2008 2 descrittore del file blocco di partenza 0 1 2 3 4 5 6 7 # # 4 # 5 6 EOF # 0 FAT lista blocchi liberi Il File System 1 3 7 51 Blocchi indicizzata indice Allocazione Se il sistema operativo non supporta la FAT si ricorre all’allocazione indicizzata, che riunisce i puntatori ai blocchi in strutture apposite (l’intero blocco contiene quindi solo dati) Ci sono due strategie di organizzazione – blocco indice – nodo indice (i-node) Vantaggi: • Non comporta frammentazione esterna • Consente accesso sequenziale e diretto settembre 2008 Il File System 52 Blocchi indice - 1 Ogni file ha il proprio blocco indice, che è un array di indirizzi dei blocchi su disco. L’i-esimo elemento nel blocco indice punta all’iesimo blocco del file; la directory contiene l’indirizzo del blocco indice. Svantaggi:spazio sprecato dal blocco indice nel caso in cui un file sia formato da pochi blocchi. Si pone la questione di quanto debba essere grande un blocco indice. settembre 2008 Il File System 53 Blocchi indice - 2 Esempio di allocazione indicizzata con blocchi indice settembre 2008 Il File System 54 Nodi indice (Unix → Linux) Si usa una struttura indice (i-node) per ogni file, con gli attributi del file e i puntatori ai suoi blocchi – L’i-node è contenuto in un blocco dedicato – Linux usa i-node da 64 bytes In RAM una tabella di i-node per i soli file in uso Un i-node contiene un numero limitato di puntatori a blocchi → più livelli di puntatori (punt. indiretti) settembre 2008 Il File System 55 i-node Esempio di allocazione indicizzata con nodi indice (i-node) settembre 2008 Il File System 56 Blocchi liberi Il file system deve inoltre poter sempre individuare i blocchi liberi da assegnare ad un nuovo file: per questo utilizza tecniche che ne agevolino la ricerca – blocchi liberi concatenati in una lista – tabella di puntatori ai blocchi liberi organizzati a lista – mappa dei blocchi liberi (ogni puntatore individua il primo blocco di un’area libera seguito dal n. di blocchi liberi contigui) – bit map: si usa una sequenza di bit, uno per blocco, che indica se il blocco corrispondente è libero o occupato settembre 2008 Il File System 57