La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo.

Presentazioni simili


Presentazione sul tema: "CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo."— Transcript della presentazione:

1 CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo Brandolese Politecnico di Milano

2 - 2 - Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Implementazione Allocazione Gestione dello spazio libero Realizzazione delle directory

3 - 3 - File Il concetto di file offre una visone omogenea delle informazioni memorizzate La visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzate Un file è costituito da: Un insieme di informazioni omogenee Un nome simbolico Un insieme di attributi Un file può contenere: Dati Programmi Riferimenti

4 - 4 - Attributi Ad un file sono associati alcuni attributi che ne descrivono alcune caratteristiche Nome E un nome simbolico con cui ci si riferisce ad esso Tipo Definisce il tipo dei dati contenuti A volte il tipo viene definito attraverso una estensione del nome Locazione E un puntatore alla posizione fisica sul dispositivo Dimensione Dimensione dei dati espressa in bytes o blocchi

5 - 5 - Attributi Protezione Definisce le politiche di gestione degli accessi Ora e Data Indicano il momento della creazione, dellultima modifica o dellultimo accesso Proprietario Indica il nome dellutente che ha creato il file

6 - 6 - Operazioni Sui file possono essere compiute diverse operazioni Le operazioni vengono svolte attraverso delle richieste di servizi al sistema operativo Le operazioni più comuni sono elencate nel seguito Creazione Viene aggiunto un nuovo file al file system Le operazioni richieste sono: Allocazione Creazione del nuovo descrittore del file Aggiunta del descrittore al file system

7 - 7 - Operazioni Scrittura Aggiunge dati a ad un file già creato Per scrivere dati su un file è necessario fornire Il nome del file I dati da scrivere Il SO mantiene un puntatore alla posizione corrente Lettura Preleva dati da un file già creato Per leggere dati da un file è necessario fornire Il nome del file Un puntatore ad zona di memoria destinazione dei dati Il SO mantiene un puntatore alla posizione corrente

8 - 8 - Operazioni Riposizionamento Sposta la posizione dei puntatori di lettura/scrittura Le operazioni permesse dipendono dal tipo di accesso Spesso viene mantenuto dal file system un solo puntatore valido per la lettura e per la scrittura Cancellazione Elimina un file Per eliminare un file è necessario specificarne il nome Le operazioni necessarie sono: Deallocazione dello spazio sul dispositivo fisico Aggiunta alla lista dello spazio disponibile sul disco Rimozione del descrittore del file dal file system

9 - 9 - Operazioni Tutte le operazioni richiedono laccesso ad un file Il file system deve cercare il file sul dispositivo Per rendere più efficiente la ricerca, il file system mantiene una tabella dei file in uso I file in uso si dicono aperti Servizi forniti dal sistema operativo Open Sulla base del nome individua la posizione del file Copia il descrittore del file nella tabella dei file in uso Close Sulla base del nome individua il descrittore del file Elimina il descrittore dalla tabella dei file in uso

10 Struttura Un file system ha Struttura logica I dati sono organizzati in unità logiche di lunghezza fissa ma arbitraria dette record Nel sistema UNIX un record è un byte Struttura fisica I dati sono organizzati in unità fisiche di lunghezza fissa e dipendente dal dispositivo dette blocchi Dimensioni tipiche dei blocchi di unità a disco rigido variano da 32 a 4096 bytes, tipicamente 512 La struttura logica e fisica sono differenti I dati vengono impaccati prima di essere memorizzati in modo da sfruttare al meglio il dispositivo

11 Struttura: Esempio Tale differenza, unitamente alla dimensione fissata dei blocchi provoca uno spreco di spazio Si consideri un file lungo 1350 byte ed un disco con blocchi da 512 bytes Questa parte del blocco (186 byte) viene sprecata e non è utilizzabile da altri file Questo fenomeno è detto frammentazione interna

12 Struttura: Accesso Accesso sequenziale I dati sono letti/scritti in sequenza Le operazioni disponibili per tali file sono Lettura e scrittura Posizionamento allinizio o alla fine del file Posizionamento sul record precedente o successivo Accesso diretto o casuale I dati vengono letti e scritti in una qualsiasi posizione La posizione deve essere specificata in termini di blocco logico, relativamente allinizio del file I blocchi logici devono avere dimensione fissa per consentire il calcolo della posizione effettiva dei dati

