Implementazione del File System



Documenti analoghi
Capitolo Silberschatz

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi. Implementazione del File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi (modulo di Informatica II)

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Sistemi Operativi (modulo di Informatica II)

Realizzazione del file system

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Realizzazione del File System

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

File System Distribuiti

STRUTTURE DEI SISTEMI DI CALCOLO

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

* Accesso ai file remoti - trasferimento effettivo dei dati mediante RPC - aumento delle prestazioni tramite caching

Il Software. Il software del PC. Il BIOS

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Realizzazione del file system

Il File System. Il file system

11 Realizzazione del File System Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

Architettura di un sistema di calcolo

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Struttura del File-System! Implementazione del File System! Filesystem!

Lezione 12. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Indice. settembre 2008 Il File System 2

Cos è un file system? File system Distribuiti. Cos è un sistema distribuito? Operazioni fondamentali. Struttura di un DFS.

Corso di Sistemi di Elaborazione delle informazioni

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

File system II. Sistemi Operativi Lez. 20

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Il Sistema Operativo: il File System

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Protezione. Protezione. Protezione. Obiettivi della protezione

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Interfaccia del file system

Sistemi Operativi. 5 Gestione della memoria

Il file system. File system. Fornisce il meccanismo per la memorizzazione e l accesso di dati e programmi Consiste di due parti

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Organizzazione della memoria

Laboratorio di Informatica

Gestione della Memoria

Architettura di un sistema operativo

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Le Infrastrutture Software ed il Sistema Operativo

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Materiali per il modulo 1 ECDL. Autore: M. Lanino

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12.

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Software di base. Corso di Fondamenti di Informatica

FoLUG Forlì Linux User Group. Partizionamento

Sistemi operativi. Esempi di sistemi operativi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Architettura dei computer

Gestione della memoria centrale

Transmission Control Protocol

LaCie Ethernet Disk mini Domande frequenti (FAQ)

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Gestione del file system

Sistema operativo: Gestione della memoria

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Corso di Sistemi di Elaborazione delle informazioni

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

PARTE 4 La Macchina Software

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Progettazione Fisica FILE

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Sistemi Operativi. 11 LEZIONE INTERFACCIA DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Reti di Telecomunicazione Lezione 6

Introduzione alle applicazioni di rete

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Architettura hardware

Infrastrutture Software

Varie tipologie di memoria

Transcript:

Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero. Efficienza e prestazioni. Recupero del file system. File system basato sulla registrazione delle attività. Network File System (NFS). Struttura del file system File System a strati File system: Definizione dell aspetto agli occhi dell utente Algoritmi e strutture dati che permettono di far corrispondere il file system logico ai dispositivi fisici Il file system risiede in un unità di memorizzazione secondaria (disco) Si può scrivere localmente Accesso diretto Gestisce i metadati: directory File control block (FCB) Protezione e sicurezza Blocchi logici/blocchi fisici Gestione spazio libero Comandi generici al driver Il file system è organizzato in livelli. Device Driver e gestione interrupt

Strutture del file system su disco Strutture del file system in memoria Boot control block Informazioni necessarie all avvio per il caricamento del sistema (UFS - boot block, NTFS - partition boot sector) Volume control block contiene dettagli del volume, numero di blocchi per partizione, taglia dei blocchi, blocchi liberi (UFS superblock, NTFS master file table) Struttura delle directory usata per organizzare i file Tabella di montaggio (mount table) contiene informazioni circa i volumi montati Cache per le strutture delle directory recentemente accedute Tabella dei file aperti di sistema File control block (FCB) informazioni sul file (UFS inode) Tabella dei file aperti per processo (figure 12-3(a) e (b)) File Control Block Open e read Creazione di un file Creazione (o allocazione) di un nuovo FCB Modifica della directory (nome file e FCB) e riscrittura su disco

