Capitolo 11 -- Silberschatz



Documenti analoghi
Implementazione del File System

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. 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)

Sistemi Operativi. Implementazione del File System

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

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

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

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

Realizzazione del file system

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

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

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

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

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

Il File System. Il file system

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

Indice. settembre 2008 Il File System 2

Il Software. Il software del PC. Il BIOS

Realizzazione del File System

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

Gestione della memoria centrale

Sistema operativo: Gestione della memoria

File system II. Sistemi Operativi Lez. 20

Il Sistema Operativo: il File System

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

Gestione della Memoria

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

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. 5 Gestione della memoria

Realizzazione del file system

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

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

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 file system. File system. Fornisce il meccanismo per la memorizzazione e l accesso di dati e programmi Consiste di due parti

Il Sistema Operativo

Corso di Sistemi di Elaborazione delle informazioni

Protezione. Protezione. Protezione. Obiettivi della protezione

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

Interfaccia del file system

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

Forse la periferica più importante di un elaboratore File system:

FoLUG Forlì Linux User Group. Partizionamento

Struttura del Micro Filesystem (µfs)

Il memory manager. Gestione della memoria centrale

Le Infrastrutture Software ed il Sistema Operativo

Software di base. Corso di Fondamenti di Informatica

Gestione del file system

Organizzazione degli archivi

LABORATORIO DI SISTEMI

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

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

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

SISTEMI OPERATIVI DISTRIBUITI

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

Corso di Sistemi di Elaborazione delle informazioni

Il sistema operativo: interazione con l utente

Sistemi Operativi File System (parte 2)

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

Architettura di un calcolatore

Sistemi operativi. Esempi di sistemi operativi

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

= 0, 098 ms. Da cui si ricava t 2 medio

PROGETTAZIONE FISICA

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

STRUTTURE DEI SISTEMI DI CALCOLO

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Architettura hardware

Esercitazione E6 Esercizi d esame

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

La Gestione delle risorse Renato Agati

Architettura dei computer

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Infrastrutture Software

Progettazione Fisica FILE

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

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

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

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

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

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

File System Distribuiti

PARTE 4 La Macchina Software

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

Strutturazione logica dei dati: i file

I file di dati. Unità didattica D1 1

Laboratorio di Informatica

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

Database. Si ringrazia Marco Bertini per le slides

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

Qualche parola da imparare

La memoria - generalità

Transcript:

Implementazione del File System Capitolo 11 -- Silberschatz

Implementazione del File System File system: Definizione dell aspetto del sistema 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 Il file system è organizzato in livelli. 1.2

File System a strati File system logico: gestisce i metadati (tutte le strutture dei file eccetto i dati): directory, File control block (FCB), protezione e sicurezza Modulo di organizzazione dei file: traduce gli indirizzi dei blocchi logici in quelli dei blocchi fisici; gestisce spazio libero File system di base: deve inviare comandi generici al driver del dispositivo per leggere o scrivere blocchi fisici nel disco Controllo I/O (driver dei dispositivi e gestori di interrupt): si occupa del trasferimento delle info tra memoria centrale e secondaria 1.3

Strutture presenti sul disco Boot control block Informazioni necessarie per il caricamento del sistema operativo (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 (UFS nomi file e i-node associato, NTFS master file table) File control block (FCB) informazioni sul file (UFS inode) 1.4

Strutture del file system in memoria Quando si monta un file system vengono caricate in memoria questa serie di informazioni che si eliminano solo allo smontaggio: 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 Tabella dei file aperti per processo 1.5

Creazione di un file File control block Creazione (o allocazione) di un nuovo FCB Carica in memoria la directory appropriata Modifica la directory (nome file e FCB) e riscrittura su disco 1.6

open e read 1.7

Partizioni e montaggio Un disco può presentare diverse partizioni: raw : non contiene alcun file system; è una parte del disco privo di struttura logica cocked : parte del disco con una struttura logica 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 i-node della directory indica che quella directory è un punto di montaggio ) 1.8

File System Virtuali Un moderno sistema operativo può supportare diversi tipi di file system. Come? Un Virtual File System (VFS) utilizza una tecnica orientata agli oggetti. VFS permette che la stessa interfaccia, cioè chiamate di sistema e 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 1.9

Vista schematica di un VFS Open, close, read, write Rapp. univoca - vnode 1.10

Implementazione di una directory Lista di nomi di file con puntatori ai blocchi dei dati: semplice da programmare, richiede tempo per la ricerca, Lista ordinata, B-albero. 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. 1.11

Metodi di allocazione Un metodo di allocazione specifica il modo in cui i blocchi di un file vengono allocati nel disco: Allocazione contigua. Allocazione linkata. Allocazione indicizzata. 1.12

Allocazione contigua 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). Accesso Accesso sequenziale: il FS memorizza l indirizzo dell ultimo blocco a cui si è acceduto un nuovo accesso è immediato o al più necessita di accedere al blocco successivo Accesso diretto: se si vuole accedere all i -mo blocco di un file che comincia al blocco b, si accede direttamente al blocco b + i 1.13

