Sistemi Operativi. Implementazione del File System



Похожие документы
Sistemi Operativi (modulo di Informatica II)

Capitolo Silberschatz

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

Implementazione del File System

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

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

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Realizzazione del file system

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

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

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

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

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

Il File System. Il file system

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

File system II. Sistemi Operativi Lez. 20

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

Realizzazione del File System

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

SISTEMI OPERATIVI DISTRIBUITI

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

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

Il Software. Il software del PC. Il BIOS

Il Sistema Operativo: il File System

FoLUG Forlì Linux User Group. Partizionamento

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

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

Sistema operativo: Gestione della memoria

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

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

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

Realizzazione del file system

Installazione LINUX 10.0

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

File System Distribuiti

Approccio stratificato

Gestione della memoria centrale

Corso di Sistemi di Elaborazione delle informazioni

Le Infrastrutture Software ed il Sistema Operativo

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

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

La Gestione delle risorse Renato Agati

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

Organizzazione della memoria

Capitolo 3: Strutture dei sistemi operativi

Software di base. Corso di Fondamenti di Informatica

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

MANUALE PARCELLA FACILE PLUS INDICE

Architettura dei computer

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

Il Sistema Operativo

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

Il memory manager. Gestione della memoria centrale

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

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

Il sistema operativo: interazione con l utente

Organizzazione di Sistemi Operativi e Reti

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

STRUTTURE DEI SISTEMI DI CALCOLO

Informatica - A.A. 2010/11

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Sistemi Operativi. 5 Gestione della memoria

Modulo 4: Gestore del File System (Memoria secondaria) Componenti

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

Infrastrutture Software

Memoria secondaria. Sistemi Operativi mod. B 14.1

Inizializzazione degli Host. BOOTP e DHCP

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

Acronis Universal Restore

Informatica 1 Lezione 1

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Cosa è un foglio elettronico

L installer di Torinux

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Il software: Istruzioni per il computer. I tre tipi di software di sistema. Compiti del sistema operativo

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

Base di dati e sistemi informativi

Progettazione Fisica FILE

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

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

Utilizzo dei dischi DVD-RAM

Транскрипт:

Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Implementazione del File System

Sommario Realizzazione del file system Realizzazione della directory Metodi di allocazione dei file Gestione dello spazio libero Recupero del file system File system basato sulla registrazione delle attività NFS File: Struttura del file system Unità logica di memorizzazione Insieme di informazioni collegate Blocco di controllo di file (File Control Block - FCB) struttura di memorizzazione che contiene informazioni su un file (descrittore del file) Il file system risiede in modo permanente in un unità di memorizzazione secondaria (dischi) La funzionalità di un file system è organizzata in livelli

File System a strati Metadati (i FCB) + protezione e sicurezza Mappatura blocchi logici-fisici + gestione spazio libero Comandi di I/O generici di blocchi fisici Driver del dispositivo + gestione degli interrupt Un tipico blocco di controllo di file (FCB) NO contenuto, ma info sulla locazione del file nel dispositivo

Alcuni tipi di file system FAT12,FAT16, FAT32 IBM OS/2, MS-DOS, prime versioni di Windows fino a Windows ME, per floppy disk e memorie flash e drive USB da vari SO VFAT Windows95, per supportare nomi lunghi NTFS (New Technology File System) Windows (da Windows NT in poi) exfat (FAT64 ) da Windows Vista per memorie flash UFS (Unix file system) Ext (Extended file system), ReiserFS, Reiser4, UMDOS - per GNU/Linux High Sierra ISO 9660 CD-ROM UDF (Universal Disk Format) - CD-RW e DVD Realizzazione del file system Un file system è l'insieme dei tipi di dati astratti per la memorizzazione, l organizzazione, la navigazione e l'accesso in lettura- scrittura dei dati Diverse strutture su dispositivo (su disco) in memoria open() e close() di file

Strutture del file system su disco Per ogni partizione: Blocco di controllo del boot per il bootstrap del SO (se presente) Blocco di controllo della partizione # e dimensione dei blocchi, # e il puntatore ai blocchi liberi, # e il puntatore ai FCB Superblocco in UFS, master file table in NTF Directory (principale) Blocchi di controllo dei file (FCB) Strutture del file system in memoria La tabella delle partizioni (partition table) contiene info su ciascuna partizione montata Struttura delle directory a cui si è acceduto di recente contiene un puntatore alla tabella delle partizioni per le partizioni montate sù Tabella dei file aperti di tutto il sistema Una copia del descrittore di file per ciascun file aperto Un contatore dei processi che hanno correntemente aperto quel file Tabella dei file aperti per processo Contiene un puntatore al relativo elemento della tabella generale dei file aperti Altri campi: puntatore alla posizione corrente nel file, tipo di accesso richiesto al momento della open, ecc..

Strutture dati del file system in memoria- tabelle dei file aperti In UFS: Strutture del file system in memoria (Cont.) descrittore di file

