Deframmentazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
fix /migliorata leggibilità wikitesto
 
(31 versioni intermedie di 19 utenti non mostrate)
Riga 1:
{{W|informatica|marzo 2014|commento = controllare grassetti e aggiungere wikilink}}
{{f|sistemi operativi|maggio 2011}}
[[File:Defragmenting disk.gif|thumb|Esempio di frammentazione e successiva deframmentazione]]
 
In [[informatica]] la '''deframmentazione''' è un'operazione di ottimizzazione dell'archiviazione dei [[dati]] nella [[memoria di massa]] di un [[computer]]. che consisteConsiste nel ridurre la [[Frammentazione (informatica)|frammentazione]] '''esterna''' dei [[file]] presenti sulla memoria stessa (es: un [[disco fisso]]) ristrutturandone l'allocazione e facendo in modo che ciascun [[file]] risulti memorizzato in una zona contigua dal punto di vista fisico;, questopermettendo diminuiscecosì di ridurre drasticamente i tempi di accesso e lettura aidei file. La deframmentazione è un'operazione che può essere svolta in modo automatico dal [[file system]] durante il suo regolare funzionamento oppure eseguita tramite esplicita richiesta dell'utente tramite l'esecuzione di un [[Programma (informatica)|programma]].
 
== Campo di applicazione ==
{{vedi anche|Frammentazione (informatica)}}
La deframmentazione può essere utilizzata solo per ridurre la '''frammentazione esterna'''. La '''frammentazione interna''' non può invece attualmente essere ridotta, per il metodo di utilizzo dei [[file system]] odierni. L'utilizzo di questa tecnica è essenziale per i filesystem che utilizzano una '''tecnica di allocazione file contigua''', altrimenti ad un certo punto non sarebbe possibile allocare nuovi file anche se ci fosse spazio sufficiente su disco (ma frammentato). Nell<nowiki></nowiki>''''allocazione a lista concatenata''' (utilizzata nei moderni filesystem) la deframmentazione serve solo a velocizzare le operazioni di lettura/scrittura su disco.
 
La deframmentazione può essere utilizzata solo per ridurre la '''frammentazione esterna'''. La '''frammentazione interna''' non può invece attualmente essere ridotta, pera ilcausa del metodo di utilizzo dei [[file system]] odierni. L'utilizzo didella questa tecnicadeframmentazione è essenziale per i filesystemfile system che utilizzano una '''tecnica di allocazione file contigua''', altrimenti ad una certolungo puntoandare non sarebbe possibile allocare nuovi file anche se ci fosse spazio sufficiente su disco (ma frammentato) sul disco. Nell<nowiki></nowiki>''''allocazione a [[lista concatenata''']] (utilizzatausata nei moderni filesystem)file system la deframmentazione serve soloinvece soltanto a velocizzare le operazioni di lettura/scrittura su disco.
Quando un file viene scritto su un [[hard disk]], questo occupa il primo spazio libero (settore) disponibile sullo stesso, ed occupa tanti settori quanti servono per contenere l'intero file.
Se però lo spazio contiguo è troppo piccolo rispetto alle dimensioni del file, il file viene suddiviso in uno o più pezzi non contigui. Alla fine di ogni catena di settori contigui, viene inserito un riferimento che rimanda al prossimo settore che contiene la restante porzione del file, fino al raggiungimento della fine del file.
 
Quando un file viene scritto su un [[disco rigido|hard disk]], questo occupa il primo spazio libero (settore) disponibile, ed occupa tanti settori quanti ne servono per contenere l'intero file. Se però lo spazio contiguo è troppo piccolo rispetto alle dimensioni del file, il file viene suddiviso in uno o più pezzi non contigui. Alla fine di ogni catena di settori contigui, viene inserito un riferimento che rimanda al prossimosuccessivo settore che contiene la restante porzione del file, fino al raggiungimento della fine del file.
Un file, modificato in più occasioni, tende ad aumentare di dimensioni e quindi ad essere scritto in diversi posti liberi dell'hard disk, cioè tende ad essere scritto in più "frammenti".
 