Allocazione contigua dello spazio del disco 1.14

Allocazione contigua Mappatura da logica a fisica Q LA/512 R Blocco al quale accedere = Q + blocco di partenza Spostamento nel blocco = R LA = Logical Address 1.15

Allocazione contigua Svantaggi: Frammentazione esterna (problema dell allocazione dinamica della memoria): assegnando e liberando lo spazio per i file, lo spazio libero del disco viene frammentato in tanti buchi. La taglia dei file non può crescere. 1.16

Estensione Molti nuovi file system (e.g., Veritas File System) usano uno schema di allocazione contigua modificato. Inizialmente viene allocato un pezzo contiguo di spazio e poi, quando il pezzo non è più sufficientemente, viene aggiunta un estensione. Un estensione è un altro pezzo di spazio contiguo. Un file consiste in una o più estensioni. 1.17

Allocazione linkata Ogni file è una lista linkata di blocchi del disco: i blocchi possono essere sparpagliati ovunque nel disco. blocco = puntatore 1.18

Allocazione Linkata 1.19

Allocazione linkata Una directory entry può consistere in: puntatore al primo blocco e size del file. Gestione dello spazio libero assenza di sprechi. Creazione di un file: si crea un nuovo elemento nella directory, si mette a nil il puntatore al primo blocco e si inizializza la size a 0 Scrittura in un file: se quello da scrivere va oltre le dimensioni dell ultimo blocco si cerca un nuovo blocco e lo si concatena alla fine 1.20

Allocazione linkata 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 1.21

Allocazione linkata Svantaggi Inefficiente l accesso diretto. Spreco di parte di un blocco per il puntatore. Poca affidabilità. 1.22

Tabella di allocazione dei file (FAT) 1.23

Allocazione Indicizzata Contiene tutti puntatori nel blocco indice. Vista logica. Ogni file ha il proprio blocco indice, cioè un array contenente gli indirizzi dei blocchi di cui il file è costituito Tabella indice 1.24

Esempio di allocazione indicizzata 1.25

Allocazione indicizzata Necessita di una tabella indice. Creazione di un file: si alloca il blocco indice e tutto il suo contenuto è a nil Scrittura in un file: se c è necessità di un nuovo blocco, diciamo l i -mo, si alloca un nuovo blocco e si mette il suo indirizzo nell i ma posizione del blocco indice. Mapping da logico a fisico. Blocco indice della dimensione di 512 parole. LA/512 Q R Q = spostamento nella tabella indice, R = spostamento nel blocco. 1.26

Allocazione indicizzata Accesso diretto senza frammentazione esterna, ma c è l overhead del blocco indice se il file è piccolo; può essere troppo piccolo se il file è grande 1.27

Allocazione indicizzata schema concatenato Per permettere la presenza di file lunghi vengono collegati tra loro parecchi blocchi indice; ciò è fatto ponendo come ultima parola di un blocco indice il puntatore al prossimo blocco indice. Mappatura da logico a fisico LA/(512 x 511) Q 1 R 1 Q 1 = blocco della tabella indice, 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 di file. 1.28

Allocazione indicizzata 2 livelli M Indice esterno Tabella indice file 1.29

Allocazione indicizzata 2 livelli Mappatura da logico a fisico 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 di file. 1.30

Schema combinato: UNIX (4K byte per blocco) 1.31

Gestione dello spazio libero È necessario tener memoria dei blocchi di spazio libero per poterli utilizzare quando si ha bisogno di ingrandire un file Bisogna ricordare i blocchi rilasciati quando si cancella un file 1.32

Gestione dello spazio libero vettore di bit Vettore dei 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: (numero di bit per parola) *(numero di parole con valore 0) + spiazzamento del primo bit a 1 1.33

Gestione dello spazio libero vettore di bit 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 32Kb) Semplicità di trovare blocchi liberi consecutivi sul disco. 1.34

Gestione dello spazio libero Lista dei blocchi liberi Si conserva il puntatore al primo blocco in una locazione speciale del disco che viene caricato in memoria quando si vuole accedere ad un blocco libero Assenza di spreco di spazio. Non facile trovare blocchi contigui. 1.35

Gestione dello spazio libero altri metodi Raggruppamento: Si memorizzano in un blocco gli indirizzi di n blocchi: di questi i primi n-1 sono realmente liberi mentre l ultimo contiene gli indirizzi di altri n blocchi, e così via Permette di trovare rapidamente molti blocchi liberi. Conteggio: Spesso più blocchi contigui possono essere rilasciati Quindi ogni elemento della lista dello spazio libero è formato da un indirizzo ed un contatore: l indirizzo punta al primo dei blocchi liberi mentre il contatore dice quanti blocchi contigui ci sono 1.36

Gestione dello spazio libero Bisogna fare attenzione a: Nella lista dei blocchi liberi: Proteggere il puntatore alla lista Nel vettore di bit : Consistenza 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. 1.37