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



Documenti analoghi
Capitolo Silberschatz

Realizzazione del file system. Marco Cesati. Schema della lezione. Componenti del SO. File system virtuale. File system su disco

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

Il File System. Il file system

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

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

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

File system II. Sistemi Operativi Lez. 20

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

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

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

Implementazione del File System

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

Il Software. Il software del PC. Il BIOS

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

PARTE 4 La Macchina Software

Realizzazione del file system

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

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

Il Sistema Operativo: il File System

Indice. settembre 2008 Il File System 2

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

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

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

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

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Struttura del Micro Filesystem (µfs)

Software di base. Corso di Fondamenti di Informatica

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

Interfaccia del file system

Corso di Sistemi di Elaborazione delle informazioni

Gestione della memoria centrale

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Le Infrastrutture Software ed il Sistema Operativo

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

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

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

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

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

Approccio stratificato

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

SISTEMI OPERATIVI DISTRIBUITI

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

Lezione 14. 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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Infrastrutture Software

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

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

Realizzazione del File System

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Il sistema operativo: interazione con l utente

Laboratorio di Informatica

Sistemi operativi. Esempi di sistemi operativi

FoLUG Forlì Linux User Group. Partizionamento

Organizzazione della memoria

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

Database. Si ringrazia Marco Bertini per le slides

Access. P a r t e p r i m a

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

La Gestione delle risorse Renato Agati

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Il Sistema Operativo (1)

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Sistema operativo: Gestione della memoria

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

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

Architettura di un sistema operativo

Informatica e Bioinformatica: Sistemi Operativi

Varie tipologie di memoria

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

Gestione della Memoria

I database relazionali (Access)

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Funzioni del Sistema Operativo

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Organizzazione di Sistemi Operativi e Reti

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

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

File System Distribuiti

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

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

MODULO 02. Iniziamo a usare il computer

Corso di Alfabetizzazione Informatica

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

Protezione. Protezione. Protezione. Obiettivi della protezione

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

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

Se mi lasci ti cancello: Cancellazione sicura asincrona su ext3

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

Il Sistema Operativo

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Transcript:

Lezione 12 Sistemi operativi 19 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 12.1 Di cosa parliamo in questa lezione? Organizzazione e realizzazione dei file system 1 dei file 2 di un file system 3 per gestire i file system 4 Il file system virtuale 5 Il file system su disco 6 L allocazione dei blocchi SO 15 12.2

dei file I meccanismi di protezione dei file sono essenziali per la robustezza del sistema (bug e guasti con effetto limitato) la riservatezza dei dati degli utenti I metodi più generali per definire la protezione dei file sono basati sulla matrice di accesso: per ogni file ed ogni attore (utente, classe di utenti, processo, o componente), la matrice indica le operazioni consentite Implementazioni reali sono basate su: Access Control Lists (ACL): associate a ciascun file e contenenti le autorizzazioni Bit di accesso: associati a ciascun file, per poche operazioni e pochi attori sofisticati programmi del kernel che implementano un controllo d accesso obbligatorio per tutti i componenti del sistema, quindi anche per i file (esempio: NSA s SE Linux) SO 15 12.3 Esempio: bit di accesso per file regolare di Unix $ ls -l filea -rwxr-xr-- 2 caio users 1046 2011-06-12 16:33 filea filea: il nome del file 16:33: ora ultima modifica 2011-06-12: data ultima modifica 1046: dimensione del file users: gruppo di utenti proprietario caio: utente proprietario 2: contatore di riferimento per hard link -rwxr-xr--: tipo file e diritti di accesso -: file regolare rwx: lettura, scrittura ed esecuzione per utente proprietario r-x: lettura ed esecuzione per gruppo proprietario r--: lettura per tutti gli altri SO 15 12.4