Partizioni e montaggio File System Virtuali Un disco può presentare diverse partizioni (raw, cocked) Root partition contiene il kernel del sistema operativo e altri file. Viene montata in fase di boot La tabella di montaggio tiene traccia di tutti i file system montati Windows monta ciascun volume in uno spazio di nomi separato (E:, F:, G: ) In Unix un file system può essere montato su ogni directory (un flag nell inode della directory indica che quella directory è un punto di montaggio ) Un moderno sistema operativo può supporta diversi tipi di file system. Come? Un Virtual File System (VFS) utilizza una tecnica orientata agli oggetti. VFS permette che la stessa interfaccia (i.e., chiamate di sistema) API sia usata per differenti tipi di file system. L API usa le funzioni VFS piuttosto che quelle di un tipo specifico di file system. VFS si occupa della traduzione della chiamata astratta nella chiamata all opportuno file system Vista schematica di un VFS Implementazione di una directory Open, close, read, write Rapp. univoca - vnode Lista di nomi di file con puntatori ai blocchi dei dati: semplice da programmare, richiede tempo per l esecuzione. B-Alberi Tabella hash lista lineare con una tabella hash: diminuisce il tempo di ricerca nella directory; collisioni due nomi di file vengono associati alla stessa posizione dalla funzione hash; dimensione fissa.

Metodi di allocazione Allocazione contigua Un metodo di allocazione specifica come i blocchi del disco vengono allocati ai file: Allocazione contigua. Allocazione linkata. Ogni file occupa un certo numero di blocchi contigui su disco. Facile è definita dall indirizzo del primo blocco del file su disco e dalla lunghezza (numero di blocchi). Allocazione indicizzata. Accesso sequenziale e accesso diretto. Frammentazione esterna (problema dell allocazione dinamica della memoria). La taglia dei file non può crescere. Allocazione contigua dello spazio del disco Allocazione contigua Mappatura da logico a fisico. Q LA/512 R Blocco al quale accedere = Q + indirizzo di partenza (primo blocco). Spostamento nel blocco = R

Estensione Allocazione linkata Molti nuovi file system (e.g., Veritas File System) usano uno schema di allocazione contigua modificato. Ogni file è una lista linkata di blocchi del disco: i blocchi possono essere sparpagliati ovunque nel disco. Inizialmente viene allocato un pezzo contiguo di spazio e poi, quando il pezzo non è più sufficientemente, viene aggiunta una estensione. blocco = puntatore Un estensione è un altro pezzo di spazio contiguo. Un file consiste in una o più estensioni. Allocazione linkata Allocazione linkata Facile richiede solo l indirizzo del primo blocco. Gestione dello spazio libero assenza di sprechi. Accesso casuale inefficiente. Mapping indirizzi logici/fisici. LA/511 Q R Il blocco al quale accedere è il Q-esimo blocco nella lista linkata di blocchi che rappresentano il file. Spostamento nel blocco = R + 1

Tabella di allocazione dei file (FAT) Allocazione indicizzata tabella indice Porta tutti puntatori nel blocco indice. Vista logica. Esempio di allocazione indicizzata Allocazione indicizzata Necessita di una tabella indice. Accesso casuale. Accesso diretto senza frammentazione esterna, ma c è l overhead del blocco indice. Mapping da logico a fisico in un file della dimensione massima di 256K parole e blocco della dimensione di 512 parole. È necessario un solo blocco per la tabella indice. LA/512 Q R Q = spostamento nella tabella indice, R = spostamento nel blocco.

Allocazione indicizzata Allocazione indicizzata 2 livelli Mappatura da logico a fisico per un file di lunghezza illimitata (dimensione blocco di 512 parole). Schema linkato collega i blocchi indice (nessun limite di dimensione). LA / (512 x 511) Q 1 = blocco della tabella indice. R 1 è usato come segue: R 1 / 512 Q 2 = spostamento nel blocco della tabella indice. R 2 spostamento nel blocco di file. Q 2 R 2 Q 1 R 1 M indice esterno tabella indice file Allocazione indicizzata Schema combinato: UNIX (4K byte per blocco) Indice a due livelli (la dimensione massima del file è 512 3 ). LA / (512 x 512) Q 1 R 1 Q 1 = spostamento nell indice esterno, R 1 è usato come segue: R 1 / 512 Q 2 R 2 Q 2 = spostamento nel blocco della tabella indice. R 2 spostamento nel blocco del file.