13 Struttura Le memorie di massa contengono milioni di file Necessità di condividere uno o più file Tale mole di dati necessita una strutturazione Un file system è organizzato in Partizioni Contengono insiemi di file correlati Directory Una partizione è suddivisa in directory Contengono informazioni sui file e fungono da indice File Contengono effettivamente i dati o i programmi

14 Directory Sulle directory è possibile compiere alcune operazioni Ricerca di un file Sulla base di un nome o una espressione regolare consente di recuperare le informazioni su uno o più file Creazione di un file Alla directory viene aggiunto un elemento che raccoglie le informazioni sul nuovo file Rimozione di un file Eliminazione di un descrittore di file. Il descrittore deve essre prima individuato tramite una operazione di ricerca

15 Directory Rimozione di un file Eliminazione di un descrittore di file Il descrittore deve essre prima individuato tramite una operazione di ricerca Elenco dei file Produce lelenco dei nomi ed eventualmente altre informazioni relative ai file memorizzati Rinomina di un file Modifica il nome di un file già presente nella directory Il descrittore deve essre prima individuato tramite una operazione di ricerca

16 Directory a singolo livello Tutti i file sono contenuti in una sola directory Questa struttura è molto semplice ma presenta alcuni problemi Con molti file è difficile garantire che tutti i nomi siano diversi Con molti file le dimensioni della directory diventano grandi a discapito del tempo di accesso Utenti differenti possono accedere agli stessi file tmp test data jhon cc emacs

17 Directory a due livelli Directory principale Contiene un elenco di directory, una per utente (root) La gestione affidata ad un amministratore (superuser) Directory utente Contengono i file di un singolo utente (home) I singoli utenti vedono e gestiscono solo i file nella propria home directory Quando un utente richiede laccesso ad un file, il SO ne cerca il nome nella home directory dellutente Per accedere ai file di altri utenti si utilizza il path name cioè la composizione del nome dellutente e del nome del file

18 Directory a due livelli Gli applicativi sono accessibili a tutti gli utenti A tale scopo esiste una directory specifica (bin) I file sono Prima cercati nella directory dellutente Se la ricerca fallisce, nella directory degli applicativi bin mike bill jhon gcc tcsh emacs test data gnu data foo

19 Directory ad albero Ha un numeo arbitrario di livelli Un utente accede ai file attraverso il path name Per semplificare laccesso ai file viene definito il concetto di current working directory (cwd) I file vengono cercati nella directory corrente Se un file non è nella directory corrente: Si usa il suo path name Si cambia la directory corrente Il SO dispone di alcuni comandi per gestire la cwd cd dir La directory dir diviene la cwd pwd Mostra il nome della cwd

20 Directory ad albero Un esempio di directory ad albero è il seguente bin mike bill jhon gcc tcsh test data gnu data foo aax data type mary work her mom much

21 Directory a grafo aciclico Utenti diversi vogliono condividere uno o più file Per semplificare laccesso gli utenti vorrebbero vedere i file condivisi nella propria home Esistono due soluzioni con caratteristiche differenti Duplicazione I file condivisi sono duplicati nelle home degli utenti Spreco di spazio e problemi di allineamento Riferimento Viene copiato solo il descrittore del file Gli utenti accedono di fatto allo stesso file La gestione dei riferimenti richiede un sistema operativo più complesso

22 Directory a grafo aciclico La soluzione migliore è quella basata sui riferimenti Si ha una maggiore complessità del SO, infatti Deve garantire che il grafo risultante sia aciclico Quando un file viene rimosso si presenta il problema di come trattare i riferimenti a quel file Utenti differenti possono accedere simultaneamente allo steso file con il rischio di compromettelo. Una implementazione sono link di UNIX Soft link: Quando un file viene rimosso i riferimenti rimangono invariati ma puntano ad un file inesistente Hard link: Un file viene rimosso effettivamente solo quando tutti i riferimenti ad esso sono stati eliminati

