Desfragmentación

De Wikipedia, la enciclopedia libre
(Redirigido desde «Defragmentación de archivos»)
Saltar a: navegación, búsqueda
Esquema que muestra cómo se desfragmenta un disco. Cada color representa un archivo, y en un principio están todos fragmentados (esparcidos por todo el disco). Luego el proceso de desfragmentación va situando cada parte de cada archivo de tal manera que cada una quede en un área contigua a la anterior, evitando así que haya espacios entre ellas y reduciendo por tanto el tiempo de acceso a los archivos.

La desfragmentación es el proceso mediante el cual se acomodan los archivos de un disco de tal manera que cada uno quede en un área continua y sin espacios, entre ellos. Al irse escribiendo y borrando archivos continuamente en el disco duro, éstos tienden a no quedar en áreas contiguas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado". Al tener los archivos esparcidos por el disco, se vuelve ineficiente el acceso a ellos.

El problema de almacenamiento no contiguo de archivos se denomina fragmentación, se produce debido al almacenamiento de archivos en dispositivos de almacenamiento electromecánicos por el uso del computador.

La fragmentación es un problema que surge debido al ordenamiento interno de los datos en algunos sistema de archivos. Se da muy comúnmente en el sistema operativo Windows aunque también afecta a otras plataformas pero en una escala mucho menor. Existen dos tipos de fragmentación: interna y externa.

Desfragmentar no hace que el ordenador trabaje más rápido, sino que agiliza el proceso de la navegación por los archivos.

Motivación[editar]

La lectura y escritura secuenciales de sistemas de archivos fuertemente fragmentados se ralentiza, debido a que aumenta el tiempo necesario para que los cabezales del disco se muevan entre los fragmentos y esperen a que el disco gire hasta la posición de lectura (véase tiempo de búsqueda y retardo rotacional). Para muchas operaciones comunes, el cuello de botella en la operación de todo el computador es el disco duro; de ahí que el deseo de procesar más eficientemente anime a la desfragmentación. Los vendedores de sistemas operativos a menudo recomiendan la desfragmentación periódica para evitar que la velocidad de acceso al disco se degrade con el tiempo.

Los datos fragmentados también se extienden por el disco más de lo necesario. Por lo tanto, uno puede desfragmentar para agrupar los datos en una zona, antes de dividir una partición en dos o más (por ejemplo, con GNU Parted o PartitionMagic).

La desfragmentación puede aumentar la propia vida del disco duro, al minimizar el movimiento de los cabezales y simplificar las operaciones de acceso a los datos, así como aumentar las posibilidades de recuperación en caso de un fallo.

Causas[editar]

La fragmentación ocurre cuando el sistema operativo no asigna suficiente espacio contiguo para almacenar un archivo completo como una unidad, sino que, en cambio, pone partes de él en huecos entre otros archivos (usualmente estos huecos existen porque antes contuvieron un archivo que posteriormente fue borrado por el sistema operativo, o porque éste en primer lugar asignó demasiado espacio para un archivo). Los archivos más grandes y el mayor número de archivos también contribuyen a la fragmentación y en consecuencia a la pérdida de rendimiento. La desfragmentación intenta aliviar estos problemas.

Fragmentación[editar]

File system fragmentation.svg

La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa (Conocidos como estrategias de Colocación).

La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. Tal vez en conjunto si sea espacio suficiente, pero se requeriría de un proceso de desfragmentación de memoria o compactación para lograrlo. Esta fragmentación se denomina fragmentación externa.

Existe otro tipo de fragmentación conocida como fragmentación interna, la cual es generada cuando se reserva más memoria de la que el proceso va realmente a usar. Sin embargo a diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe de esperar a la finalización del proceso para que se libere el bloque completo de la memoria.

Fragmentación interna[editar]

La fragmentación interna es la pérdida de espacio en disco debido al hecho de que el tamaño de un determinado archivo sea inferior al tamaño del clúster, ya que teóricamente el archivo estaría obligado a ser referenciado como un clúster completo. Los clústeres son contiguos de forma que desde el último bit del archivo situado en el clúster "a" hasta el primer bit del archivo situado en el clúster contiguo (es decir "b") queda un espacio sobrante siempre teniendo la condición de que el archivo del clúster "a" fuera más pequeño que el clúster en sí.

Por eso se sugiere no disponer de un gran tamaño de partición en los discos nuevos donde la capacidad es muy importante. Por ejemplo si nuestro clúster es de 18KB (18.432 bytes) por más que un archivo ocupe menos, en nuestro disco ocupara 18KB. Esto sugiere una pérdida de ese espacio que dice utilizar pero no utiliza.

Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo que uno de 10KB, o sea 18 KB. Esa pérdida de espacio se denomina fragmentación interna, y no se corrige con el desfragmentador, sino disminuyendo el tamaño del clúster, algo que habitualmente los usuarios solo pueden conseguir creando particiones más pequeñas.

Fragmentacionpng.png

Fragmentación externa[editar]