Partizioni e montaggio di dischi Un disco si può suddividere in più partizioni, o una partizione può comprendere più dischi (nel caso di RAID) Una partizione può essere priva di file system (raw partition) Es.: swap area in UNIX, viene usato un formato specifico Le informazioni per avviare il sistema si possono registrare in un apposita partizione (partizione radice) Sono memorizzate in un formato proprio, dato che all inizio non sono caricati i driver di dispositivo del file system Sono memorizzate sequenzialmente, e vengono caricate in memoria come un immagine L immagine d avviamento può contenere più info di quelle che servono per avviare un solo SO Gestione di più SO (uno per partizione) boot loader Partizioni e montaggio di dischi (Cont.) Nella fase di caricamento, si esegue il montaggio della partizione radice, che contiene il nucleo del SO e altri file di sistema Il montaggio delle altre partizioni può avvenire automaticamente in questa fase, o può essere fatto esplicitamente in seguito Durante il montaggio, si verifica che il dispositivo contenga un file system valido (controllo d integrità) Se così non fosse, si verifica lo coerenza della partizione e si procede a eventuali correzioni

File System virtuali I SO moderni devono prevedere la possibilità di integrare diversi tipi di file system in un unica struttura a directory Evitando di scrivere procedure per ogni tipo di file system Il Virtual File Systems (VFS) utilizza una tecnica orientata agli oggetti per implementare il file system VFS permette che la stessa interfaccia di sistema (API) sia usata per differenti tipi di file system API è un interfaccia di VFS piuttosto che uno specifico tipo di sistema operativo Vista schematica di un file system virtuale vnode: struttura di rappresentazione per file e directory con un identificatore unico per tutta la rete

Realizzazione delle directory Lista lista di nomi di file con puntatori ai FCB Semplice da programmare, ma lenta per trovare un file -- ricerca lineare O(n) Tabella hash un vettore di dimensione fissa per memorizzare gli elementi della directory ed una tabella indice di hash Ogni elemento ha un valore hash h(key) calcolato sulla chiave key, ed usato come posizione nel vettore Diminuisce il tempo di ricerca nella directory -- O(1) in media, ma presenta il problema delle collisioni situazioni in cui due file sono identificate dalla stessa posizione generata dalla funzione di hash Es. soluzione: lista concatenata per ogni elemento (rallenta però le ricerche) chained-overflow hash table Schema di tabella Hash - chainedoverflow hash table Lista concatenata degli elementi con ugual valore hash (collisione)

Schema di tabella Hash - chainedoverflow hash table Inserimento di un elemento in testa alla lista di posizione h(key) Metodi di allocazione dei file Un metodo di allocazione indica come i file devono essere allocati ai blocchi del disco: Allocazione contigua Allocazione collegata Allocazione indicizzata

Allocazione contigua Ogni file occupa un certo numero di blocchi contigui su disco Un file di n blocchi è memorizzato nei blocchi adiacenti b, b+1, b+2,,b+n Facile l indirizzo del disco è definito da una coppia (contenuta nel descrittore del file) (b,n) - # blocco iniziale b e lunghezza (# blocchi) Allocazione contigua dello spazio del disco Ordinamento sequenziale adiacente dei blocchi

Allocazione contigua: mappatura da blocco logico a fisico Formula per individuare l i-esimo blocco logico b + i/n b dove: b = indirizzo del primo blocco del disco al quale accedere N b = D b / D f numero di blocchi logici in un blocco fisico D b = dimensione di un blocco logico D f = dimensione di un blocco fisico (tra 512 e 4096 byte) Allocazione contigua (2) Accesso rapido al blocco successivo Accesso diretto lento Problema di individuazione di spazio contiguo per l allocazione di un nuovo file o di una estensione di file esistente Frammentazione esterna compattazione Estensione dei file frammentazione interna

Allocazione contigua (3) 1. Individuazione dello spazio per un nuovo file problema già visto... problema di allocazione dinamica della memoria First-fit, best-fit, worst-fit Spreco di spazio: frammentazione esterna!!!! Allocazione contigua (4) 2. Individuazione dello spazio per ampliare un file Molti nuovi file system (ad es. Veritas o JFS) usano uno schema di allocazione contigua modificato Inizialmente viene allocato un pezzo contiguo di spazio e poi, quando la quantità non è sufficientemente grande, un estensione come ulteriore spazio contiguo Un file consiste in una o più estensioni (b,e,n1,n2) primo blocco, primo blocco dell estensione, lunghezza principale, lunghezza dell estensione

Allocazione collegata Ogni file è una lista collegata di blocchi del disco: i blocchi possono essere sparpagliati ovunque nel disco Struttura di un blocco La directory contiene il puntatore al primo e all ultimo blocco (b 1,b m ) Allocazione collegata (2)

Allocazione collegata (3) Libera gestione dello spazio no frammentazione esterna, no preallocazione Facile richiede solo l indirizzo del disco Per scrivere, si cerca un blocco libero (sistema di gestione dei blocchi liberi), e si concatena questo blocco al termine della lista Per leggere, si cerca il blocco seguendo la lista Accesso diretto inefficiente: per trovare l i-esimo blocco, bisogna scandire la lista i/n b accessi prima di localizzare il blocco desiderato Spreco di spazio per i puntatori al blocco successivo Uso dei cluster Problemi di affidabilità in caso di guasto in un blocco fisico perdita del puntatore al successivo blocco FAT: Tabella di allocazione dei file Blocco libero La FAT ha un elemento per ogni blocco del disco ed è indicizzata dal numero di blocco; la si usa come lista concatenata EOF

