31.05.2013 Views

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

il file dei cluster difettosi (bad-cluster file) tiene traccia di tutte le zone difettose nel volume e NTFS<br />

usa questa registrazione per il recupero dagli errori.<br />

5.2 Recupero<br />

In molti semplici file system, un guasto all’alimentazione nel momento sbagliato può danneggiare<br />

le strutture dati del file system in modo talmente grave da mescolare i dati dell’intero volume.<br />

Molte versioni di UNIX memorizzano metadati ridondanti su disco, e li recuperano in caso di guasto<br />

con il programma fsck per controllare tutte le strutture dati del file system e per ristabilirle<br />

forzosamente ad uno stato consistente; il loro ristabilimento spesso coinvolge la cancellazione di<br />

file danneggiati e la cancellazione di dati dal cluster in cui erano stati scritti assieme ai dati dell'utente,<br />

ma non correttamente registrati nelle strutture metadati del file system. <strong>Il</strong> controllo può essere un<br />

processo lento e può far perdere significative quantità di dati.<br />

5.2.1 <strong>Il</strong> file di log di NTFS<br />

NTFS adotta un approccio differente per la robustezza del file system; in NTFS, tutti gli<br />

aggiornamenti della struttura dati del file system avvengono all'interno delle transazioni. Prima di<br />

alterare una struttura dati, la transazione scrive una registrazione del log che contiene informazioni<br />

redo e undo. Dopo aver cambiato la struttura dati, la transazione scrive una registrazione commit<br />

nel log per indicare che ha avuto successo.<br />

In seguito ad un guasto, il <strong>sistema</strong> può ristabilire le strutture dati del file system in uno stato<br />

consistente elaborando i record di log; dapprima eseguendo di nuovo le operazioni delle transazioni<br />

commit e poi annullando le operazioni per le transazioni che non hanno avuto successo prima del<br />

guasto. Periodicamente (solitamente ogni 5 secondi), viene scritta nel log una registrazione di<br />

controllo; il <strong>sistema</strong> non ha bisogno delle registrazioni di log, eseguite prima del controllo per<br />

recuperare da un guasto, esse possono essere scartate in modo che il file di log non si sviluppi senza<br />

alcun limite. La prima volta, dopo l’avvio del <strong>sistema</strong> in cui si accede ad un volume NTFS, NTFS<br />

esegue automaticamente il recupero del file system.<br />

Questo schema non garantisce che il contenuto del file dell’utente sia corretto dopo un guasto;<br />

assicura solo che le strutture dati del file system (i file di metadati) siano intatte e riflettano un<br />

qualche stato di consistenza esistente prima del guasto. Si potrebbe estendere lo schema di<br />

transazione per comprendere i file dell'utente e la Microsoft potrebbe farlo in futuro.<br />

<strong>Il</strong> log viene memorizzato all'inizio del volume, nel terzo file dei metadati ed è creato di<br />

dimensione fissa massima quando viene formattato il file system. È composto da due sezioni:<br />

l’area di log (logging area), che è una coda circolare delle registrazioni di log, e l’area di riavvio<br />

(restart area), che mantiene informazioni sul contesto, quali la posizione nell’area di log da cui<br />

NTFS dovrebbe far partire una lettura durante un recupero. Infatti, l’area di riavvio mantiene due<br />

copie delle informazioni correlate, in modo che sia ancora possibile il recupero nel caso che una<br />

copia venga danneggiata durante un guasto.<br />

La funzionalità di log è fornita dal servizio di log-file (log-file service) di <strong>Windows</strong> <strong>XP</strong>, il<br />

quale, oltre a scrivere i record di log ed eseguire le azioni di recupero, tiene traccia dello spazio libero<br />

nel file di log. Se lo spazio libero diventa troppo piccolo, il servizio di log-file accoda le transazioni<br />

in sospeso e NTFS ferma tutte le nuove operazioni di I/O. Dopo il completamento dell’operazione,<br />

37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!