Gestione dello spazio libero Gestione dello spazio libero Vettore di bit (n blocchi). 0 1 2 n-1 bit[i] = 678 0 blocco[i] occupato 1 blocco[i] libero Calcolo del primo numero di blocco libero: Il vettore di bit richiede spazio extra. Esempio: dimensione blocco = 2 12 byte dimensione disco = 2 30 byte (1 gigabyte) n = 2 30 /2 12 = 2 18 bit (o 32K byte) (numero di bit per parola) *(numero di parole con valore 0) + spiazzamento del primo bit a 1 Semplicità di trovare blocchi liberi consecutivi sul disco. Lista dei blocchi liberi su disco Lista dei blocchi liberi su disco Lista linkata (lista di blocchi liberi) Non facile trovare blocchi contigui. Assenza di spreco di spazio. Raggruppamento. Conteggio.

Gestione dello spazio libero Efficienza e prestazioni Bisogna proteggere: L efficienza dipende da: Puntatore alla lista dei blocchi liberi Algoritmi per l allocazione del disco; Vettore di bit deve essere tenuto nel disco; la copia in memoria e su disco possono essere diverse; la situazione in cui un blocco[i] ha bit[i] = 0 in memoria e bit[i] = 1 su disco non è accettabile. Soluzione: impostare bit[i] = 0 nel disco; allocare il blocco[i]; impostare bit[i] = 0 in memoria. tipi di dati conservati negli elementi delle directory. Prestazioni: cache del disco sezione separata della memoria centrale per i blocchi usati frequentemente; free-behind e read-ahead tecniche per ottimizzare l accesso sequenziale; migliorare le prestazioni del PC usando parti di memoria per realizzare un disco virtuale (disco RAM). Disco RAM Page cache e buffer cache Una cache di pagine usa tecniche di memoria virtuale per memorizzare i dati del file come pagine invece che come blocchi del disco. L I/O mappato in memoria usa una page cache. L I/O attraverso il file system usa una buffer (disk) cache. Questo porta alla seguente figura. disco RAM, volatile, controllato dall utente cache, gestite dal sistema operativo

I/O senza buffer cache unificata Buffer Cache unificata Una buffer cache unificata usa la stessa page cache per memorizzare temporaneamente sia le pagine mappate in memoria sia l ordinario I/O per il file system I/O con buffer cache unificata Recupero del file system Controllore della coerenza confronta i dati nella struttura delle directory con i blocchi di dati su disco e cerca di riparare le incoerenze che trova. Usare programmi di sistema per effettuare il salvataggio di sicurezza (back up) dei dati dal disco fisso ad un altro dispositivo di memorizzazione (floppy disk, DVD). Recuperare i file persi o l intero disco attraverso il ripristino dei dati salvati sul supporto di backup.

File system basato sulla registrazione delle attività NFS (Sun Network File System) I file system basati sulla registrazione delle attività registrano ogni aggiornamento del file system come una transazione. L NFS è sia un implementazione sia una specifica di un sistema software per accedere a file remoti attraverso LAN (o WAN). Tutte le transazioni sono scritte in un registro (log). Una transazione è considerata effettuata quando è scritta nel log. Tuttavia, il file system potrebbe non essere stato ancora aggiornato. L implementazione fa parte dei sistemi operativi Solaris e SunOS che funziona sulle workstation Sun e che usa i protocolli TCP o UDP/IP. Le transazioni nel log sono scritte in modo asincrono nel file system. Quando il file system è stato modificato, la transazione viene rimossa da log. Se il file system si blocca, tutte le transazioni rimanenti nel log devono essere completate. NFS NFS Insieme di workstation interconnesse viste come macchine indipendenti con file system indipendenti, che permette condivisione fra questi file system in modo trasparente. Una directory remota è montata su un file system locale. La directory montata assomiglia ad un sottoalbero completo del file system locale, che sostituisce il sottoalbero discendente dalla directory locale. La specifica della directory remota nell operazione di montaggio è non trasparente: deve essere fornito il nome dell host della directory remota. Successivamente, però gli utenti possono accedere ai file della directory remota in modo completamente trasparente. NFS è stato disegnato per operare in un ambiente eterogeneo costituito da computer, sistemi operativi e architetture di reti differenti. La specifica NFS è indipendente da questi strumenti. Questa indipendenza è ottenuta tramite l uso di primitive RPC, sviluppate sopra un protocollo esterno di rappresentazione dei dati (XDR). La specifica NFS fa distinzione tra i servizi forniti da un meccanismo di montaggio e gli effettivi servizi di accesso remoto ai file. In base ai diritti di accesso, potenzialmente qualsiasi file system, o qualsiasi directory del file system remoto, può essere montato su qualsiasi directory locale.

