Come si può risolvere il problema della frammentazione in memoria centrale e nelle memorie di massa?


I due fenomeni cui la domanda si riferisce (frammentazione della
memoria RAM e frammentazione dello spazio disco) sono due cose
completamente diverse.

Nel primo caso il problema riguarda le modalità di allocazione della
memoria. La maggior parte dei programmi per i computer utilizzano
tecniche di allocazione e deallocazione dinamica della memoria, ovvero
chiedono al sistema operativo di riservare loro le aree di memoria via
via necessarie e le rilasciano quando non sono più utilizzate.

Poiché nel funzionamento normale del computer sono contemporaneamente
attivi più programmi, le varie richieste di uso e di rilascio
della memoria si succedono in modo casuale la memoria fisica risulterà
suddivisa in aree “appartenenti” a programmi diversi, alternate ad aree
ancora libere, distribuite casualmente.

Il problema
principale in questo caso consiste nel fatto che quando un programma
chiede l’allocazione di un’area di memoria, questa deve essere un unico
blocco contiguo
e quindi può verificarsi il caso in cui ci sia abbastanza memoria
libera per soddisfare la richiesta, ma questa sia troppo frammentata,
ovvero
nessuna delle aree libere sia di dimensione sufficiente.

La gestione della memoria “dinamica” viene effettuata dal sistema operativo
ed ha come principale obiettivo quello di minimizzare la
frammentazione della memoria. Gli algoritmi utilizzati sono un argomento
classico di informatica, per una trattazione si rimanda
a qualche testo generale sull’architettura dei sistemi operativi.

Qualcosa di simile accade nel secondo caso.
Il problema è già stato trattato in precedenza:


http://www.vialattea.net/esperti/php/risposta.php?numero=8454
.

Infine rimandiamo anche ad altre precedenti risposte date sul nostro sito:


http://www.vialattea.net/esperti/php/risposta.php?num=821
.
Sulla struttura dei dischi magnetici.


http://www.vialattea.net/esperti/php/risposta.php?num=8410
.
Confronto fra due noti filesystem.