Esempio di allocazione FAT Per localizzare un blocco, cosa si fa? FAT: Tabella di allocazione dei file (Cont.) Tempo di accesso al file mediamente maggiore; ma migliora l accesso diretto e non si ha il problema della fragilità dei puntatori

Allocazione indicizzata Raggruppa tutti i puntatori in una sola locazione: il blocco indice (in genere della dimensione di un blocco fisico) Un indice per file L i-esimo elemento del vettore si riferisce all i-esimo blocco blocco indice Il descrittore del file contiene solo il riferimento al blocco indice Esempio di allocazione indicizzata

Allocazione indicizzata (2) Nessuna frammentazione esterna Accesso diretto veloce Maggiore affidabilità Ma ha overhead di spazio per il blocco indice Lo spazio per i riferimenti nel blocco indice è maggiore; se un file ha pochi blocchi si ha un sottoutilizzo Allocazione indicizzata (3) Dimensionamento del blocco indice Schema collegato Indice multilivello Schema combinato (usato nell UFS in Unix)

Allocazione indicizzata (4) Dimensionamento del blocco indice Schema collegato Si collegano tra loro più blocchi indice (se necessari per gestire file grandi) l ultimo elemento del file indice punta ad un ulteriore blocco indice Allocazione indicizzata (5) Dimensionamento del blocco indice Indice multilivello Si impiega un blocco indice di primo livello che punta a un insieme di blocchi indice di secondo livello che, a loro volta, puntano ai blocchi dei dati del file

Allocazione indicizzata (5) Dimensionamento del blocco indice Schema combinato (UFS) Ogni inode contiene 15 puntatori 12 puntano direttamente a blocchi dati Gli altri 3 puntano a blocchi indiretti Con puntatori di 32 bit e blocchi di 4K Byte, si arriva a gestire file di 4GB Con puntatori di 64 bit, si arriva all ordine dei terabyte Gestione dello spazio libero (1) Vettore di bit Lista collegata Raggruppamento Conteggio

Gestione dello spazio libero Vettore di bit o bitmap (n blocchi) 1011000110110 bit[i] = 678 0 blocco[i] libero 1 blocco[i] occupato 0 1 2 3 4 5 6 7 8 9 10 11 12 Calcolo efficiente del primo blocco libero: (numero di bit per parola) * (numero di parole con valore 0) + spiazzamento del primo bit a 1 nella parola Gestione dello spazio libero (Cont.) La mappa 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) Semplicità di trovare blocchi liberi consecutivi sul disco

Gestione dello spazio libero (3) Lista collegata (lista libera) Non trova facilmente spazi contigui No spreco di spazio Gestione dello spazio libero (4) Altri metodi (varianti della lista collegata): Raggruppamento Si memorizzano gli indirizzi di n blocchi liberi nel primo di questi I primi n-1 blocchi sono effettivamente liberi, mentre l ultimo contiene gli indirizzi di altri n blocchi liberi, e così via. Conteggio Nell elenco si tiene l indirizzo di un blocco libero e il numero di n blocchi liberi contigui che seguono il blocco La lista globale è più corta, perché solitamente il contatore è >1

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 tutte 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à I file system orientati alle transazioni basate su log (o file system basati sulla registrazione delle attività) registrano ogni aggiornamento del file system come una transazione Tutte le transazioni sono scritte in un registro (log). Una transazione è considerata effettuata quando è scritta nel log. Comunque, il file system non può ancora essere aggiornato. Le transazioni nel log sono scritte in modo asincrono rispetto al file system. Quando il file system viene modificato, la transazione viene rimossa da log Se il file system si blocca, tutte le transazioni rimanenti nel log devono essere completate!

NFS L NFS è sia un implementazione sia una specifica di un sistema software per accedere ai file remoti attraverso le LAN (o anche le WAN) L implementazione fa parte dei sistemi operativi Solaris e SunOS che funziona sulle workstation Sun e che usa i protocolli TCP o quelli UDP/IP (a seconda della rete di connessione) NFS (Cont.) Insieme di workstation interconnesse come un insieme di computer indipendenti con file system indipendenti lo scopo è di permettere un certo grado di condivisione fra questi file system in modo trasparente Una directory remota è montata su un file system locale Deve essere fornita la locazione della directory remota Una volta montata, gli utenti possono accedere ai file della directory remota in modo completamente trasparente

NFS (Cont.) In base ai diritti di accesso, potenzialmente qualsiasi file system, o qualsiasi directory entro il file system, può essere montato in remoto sopra qualsiasi directory locale Questa indipendenza è ottenuta tramite l uso di primitive RPC, sviluppate sopra un protocollo esterno di rappresentazione dei dati (XDR), usato fra due interfacce indipendenti dall implementazione Vista schematica dell architettura NFS