Esempio: bit di accesso per directory di Unix $ ls -ld dira drwxr-x--x 5 caio users 4096 2011-06-12 16:33 dira dira: il nome della directory 16:33: ora ultima modifica 2011-06-12: data ultima modifica 4096: dimensione della directory (voci e attributi) users: gruppo di utenti proprietario caio: utente proprietario 5: numero di directory figlie + 2 (. e.. ) drwxr-x--x: tipo file e diritti di accesso d: file di tipo directory rwx: listing, modifica e attraversamento per utente proprietario r-x: listing e attraversamento per gruppo proprietario --x: attraversamento per tutti gli altri SO 15 12.5 Partizioni dei dischi Ogni disco rigido è tipicamente suddiviso in diverse zone: Settore di bootstrap o MBR, Master Boot Record: contiene un piccolo programma caricato dal firmware all avvio Ha lo scopo di caricare in memoria un altro programma (bootloader secondario) che a propria volta caricherà in memoria il kernel del SO Tabella delle partizioni: una struttura di dati che elenca tutte le partizioni del disco, insieme alla loro posizione, dimensione e contenuto Partizione: zona contigua del disco utilizzata per memorizzare un file system, un area di swap, i dati di un DBMS,... Le limitazioni intrinseche del SO MS-DOS hanno causato l introduzione di complicazioni quali i concetti di partizione di boot e di partizioni primarie, estese e logiche Un disco può anche essere utilizzato senza alcuna struttura logica interna (raw disk) SO 15 12.6

di un file system Un file system è generalmente memorizzato su un intero disco oppure su una partizione di un disco Ciascun file system definisce una propria directory radice, attraverso la quale è possibile raggiungere tutti gli altri file In generale nel SO sono utilizzati diversi file system allo stesso tempo Nei SO derivati dall MS-DOS, il file system è identificato da una lettera di unità: C:\UNADIRECTORY\UNFILE Nei SO della famiglia Unix l albero delle directory è unico e ciascun file system è montato su di esso Il punto di montaggio (mount point) è una directory il cui contenuto è completamente nascosto finché il file system non è smontato È possibile anche montare lo stesso file system in modo che appaia in diversi punti dell albero di sistema I nomi completi dei file possono contenere diversi mount point, ma questo è trasparente per utenti e programmi Esempio: /mnt/floppy/filea SO 15 12.7 di un file system (2) Per montare / smontare un file system in Unix si utilizzano le chiamata di sistema mount() e umount() i comandi di sistema mount e umount Tipicamente in Unix vengono montati molti file system differenti, ad esempio: Partizione Mount point /dev/sda1 / Radice /dev/sda2 /home Directory degli utenti /sys /dev/sdb /mnt/usbpen Memoria flash /dev/sda1 è il nome di un file di tipo dispositivo (device file) corrispondente alla prima partizione del primo disco SCSI o SATA SO 15 12.8

Implementazione dei file system L implementazione dei file system in un SO è di importanza cruciale: I file sono l unità di informazione di base sia per il SO che per l utente L utente utilizza i file interagendo con il file system I dischi moderni hanno grande capacità (migliaia di gigabyte) e quindi contengono un numero enorme di file Un SO può utilizzare un gran numero di file system di tipo differente L implementazione dei file system è uno dei fattori che maggiormente caratterizza un SO rispetto agli altri, sia in termini di metodo di utilizzo che di prestazioni SO 15 12.9 per la gestione dei file system Applicazioni API (chiamate di sistema) (VFS) Gestore della memoria cache Driver delle periferiche di I/O Hardware (dischi, CD-ROM, rete... ) SO 15 12.10

per la gestione dei file system (2) (VFS) Componente del SO che consente di nascondere i dettagli implementativi dei file system specifici utilizzati nel sistema assegnare identificatori univoci a tutti i file del sistema, a prescindere dal file system di appartenenza Componente del SO che gestisce ed organizza i file in memoria secondaria Gestore della memoria cache Componente del SO che consente di utilizzare una porzione della memoria centrale come memoria di transito per i dati in memoria secondaria SO 15 12.11 Il file system virtuale (VFS) è presente in tutti i SO moderni che consentono di utilizzare file system di diverso tipo e natura Consideriamo una chiamata di sistema open(): Identificatore del file passato alla open(): con VFS, generale ed astratto ( vnode ) senza VFS, specifico per ogni file system e non univoco Implementazione della chiamata di sistema: con VFS, generale ed unica per tutti i file system senza VFS, diversa per ogni file system Come si può realizzare una implementazione di una chiamata di sistema che funzioni per qualunque tipo di file system? È necessario utilizzare una metodologia di programmazione che nasconda i dettagli implementativi che non debbono essere necessariamente noti a livello di interfaccia (API) SO 15 12.12

