sistemi operativi - talia/aa0203/sisop/lezione9.pdf · sistemi operativi 9.14 d. talia - unical...

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

Upload: doancong

Post on 18-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.1Sistemi Operativi

Sistemi Operativi

IMPLEMENTAZIONE

DEL FILE SYSTEM

Page 2: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.2Sistemi Operativi

Implementazione del File System

Struttura del File System

Implementazione

Implementazione delle Directory

Metodi di Allocazione

Gestione dello spazio libero

Efficienza e Performance

Recovery

Page 3: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.3Sistemi Operativi

Struttura del File System

Struttura dei FileUnità Logica di memoriaCollezione di informazioni

Un file è memorizzato e trasferito a blocchi.

Il File system risiede su memoria secondaria (dischi).

Il File system organizzato a livelli funzionali.

Page 4: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.4Sistemi Operativi

Livelli di un File System

Page 5: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.5Sistemi Operativi

Un File Control Block

File control block – struttura di memoria che consiste delle informazioni riguardanti un file.

Page 6: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.6Sistemi Operativi

Strutture del File System in Memoria

Le due figure seguenti illustrano le strutture necessarie al file system fornite dal sistema operativo.

Figura (a) descrive l’operazione di apertura di un file (open).

Figura (b) descrive l’operazione di lettura (read) di un file (open).

Page 7: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.7Sistemi Operativi

Strutture del File System in Memoria

Page 8: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.8Sistemi Operativi

File System Virtuali

Alcuni file system, come UNIX, permettono di gestire in maniera integrata diversi tipi di file system.

Questo è fatto tramite un File System Virtual (VFS) che fornisce una rappresentazione object-oriented del file system

Un VFS permette di usare una stessa interfaccia (API) per differenti tipi di file system.

L’interfaccia opera verso il VFS che “nasconde” i diversi tipi di file system sottostanti.

Page 9: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.9Sistemi Operativi

Vista Schematica di un File System Virtuale

Page 10: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.10Sistemi Operativi

Implementazione delle Directory

La scelta dei metodi di allocazione e gestione delle directory ha un impatto sull’efficienza e l’affidabilità del file system. Due metodi principali:

Lista lineare dei nomi dei file con i puntatori ai blocchi dei dati (contenuto dei file)

semplice da programmarenon molto efficiente nella ricerca (lineare)

Tabella hash – lista lineare con struttura hash per la ricerca.

Diminuisce il tempo di ricercacollisioni – situazioni dove due nomi di file portano alla stessa locazione.Dimensione fissata legata alla funzione hash.

Page 11: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.11Sistemi Operativi

Metodi di Allocazione

Un metodo di allocazione si occupa di come allocare sulla memoria secondaria i blocchi di un file.

Tre metodi principali:

Allocazione Contigua

Allocazione concatenata (linked)

Allocazione indicizzata

Page 12: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.12Sistemi Operativi

Allocazione Contigua

Ogni file occupa un insieme contiguo di blocchi sul disco.

Semplice : è necessario conoscere la locazione di partenza (indirizzo del primo blocco) e la lunghezza (numero di blocchi).

Accesso casuale.

Spreco di spazio.

Occorre trovare lo spazio sufficiente (problema di allocazione dinamica di memoria).

I file in certi casi non possono crescere di dimensione.

Page 13: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.13Sistemi Operativi

Allocazione Contigua

Page 14: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.14Sistemi Operativi

Allocazione Contigua modificata

Alcuni nuovi sistemi operativi moderni usano uno schema modificato dell’allocazione contigua

Se al file non basta lo spazio di memoria contigua allocata si alloca un ulteriore spazio contiguo (extent) su una parte libera del disco.

Un file quindi può essere composta da due o più extent.

E’ necessario avere un contatore degli extent e l’indirizzo del primo extent.

Page 15: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.15Sistemi Operativi

Allocazione Concatenata

Ogni file è gestito tramite una lista concatenata di blocchi di disco: i blocchi non devono essere necessariamente contigui e quindi possono stare in punti diversi del disco.

puntatoreblocco =

puntatore

Page 16: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.16Sistemi Operativi

Allocazione Concatenata

Page 17: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.17Sistemi Operativi

Allocazione Concatenata

Semplice – serve solo l’indirizzo di partenza.Sistema di gestione dello spazio libero – non c’è spreco. Accesso sequenziale (quello diretto è inefficiente).I file possono crescere.

Una variante:File allocation table (FAT)

Tabella con tanti elementi per quanti sono i blocchi sul disco.Ogni elemento contiene l’indice del prossimo blocco.

Usata in MS-DOS e OS/2.

Page 18: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.18Sistemi Operativi

File Allocation Table

Page 19: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.19Sistemi Operativi

Allocazione Indicizzata

Mantiene tutti i puntatori ai blocchi dei file in un’unica struttura: il blocco indice.

Vista logica:

Blocco indice

Page 20: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.20Sistemi Operativi

Esempio di Allocazione Indicizzata

Page 21: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.21Sistemi Operativi

Allocazione Indicizzata

Blocco indice occupa spazio.Accesso direttoNon c’è frammentazione esterna.

Per file composti da un numero massimo di 256K word con blocco indice di 512 word è sufficiente un blocco indice.