23 Directory a grafo aciclico Esempio di directory a grafo aciclico: bin mike bill jhon gcc tcsh test data gnu much foo aax data foo mary work her mom much

24 Directory a grafo generale Estensione Rimuovere il vincolo di aciclicità del grafo In questo caso possono esistere riferimenti circolari Tale struttura risulta estremamente flessibile ma comporta una ulteriore complicazione del sistema operativo, in particolare Nella ricerca di un file il sistema operativo deve evitare di entrare in un loop Gli algoritmi di visita sono più complessi Il problema della rimozione di un file è più complesso Una soluzione possibile Limitare la profondità di un path name

25 Directory a grafo generale bin mike bill jhon gcc mike test data gnu much foo aax data foo mary work gnu mom much Esempio di directory a grafo generale:

26 Protezione I dati di un file system necessitano di protezione Protezione da danni fisici Malfunzionamenti dei dispositivi Danni meccanici e/o elettrici Soluzione: backup e mirroring Protezione da accessi impropri Riservatezza Modifica o eliminazione accidentale di dati Soluzione: definizione di una politica di accesso Con il termine protezione ci si riferisce alla Definizione di una politica di accesso Implementazione di una politica di accesso

27 Protezione Alcune banali politiche di accesso Ogni utente accede solo ai propri file Scelta limitante, ad esempio per i gruppi di lavoro Ogni utente accede a tutti i file È assente una politica di accesso La soluzione consiste nellaccesso controllato Si definiscono regole di accesso ai file sulla base di Identità e gruppo di lavoro dellutente Proprietà dei file Tali regole dipendono dal tipo di operazione richiesta Lettura Scrittura, eliminazione o aggiunta Esecuzione o lista

28 Protezione: Liste di accesso Laccesso ed le operazioni consentite dipendono dalla identità dellutente Ad ogni file è associata una lista di accesso o ACL Indica quali operazioni sono consentite a quali utenti Alla richiesta di una operazione il SO controlla la lista di accesso per verificare se il richiedente: È contemplato Ha il permesso di compiere quel tipo di operazione Questa soluzione presenta alcuni svantaggi: Le ACL possono avere dimensioni notevoli Le ACL devono essere create e gestite per ogni file Il tempo di accesso ad un file viene prolungato

29 Protezione: UNIX UNIX adotta una soluzione semplificata Gli utenti sono identificati in base a username Identificativo dellutente group Identificativo di gruppo Gli utenti sono raggruppati in tre classi ownerIl proprietario del file groupI membri del gruppo del proprietario del file allTutti gli utenti Le operazioni sono raggruppate in tre classi readLettura, copia writeScrittura, modifica, eliminazione executeEsecuzione

30 Protezione: UNIX Ad ogni file sono associati Owner Group Mode Il mode è formato da tre gruppi di bit Ogni gruppo si riferisce ad una classe di utenti Ogni bit del gruppo si riferisce ad una operazione rwx rwx rwx owner group all execute write read rwx rwx rwx 7 5 5

31 Implementazione Il sistema operativo fornisce una visione logica del file system fornendo File, directory, link Attributi e politiche di accesso Operazioni Mapping del file system logico sui dispositivi fisici Il file system è una struttura stratificata o a livelli Ogni livello usa le funzioni fornite dal livello inferiore Ogni livello implementa e fornisce funzioni al livello superiore Il livello più basso è costituito dai dispositivi hardware

32 Implementazione I livelli in cui viene suddiviso il file system sono Applicazione File System Logico Modulo di Organizzaione dei file File System di Base Controllo dellI/O Dispositivi Richiedono funzioni al file system logico. Sulla base del nome di un file e dellorganizzazione delle directory, genera richieste al modulo per lorganizzazione dei file. Legge i descrittori dei file restituendo la posizione. Conosce lorganizzazione logica e fisica. Traduce le richieste logiche in richieste fisiche verso il file system di base. Genera il numero assoluto di un blocco dato il suo numero relativo all inizio del file. Invia comandi generali alla parte di controllo dellI/O. Dato il numero di blocco assoluto genera informazioni specifiche quali faccia, settore, traccia, blocco fisico. Generano i segnali di controllo a partire dai comandi ricevuti. Tali programmi prendono il nome di driver. Eseguono i comandi richiesti attraverso i driver.