(2) Un metodo comune per realizzare programmi indipendenti da dettagli di livello più basso è la programmazione ad oggetti Un oggetto è una struttura di dati che definisce, oltre ai dati stessi, i metodi attraverso i quali interagire con i dati Quindi per realizzare il VFS tramite oggetti è necessario scrivere il SO con un linguaggio di programmazione OO? No! La metodologia di programmazione non è legata in modo essenziale al linguaggio di programmazione utilizzato (ad esempio, C++ invece che C) SO 15 12.13 Esempio: il VFS di Linux Il VFS del SO Linux definisce quattro tipi di oggetti ( classi ) principali: Oggetto superblock: rappresenta un file system Oggetto inode: rappresenta un file fisico Oggetto file: rappresenta un file aperto Oggetto dentry: rappresenta una voce di una directory Ciascuno di questi oggetti è costituito da una struttura del linguaggio C contenente sia dati che puntatori a funzioni (metodi) L implementazione dei metodi (ossia il valore assegnato ai puntatori a funzione) è specifico per ciascun file system Una chiamata di sistema del VFS: esegue operazioni di carattere generale (ad es., controllo dei diritti di accesso, allocazione degli oggetti, ecc.) invoca quando opportuno il metodo di un oggetto specifico SO 15 12.14

Esempio: il VFS di Linux (2) Ad esempio la struttura C struct file include: f_count f_flags f_lock f_mode f_path f_pos f_op f_owner contatore di riferimento flag di apertura lock per accesso condiviso diritti di accesso oggetto dentry del file posizione corrente nel file puntatore ai metodi utente proprietario. f_op punta ad una tabella lock llseek mmap open read release write applica un file lock aggiorna la posizione corrente crea una regione mappata sul file operazioni per l apertura del file lettura dal file ultima chiusura del file aperto scrittura nel file. struct file_operations: SO 15 12.15 Il file system su disco Consideriamo un qualunque file system su disco, ad esempio NTFS (MS Windows NT) oppure Ext3 (Linux): esso deve gestire ogni aspetto della registrazione delle informazioni in memoria secondaria In particolare è necessario: Organizzare il file system stesso: Posizione in memoria secondaria delle strutture di dati Gestione dello spazio libero Controlli di coerenza delle strutture di dati Rappresentare i file e le directory: Gestione dei riferimenti ai file (nomi di percorso) Gestione dei metadati (tipo e contenuto, diritti di accesso, dimensione,... ) Registrazione dei blocchi di dati del file Le strutture di dati sono memorizzate in memoria secondaria; tuttavia quando il file system è in uso le strutture di dati possono anche risiedere in memoria centrale SO 15 12.16

Il blocco di controllo del volume La struttura di dati principale di un file system è il blocco di controllo del volume (VCB) Contiene informazioni di tipo generale, ad esempio: La posizione in memoria secondaria delle altre strutture di dati La dimensione del blocco (unità di allocazione e trasferimento dei dati) Il numero totale di blocchi Il numero di blocchi utilizzati e liberi La data dell ultimo montaggio Il blocco di controllo del volume è chiamato in Ext3: superblocco (superblock) in NTFS: MFT, o Master File Table SO 15 12.17 Il blocco di controllo del file Ciascun file in un file system è descritto da una struttura di dati chiamata blocco di controllo del file (FCB) Contiene informazioni generali sul file, ad esempio: Dimensione del file in byte ed in blocchi Utente e gruppo di utenti proprietari del file Diritti di accesso al file Data e ora di creazione e ultimi accessi in lettura e/o scrittura Il blocco di controllo del file in Ext3 è memorizzato in un blocco chiamato inode in NTFS è memorizzato all interno della MFT per mezzo di un record di un data base relazionale SO 15 12.18