Se un blocco non è sufficiente a contenere gli indici dei blocchi di un file:

schema concatenatoschema multilivelloschema combinato.

Page 22: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.22Sistemi Operativi

Allocazione Indicizzata: schema concatenato

L’ultima parte di un blocco indice contiene un puntatore ad un altro blocco indice (se il file è molto grande).

puntatoreBlocco indice

puntatorepuntatore

Puntatore

Puntatore al b.i.

puntatore

puntatore

Blocco indice

Page 23: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.23Sistemi Operativi

Allocazione Indicizzata: schema multilivello

B. I. di primo

livello

B.I. di secondo

livello

file

Page 24: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.24Sistemi Operativi

Schema Combinato : UNIX (4K byte per blocco)

Page 25: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.25Sistemi Operativi

Gestione dei blocchi liberi

Per memorizzare i blocchi liberi si usa il vettore di Bit (n bit per n blocchi)

…0 1 2 n-1

bit[i] =1 ⇒ blocco[i] libero

0 ⇒ blocco[i] occupato

Calcolo del numero del primo blocco libero usando le word:

(numero di bit per word) * (numero di word con valore 0) +offset del primo bit 1

Page 26: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.26Sistemi Operativi

Gestione dei blocchi liberi

La bit map richiede uno spazio che potrebbe non essere tutto in memoria. Esempio:

dim. blocco = 212 bytedim disco = 230 byte (1 gigabyte)n = 230/212 = 218 bit (or 32K byte)

Soluzione alternativaLista concatenata (lista blocchi liberi)

Bassa efficienza nella ricercaNon c’è spreco di spazio

Grouping di blocchi per migliorare le prestazioni.

Page 27: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.27Sistemi Operativi

Lista concatenata dei blocchi liberi

Page 28: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.28Sistemi Operativi

Gestione dei blocchi liberi

Occorre proteggere i dati critici:Puntatore alla lista dei blocchi liberi.Bit map

Deve essere tenuta sul disco e in memoriaPer un blocco i il bit[i] non può essere = 1 in memoria bit[i] = 0 sul disco.

Soluzione:Si assegna bit[i] = 1 sul disco.Si alloca il blocco[i]Si assegna bit[i] = 1 in memoria.

Page 29: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.29Sistemi Operativi

Efficienza e Performance

Efficienza della memoria secondaria dipende da:algoritmi di allocazione e algoritmi di gestione delle directory

tipi di dati memorizzati nelle entry delle directory.

Performancecache del disco – sezione separata della memoria centrale per i blocchi usati più frequentemente.Rilascio indietro e lettura anticipata – tecniche per ottimizzare l’accesso sequenziale. Uso di una sezione della memoria centrale come disco virtualeo disco RAM.

Page 30: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.30Sistemi Operativi

Diverse locazioni di caching sul disco

Page 31: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.31Sistemi Operativi

Page Cache

Molti sistemi come Linux, Solaris e Windows NT usano una page cache che contiene pagine piuttosto che blocchi fisici di disco usando tecniche di memoria virtuale.

Solaris usa un sistema di memoria virtuale unificato che usa la page cache per contenere sia pagine dei processi che pagine di dati dei file.

Alcune versioni di UNIX implementano una buffer cache unificata che velocizza e ottimizza la lettura di pagine dal disco.

Page 32: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.32Sistemi Operativi

I/O senza Buffer Cache unificata

Page 33: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.33Sistemi Operativi

I/O con Buffer Cache unificata

Page 34: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.34Sistemi Operativi

Ripristino (Recovery)

Controllo di consistenza: confronta i dati nella struttura delle directory con i blocchi che sono sul disco e tenta di riparare le inconsistenze.

Backup: Uso di programmi di sistema per realizzare copie di back up dei dati su dispositivi diversi (floppy disk, nastri). Incrementale o totale.

Ripristino dei file persi ripristinando i dati dalla copia dibackup.

fsck in UNIX e chkdsk in Windows.

Page 35: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.35Sistemi Operativi

File System basati su Log

Alcuni file system (NTFS, Solaris) usano un sistema di revovery basato su log per gestire tutti gli aggiornamenti sui file.

Tutte le operazioni sono registrate su un log come transazioni. Dopo aver registrato l’operazione sul log si modifica il file.

Quando il file system viene modificato, la transazione viene rimossa dal log.

Se si verifica un crash del file system, tutte le transazioni memorizzate nel log dovranno essere eseguite al suo ripristino.

Page 36: Sistemi Operativi - talia/aa0203/sisop/lezione9.pdf · Sistemi Operativi 9.14 D. Talia - UNICAL Allocazione Contigua modificata Alcuni nuovi sistemi operativi moderni usano uno schema

D. Talia - UNICAL9.36Sistemi Operativi

Domande

Cosa contiene un file control block e come viene usato dal file system ?

Discutere i benefici dell’allocazione concatenata rispetto all’allocazione contigua.

Spiegare come risolvere i problemi di dimensionamento del blocco indice nell’allocazione indicizzata.

A cosa serve e come è organizzata la FAT ?

Spiegare come usando i log si può effettuare il ripristino di un file system dopo un crash.