33 Allocazione Contigua I blocchi di un file sono adiacenti Un file di n blocchi è memorizzato nelle posizioni adiacenti b, b+1, …,b+n-2, b+n-1 Un descrittore deve indicare solo la coppia (b,n) Problema Allocazione di spazio per un nuovo file I tempi di accesso sono brevi in quanto laccesso A due blocchi successivi b e b+1 non richiede lo spostamento della testina Al blocco logico k richiede laccesso al blocco fisico b+k … 141 data (134, 8 )

34 Allocazione Contigua Dato un file di m blocchi è necessario individuare una porzione di disco costituita da almeno m blocchi contigui Si usano tre politiche: First-Fit:La prima zona, di almeno m blocchi, viene usata Best-Fit:La zona più piccola, di almeno m blocchi, viene usata Worst-Fit:La zona più grande, di almeno m blocchi, viene usata Le tecniche migliori sono le prime due, in particolare il metodo first-fit risulta più veloce Lallocazione contigua crea, nel tempo, zone inutilizzate di piccole dimensioni Tali zone hanno una bassa probabilità di contenere un file Questo fenomeno viene detto frammentazione esterna

35 Allocazione Contigua Una soluzione consiste nella compattazione dei dischi I file su un disco vengono letti e memorizzati temporaneamente altrove (ad esempio su un disco) Il disco originale viene completamente cancellato I file vengono riscritti in sequenza Questa operazione è molto costosa in termini di tempo e deve essere compiuta con una certa frequenza Una soluzione migliore sta nella memorizzazione di un file in due zone differenti, ognuna formata da blocchi contigui La zona aggiuntiva prende il nome di extent Sono ancora necessari algoritmi per la ricerca di spazio disponibile

36 Allocazione Contigua Un descrittore di file indica (b, e, n1, n2): b:base della sezione principale e: base dellextent n1: dimensioni della sezione principale n2: dimensione dellextent … data (11, 131, 3, 5 ) …

37 Allocazione Concatenata Lidea delluso di un extent può essere estesa a ad un numero maggiore di estensioni In questo modo un file è costituito da una sequenza di blocchi in cui: Il descrittore contine il riferimento al primo e ultimo blocco Ogni blocco contiene un riferimento al blocco successivo … data (12, 132 ) …

38 Allocazione Concatenata Questa soluzione risolve tutti i problemi tipici della allocazione contigua, in particolare: Non si ha frammentazione esterna Una parte di ogni blocco è dedicata a contenere un riferimento al blocco successivo La memorizzazione dei riferimenti riduce lo spazio disponibile per i dati Con blocchi di 512 byte e riferimenti di 4 byte si ha uno spreco di spazio pari allo 0.78% del disco Dati Riferimento

39 Allocazione Concatenata Anche questo metodo presenta alcuni svantaggi Per laccesso casuale è comunque necessario scorrere il file dallinizio fino al blocco desiderato Laccesso ad un file è meno efficiente in quanto può comportare molti riposizionamenti della testina Una soluzione consiste nel raggruppare più blocchi in un cluster e prevedere laccesso ai tali gruppi piuttosto che ai singoli blocchi: Si ha un miglioramento delle prestazioni per via del numero minore di riposizionamenti della testina Si ha una riduzione dello spazio utilizzato per i riferimenti Si ha una maggiore frammentazione interna

40 Allocazione Indicizzata Più efficiente della allocazione concatenata I riferimenti ai blocchi di un file sono raggruppati e memorizzati in un unico blocco indice Un blocco indice è quindi: Un vettore di riferimenti ai blocchi del file Li-esimo elemento del vettore si riferisce alli-esimo blocco del file Il descrittore contiene il riferimento al blocco indice In questo modo si ottiene: Eliminzaione della frammentazione esterna Accesso casuale ai blocchi molto efficiente

41 Allocazione Indicizzata EOF indica un riferimento vuoto Se un file è costituito da pochi blocchi Sottoutilizzo del blocco indice (dimensioni fissate) data (13) … EOF