Rappresentazione delle directory Le directory possono essere assimilate a file contenenti una lista dei nomi (riferimenti) relativi a file e directory incluse I metadati relativi alle directory possono essere memorizzati esattamente come quelli relativi ai file regolari Ad esempio in Ext3 le directory sono file contenenti un vettore di strutture di dati, ciascuna delle quali rappresenta una voce Tuttavia per ragioni di efficienza molti file system implementano le directory in modo radicalmente diverso dai file regolari Ad es. in NTFS le directory sono memorizzate nella MFT Le voci della directory possono essere organizzate come lista lineare (semplice e rapida per directory con poche voci) tabella hash albero di ricerca (ad es.,b-tree) SO 15 12.19 dei file Un file system deve gestire la memorizzazione dei blocchi di dati dei file in modo da sfruttare al meglio lo spazio disponibile sul disco rendere l accesso al file quanto più efficiente possibile Tre alternative principali per realizzare l allocazione dei blocchi: Allocazione contigua: ciascun file occupa un insieme di blocchi contigui nel disco Allocazione concatenata: i blocchi di un file non sono contigui nel disco; ciascun blocco contiene un puntatore al blocco successivo Allocazione indicizzata: i blocchi di un file non sono contigui nel disco; i puntatori ai blocchi sono memorizzati in strutture di dati attestate nel FCB SO 15 12.20

Allocazione contigua I blocchi di un file system possono essere associati ad un indice progressivo detto numero di blocco Conoscendo la dimensione del blocco e la posizione iniziale sul disco si può ricavare dal numero di blocco i corrispondenti numeri di settore del disco Con uno schema di allocazione contigua i numeri di blocco dei dati di un file sono sempre progressivi Nel FCB è sufficiente memorizzare il numero di blocco iniziale e la lunghezza del file Qual è il vantaggio dell allocazione contigua? L accesso sequenziale al file è semplice e rapido: è sufficiente un solo riposizionamento della testina del disco (seek) Anche l accesso diretto è facile da implementare, poiché l associazione tra numero di blocco logico del file ed il numero di blocco è immediata Quali sono gli svantaggi dell allocazione contigua? SO 15 12.21 Allocazione contigua (2) Gli svantaggi dell allocazione contigua: Quanto spazio allocare ad un file appena creato? Se troppo poco: inefficienza se il file cresce di dimensioni (si deve copiare il file in una nuova posizione) Se troppo grande: rischio di spreco dello spazio disco a causa della frammentazione interna Frammentazione esterna: la partizione potrebbe avere molti blocchi liberi, ma nessuna porzione contigua sufficientemente grande per memorizzare un certo file Uno schema adottato in pratica utilizza le estensioni: Ad un nuovo file viene assegnato uno spazio contiguo predeterminato Se il file cresce viene aggiunta un altra porzione di spazio contiguo (estensione) Esempi di FS con estensioni: Btrfs (Linux), Ext4 (Linux), HFS+ (Apple), JFS (AIX), NTFS (Windows), UDF (dischi ottici) SO 15 12.22

Allocazione concatenata Ogni file è composto da una lista concatenata di blocchi Ciascun blocco contiene (almeno) il numero del blocco successivo nella lista Il FCB contiene il numero del primo blocco, la lunghezza della lista e il numero dell ultimo blocco Qual è il vantaggio della allocazione concatenata? Non esiste problema di frammentazione esterna, e lo spazio sprecato per la frammentazione interna è limitato Quali sono gli svantaggi? Tempi di accesso sequenziale significativi (l accesso ad ogni blocco richiede un riposizionamento della testina) Tempi di accesso diretto eccessivi (richiede una lettura dell intera porzione di file che precede il blocco acceduto) Spazio non disponibile all interno dei blocchi, e complicazione nella gestione delle letture e scritture Scarsa affidabilità: se un blocco si corrompe, da quel blocco il file non è non più accessibile SO 15 12.23 Tabella di allocazione dei file (FAT) Variante del metodo di allocazione concatenata: utilizzo della tabella di allocazione dei file (FAT, File Allocation Table) Adottato nei file system dei SO MS-DOS e OS/2 Una sezione della partizione è occupata dalla FAT La FAT è un vettore indicizzato dal numero di blocco del file system Ogni voce contiene zero se il blocco è libero; il numero del blocco successivo nel file, ovvero un valore convenzionale EOF se il blocco è l ultimo di un file Il numero del primo blocco di un file è memorizzato nella corrispondente voce di directory Qual è il principale vantaggio della FAT rispetto alla allocazione concatenata classica? Se il disco non è troppo grande la FAT può essere copiata una volta per tutte in memoria centrale, e ciò consente l accesso diretto al singolo blocco di un file SO 15 12.24