Tre file system indipendenti Montaggio in NFS Montaggi Montaggi a cascata NFS protocollo di montaggio Il protocollo NFS Stabilisce la connessione logica iniziale fra un server e un client. Un operazione di montaggio include il nome della directory remota e il nome del server in cui è contenuta. La richiesta di montaggio è mappata nella corrispondente RPC ed inoltrata al server di montaggio in esecuzione sul server. Lista di esportazione specifica i file system locali che esporta per il montaggio insieme ai nomi dei computer cui è permesso il montaggio. Quando il server riceve una richiesta di montaggio conforme alla propria lista di esportazione, restituisce al client un descrittore (file handle) che serve come chiave per ulteriori accessi. File handle consiste in un identificatore del file system e in un numero di inode per individuare la directory montata nel file system esportato. L operazione di montaggio cambia solo la vista dell utente e non influisce sul lato server. Fornisce un gruppo di RPC per operazioni remote su file. Le procedure supportano le seguenti operazioni: ricerca di un file all interno di una directory; lettura di un gruppo di elementi della directory; manipolazione dei collegamenti e delle directory; accesso agli attributi dei file; lettura e scrittura dei file. I server NFS sono stateless; ogni richiesta deve fornire un insieme completo di argomenti. I dati modificati devono essere inviati al disco del server prima che i risultati siano restituiti al client (perdita dei vantaggi della cache). Il protocollo NFS non fornisce meccanismi di controllo della concorrenza.

I tre livelli principali dell architettura NFS Vista schematica dell architettura NFS Interfaccia del file system UNIX (basata sulle chiamate di sistema, open, read, write, e close, e sull uso di descrittori di file). Livello Virtual File System (VFS) distingue i file locali da quelli remoti, ed i file locali sono ulteriormente distinti in base al tipo di file system. VFS attiva specifiche operazioni per gestire richieste locali in base ai tipi di file system. Chiama le procedure del protocollo NFS per gestire le richieste remote. Livello di servizio NFS livello più basso dell architettura; implementa il protocollo NFS. NFS traduzione del nome del percorso NFS operazioni remote Avviene spezzettando il percorso nelle varie componenti ed effettuando una lookup call NFS separata per ogni coppia (nome del componente, vnode della directory). Ad eccezione dell apertura e della chiusura dei file, c è quasi una corrispondenza biunivoca fra le normali chiamate di sistema UNIX per le operazioni sui file e il protocollo RPC dell NFS. Per rendere veloce la ricerca, una cache di nomi di directory lato client conserva i vnode per i nomi di directory remote. L NFS aderisce al paradigma del servizio remoto ma, per ottenere prestazioni migliori, impiega tecniche di buffering e caching. Cache degli attributi del file All apertura di un file, il kernel controlla con il server remoto se eseguire il prelievo o convalidare nuovamente gli attributi in cache. Cache dei blocchi di file I blocchi dei file in cache vengono usati solo se i corrispondenti attributi in cache sono aggiornati. I client non liberano i blocchi di scrittura ritardata finché il server non conferma che i dati sono stati scritti su disco.