Fragmentación de un sistema de ficheros

La eliminación de la fragmentación se basa en reorganizar los ficheros y los espacios vacíos en áreas continuas, este proceso es conocido como desfragmentación.

Sin embargo, cuando son eliminados o truncados archivos escritos en disco, se crean nuevas regiones de espacios vacíos.

Cuando se añaden archivos existentes, resulta casi imposible continuar escribiendo exactamente donde el fichero solía terminar, así como ubicar otro fichero en ese espacio — por lo tanto, hay que localizar un nuevo fragmento vacío donde se pueda escribir.

Algunos sistemas operativos simplemente no colocan los archivos uno a continuación del otro, mientras otros usan varios métodos para prevenir la fragmentación, pero en general, tarde o temprano, en sistemas donde los ficheros son eliminados o aumentados con frecuencia, aparece la fragmentación.

Considere el siguiente escenario: Un nuevo disco contiene 5 archivos salvados, nombrados A, B, C, D y E, y cada archivo usa 10 bloques de espacio (en este ejemplo el tamaño del bloque no tiene importancia).

Como el espacio vacío es continuo, los ficheros son ubicados uno de tras del otro (Ejemplo (1).)

El sistema de ficheros podría desfragmentar el disco inmediatamente después de la eliminación pero esto traería un aumento del rendimiento que podría ser fatal en cualquier momento; pero en general los espacios vacíos simplemente se dejan ahí y se marcan en una tabla como disponibles para usarlos en caso de necesitarlo el sistema[2]​ (Example (2).)

La segunda opción es casi impracticable por razones de rendimiento, al igual que en la tercera cuando el fichero es muy extenso.

Por lo que la práctica usual es simplemente crear una regiónen otro sitio y asociarla con la vieja (Ejemplo (5).)

Los datos añadidos al final del fichero F formarían parte de la misma región.

Aunque esta es una suposición bastante razonable, hay veces que no puede mantenerse.

Las técnicas preventivas tratan de mantener la fragmentación lo menor posible al tiempo que los datos están siendo escritos en disco.

[4]​ Si el tamaño final de un archivo sujeto a modificaciones es conocido, el almacenamiento para todo el fichero tiene que ser pre asignado.

Asumiendo que las lecturas múltiples desde un solo directorio son comunes, se mejora el lugar de las referencias.