Allocazione indicizzata Nello schema della allocazione indicizzata i blocchi di dati di un file non sono contigui nel file system, ed i numeri di blocco sono memorizzati in una struttura di dati chiamata indice La differenza con lo schema che utilizza la FAT è che la FAT è una struttura di dati globale per l intero file system la struttura di dati indice è specifica per ciascun file Quali sono i vantaggi della allocazione indicizzata? Rispetto alla allocazione contigua ha minori problemi di frammentazione esterna ed interna Rispetto alla allocazione concatenata consente di realizzare efficientemente l accesso diretto Rispetto ai file system FAT è efficiente anche con dischi di grandi dimensioni Quali sono gli svantaggi della allocazione indicizzata? L occupazione di spazio dovuta ai numeri di blocco è maggiore (anche i file piccoli hanno un proprio indice) Gli accessi sequenziali sono lenti (rispetto all alloc. seq.) SO 15 12.25 Allocazione indicizzata (2) Poiché ogni file possiede un proprio indice, questo dovrebbe essere piccolo; al tempo stesso deve essere possibile gestire i file di grandi dimensione Tre possibili schemi per la struttura indice: Indice concatenato: l indice è un singolo blocco, e contiene anche il puntatore ad un eventuale blocco indice successivo Indice a più livelli: un blocco indice contiene i numeri di blocco degli indici di secondo livello, e così via; l ultimo livello contiene i numeri di blocco dei dati del file Indice combinato: il blocco indice contiene un certo numero di blocchi di dati del file (blocchi diretti) il numero di un blocco indiretto, contenente numeri di blocchi di dati il numero di un blocco indiretto doppio, contenente numeri di blocchi indiretti il numero di un blocco indiretto triplo, contenente numeri di blocchi indiretti doppi SO 15 12.26

Esempio: allocazione indicizzata in Ext3 Source: D.P. Bovet, M. Cesati, Understanding the Linux kernel, O Reilly, 2005 b: dim. blocco Numeri blocco da 4 byte Blocchi diretti: da 0 a 11 Blocchi con singola indirezione: da 12 a L + 11 (L = b/4) Blocchi con doppia indirezione: da L + 12 a L 2 + L + 11 Blocchi con tripla indirezione: da L 2 + L + 12 a L 3 + L 2 + L + 11 Se b = 4096, L = 1024 e la massima dimensione di un file è di oltre 4 TiB (in realtà in Ext3 la massima dim. di un file è 2 TiB) SO 15 12.27 Gestione dello spazio libero Tra i compiti c è quello di tenere traccia dei blocchi inutilizzati all interno del disco (partizione) Tra i possibili schemi vi sono: Vettore o mappa di bit: lo stato è rappresentato da un bit (libero o occupato); la ricerca di un blocco libero comporta la scansione della mappa di bit Efficiente per dischi non grandi in cui la mappa di bit può essere mantenuta in memoria centrale Lista concatenata: il VCB memorizza il numero del primo blocco libero, e ciascun blocco libero memorizza il numero del successivo Allocare diversi blocchi in una volta sola è poco efficiente Raggruppamento: come la lista concatenata, ma il primo blocco libero contiene i numeri di n blocchi liberi; l ultimo di tali blocchi contiene i numeri di altri blocchi liberi, ecc. Conteggio: nei blocchi liberi viene memorizzata una struttura ordinata che descrive le aree libere contigue del disco o partizione SO 15 12.28