42 Allocazione Indicizzata E importante scegliere una dimensione opportuna per il blocco indicie Se troppo grande, molto spazio viene sprecato Se troppo piccolo, non consente di trattare file di grandi dimensioni In genere il blocco indice coincide con quello fisico Esistono tre schemi possibili per risolvere i problemi legati alla gestione di file di diverse dimensioni Schema concatenato Schema multilivello Schema combinato

43 Allocazione Indicizzata Schema concatenato: Il blocco indice ha i riferimenti ai blocchi del file Lultimo elemento del blocco indice contiene un riferimento ad un secondo blocco indice, se il file è di grandi dimensioni Lultimo elemento del blocco indice contiene EOF se tutti i blocchi del file sono già stati referenziati data (13) EOF

44 Allocazione Indicizzata Schema multilivello: Un blocco indice di primo livello contiene i riferimenti ai blocchi indice di secondo livello Un blocco di secondo livello contiene i firerimenti ai blocchi di dati data (13) EOF EOF

45 Allocazione Indicizzata Schema combinato: La parte iniziale di un blocco indice contiene riferimenti a blocchi di dati del file Gli ultimi elementi del blocco indice contengono riferimenti ad altri blocchi indice Se il file ha dimensioni ridotte non viene utilizzato il secondo livello data (13) EOF EOF 13 98

46 Allocazione: UNIX i-node Mode Owner, group Timestamp Size Number of blocks Number of references Direct blocks (12) Single indirect blocks Double indirect blocks Triple indirect blocks Data i-node

47 Gestione dello spazio libero Allatto della creazione di un nuovo file è necessario individuare sul disco il primo blocco libero Una soluzione sta nelluso un vettore di bit in cui La posizione del bit indica il numero del blocco Se il bit vale 0 il blocco è già utilizzato Se il bit vale 1 il blocco è disponibile Si individua il primo blocco libero in questo modo Si scorrono le parole (di b bit) fino alla prima diversa da 0 Sia k il numero di parole uguali a zero Si trova loffset d del primo bit con valore 1 Lindirizzo n del blocco è dato da n = k x b + d

48 Gestione dello spazio libero Una soluzione alternativa si basa sullutilizzo di una lista concatenata, simile a quella utilizzata per i file In questo schema: La posizione del primo blocco disponibile è memorizzata in una zona riservata del disco Ogni blocco disponibile contiene un riferimento al blocco disponibile successivo Questa soluzione è migliore della precedente per dischi di grandi dimensioni

49 Realizzazione delle directory La soluzione più semplice è una lista lineare in cui ogni elemento contiene Il nome del file Il descrittore del file Per velocizzare le operazioni di accesso la lista viene ordinata lessicograficamente bar i-node data i-node foo i-node zap i-node end Data

50 Realizzazione delle directory Le operazioni sui file Eliminazione Creazione Rinomina... Richiedono una ricerca del nome La ricerca è di semplice realizzazione ma è poco efficiente ( è lineare nel numero degli elementi) Una lista ordinata lessicograficamente: Consente una ricerca binaria (logaritmica) Comporta problemi aggiuntivi per mantenere la lista in ordine

51 Realizzazione delle directory Una tecnica più efficiente consiste nelluso di una tabella di hash o funzione di hash La funzione di hash sulla base del nome del file, resrtituisce un riferimento, detto chiave o key, al descrittore di file I descrittori sono memorizzati in una lista lineare Funzione di hash Key 1 Key 2 Key 3 Key N foo

52 Realizzazione delle directory Un limite di questo metodo sta nei potenziali conflitti cioè quelle situazioni in cui per due nomi differenti la tabella restituisce lo stesso puntatore Funzione di hash Key 1 Key 2 Key K Key N foo Funzione di hash frob

53 Realizzazione delle directory Una soluzone è quella di utilizzare liste lineari di elementi aventi lo stesso codice di hash Si ha un impatto notevole sulle prestazioni che comunque risultano migliori rispetto alluso di una lista lineare semplice Key 1 Key 2 Key K Key N alpha i-node arpa i-node ax i-node end foo i-node frob i-node end


Scaricare ppt "CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano Il File System Master in Convergenza Docente: Carlo."

Presentazioni simili


Annunci Google