Este tipo de fragmentación aparece como consecuencia de las distintas políticas de ajuste de bloques que tiene un sistema de ficheros, o al utilizar asignaciones dinámicas de bloques en el caso de la memoria. En el sistema de ficheros, la sucesiva creación y eliminación de ficheros de distintos tamaños puede conducir al aislamiento de los bloques libres de un disco y, dependiendo de la política de ajuste, su no elección para futuros ficheros.

En la memoria del sistema la fragmentación se produce cuando los procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos.

En sistemas de ficheros la desfragmentación trata de resolver este problema, alineando los bloques de datos contiguos y juntando los bloques libres, produciendo así fragmentos mayores que sí serán elegidos para futuros ficheros. En la memoria principal se soluciona compactando los procesos para que estos ocupen posiciones contiguas y dejar los bloques libres juntos, o también se soluciona con la paginación de memoria.

Desfragmentación[editar]

Este proceso consta de ordenar los trozos de información distribuida a través de todo el disco, para mejorar la velocidad de acceso y distribuir de mejor forma el espacio libre del dispositivo. Como este proceso consta en la reorganización de partes de archivos, requiere de suficiente memoria para realizar los movimientos de los trozos de información. Al mover en forma física la información, la estructura lógica no sufre alteraciones.

Aspectos de la desfragmentación[editar]

En Windows la presencia de archivos inamovibles del sistema, o que el desfragmentador no moverá para simplificar su tarea (sobre todo con el archivo de intercambio, o swap file), puede impedir un buen porcentaje de desfragmentación en el disco.

Ciertos sistemas de archivos son más susceptibles a cambios por desfragmentación que otros. Por ejemplo, una partición del tipo FAT se fragmenta más rápido que una de partición del tipo NTFS (Windows), EXT 4 (Linux) o HFS + (MacOSX).

Contramedidas comunes[editar]

Particionado

Una estrategia común para optimizar la desfragmentación y reducir el impacto de la fragmentación es particionar el/los disco(s) duro(s) para separar las particiones del sistema de archivos que experimentan muchas más lecturas y escrituras, de las zonas más volátiles, donde se crean y borran frecuentemente los archivos. En Windows de Microsoft, el contenido de directorios tales como "\Archivos de programas" o "\Windows" se modifica con mucha menor frecuencia que la de sus lecturas. Los directorios que contienen los perfiles de los usuarios se modifican constantemente (especialmente el directorio Temp y el cache del Explorador de Internet, que crea miles de archivos que se borran en unos cuantos días). Si los archivos de los perfiles de los usuarios se mantienen en una partición dedicada (como se hace comúnmente en los sistemas UNIX), el desfragmentador funciona mejor, pues no tiene que tratar con todos los archivos estáticos de los otros directorios. En las particiones con relativamente poca actividad, el rendimiento de la desfragmentación mejora grandemente después de la primera de ellas, pues en el futuro el desfragmentador sólo tendrá que desfragmentar un pequeño número de nuevos archivos.

Problemas[editar]

Archivos inamovibles[editar]

La presencia de archivos de sistema inamovibles, especialmente un archivo de intercambio, puede dificultar la desfragmentación. Estos archivos se pueden mover con seguridad cuando el sistema operativo no está funcionando. Por ejemplo, ntfsresize mueve estos archivos para cambiar el tamaño de una partición NTFS.

Crecimiento de la fragmentación[editar]

En sistemas sin resistencia a la fragmentación, ésta crece por sí misma si no se hace nada, así que es necesaria la desfragmentación periódica para mantener el rendimiento del disco al máximo y evitar la sobrecarga de desfragmentaciones menos frecuentes.

Problemas de rendimiento y del usuario[editar]

Aproximación y desfragmentadores según el tipo de sistema[editar]

Los programas de desfragmentación, por lo general, vienen incorporados al sistema operativo (excepto en Windows NT 4). También existen aplicaciones externas, las cuales poseen opciones más avanzadas que las propuestas por los fabricantes del sistema operativo.

El desfragmentador más conocido es el Defrag, que es usado en MS-DOS y en las plataformas de Windows (en estas últimas con el nombre de "Desfragmentador de disco"). Puede ser encontrado en las versiones de Windows en Inicio -> Programas -> Accesorios -> Herramientas de Sistema.

Desfragmentadores según tipo de partición del sistema[editar]

Véase también[editar]

Bibliografía[editar]

  • Norton, Peter (1994). Peter Norton's Complete Guide to DOS 6.22, página 521 - Sams (ISBN 067230614X).
  • Woody Leonhard, Justin Leonhard (2005). Windows XP Timesaving Techniques For Dummies, Second Edition, página 456 - For Dummies (ISBN 0-764578-839).
  • Jensen, Craig (1994). Fragmentation: The Condition, the Cause, the Cure. Executive Software International (ISBN 0-9640049-0-9).
  • Dave Kleiman, Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G. Altholz, Lawrence Abrams, Darren Windham, Tony Bradley y Brian Barber (2006). Winternals: Defragmentation, Recovery, and Administration Field guide - Syngress (ISBN 1-597490-792).
  • Robb, Drew (2003). Server disk Management in a Windows Environment, Chapter 7 - AUERBACH (ISBN 0849324327).

Referencias[editar]