Reiterate azioni di questo tipo, del tutto normali, portano ad una frammentazione di file o del documento, con il risultato di rendere più lento il loro reperimento.
Un file, modificato in più occasioni, può aumentare di dimensione e quindi verrà sempre più suddiviso in "frammenti" per poter essere memorizzato nelle parti libere dell'hard disk. Reiterate azioni di questo tipo, anche se del tutto normali, portano ad una progressiva frammentazione dei file, con il risultato di rendere più lento il loro reperimento.
La gestione del file da parte del software è trasparente per l'utente ma l'hard disk è costretto a leggere in punti differenti della faccia del disco, saltando da un settore all'altro, per fornire il file completo, rallentando così le operazioni di input/output.
 
La gestione del file da parte del software[[sistema operativo]] è trasparente per l'utente, ma l'hard disk è costretto a leggere in punti differenti della faccia del disco, saltando da un settore all'altro, per fornire il file completo, rallentando così le operazioni di input/output.
 
== Funzionamento ==
[[File:FragmentationDefragmentation.gif|thumb|Esempio di frammentazione e successiva deframmentazione in un sistema a lista concatenata]]
 
La deframmentazione ripristina la contiguità dei file rendendo più veloce la loro lettura in quanto il [[sistema operativo]] non deve cercare le parti del file sparse per l'[[hard disk]]. Il programma di deframmentazione sposta temporaneamente i cluster di uno stesso file in zone libere del disco; successivamente cerca (o libera spostando altri cluster) uno spazio contiguo che possa contenere completamente questo file. Questa operazione ha tempistiche lunghe, in quanto il sistema operativo oltre a dover copiare i file in un'altra posizione del disco, deve riaggiornare tutti i puntatori della lista di ogni file. Nell'allocazione contigua la deframmentazione consiste solamente nel ricompattare tutti i file, eliminando gli spazi vuoti tra essi. Anch'essa è un'operazione molto dispendiosa di tempo.
 
=== Problematiche ===
La problematica maggiore dell'operazione di deframmentazione è la presenza di file che non possono essere spostati. Questi file sono [[Memoria virtuale|file di paging]] e di [[Swap (informatica)|swap]], utilizzati dal sistema operativo per la gestione della [[RAM]]. Lo spostamento di questi file causerebbe la perdita dei riferimenti per il corretto funzionamento del [[sistema operativo]]. Inoltre, poiché il programma di deframmentazione non può spostare sé stesso né file utilizzati da altri programmi, esistono tool che deframmentano il [[disco rigido]] prima dell'avvio del sistema operativo, permettendo così la completa deframmentazione.
 
== Altre tecniche ==
Alcuni programmi specializzati forniscono la possibilità di effettuare vari tipi di deframmentazione a seconda delle nostre esigenze dell'utente. La deframmentazione può essere effettuata al semplice fine di ricompattare i file frammentati (opzione utile per gli [[Disco rigido|hdd]] di archivio) oppure per esempio per riordinare i file in ordine alfabetico oppure in base alla data e/o frequenza di accesso ai file. Quest'ultima opzione è molto utile per hdd che ospitano il sistema operativo e i programmi.
 
 
== Software ==
Per deframmentare un disco è possibile utilizzare [[Utilità di deframmentazione dischi]] (incluso in [[Windows]]), [[MyDefrag]], [[Defraggler]], [[Slimcleaner]] o [[UltraDefrag]].
Segue un elenco di software utilizzabili per deframmentare il disco
* [[Utilità di deframmentazione dischi]] (inclusa in [[Windows]])
* [[MyDefrag]]
* [[Defraggler]]
* [http://slimcleaner.com/ Slimcleaner]
* [[UltraDefrag]]
 
== Voci correlate ==
* [[Frammentazione (informatica)]]
* [[Disco rigido|Hard disk]]
* [[File system]]
 
== Altri progetti ==
[[Categoria:File system]]
{{interprogetto|preposizione=sulla}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Portale|informatica}}[[Categoria:File system]]