Fragmentación (informática)


En el almacenamiento informático , la fragmentación es un fenómeno en el que el espacio de almacenamiento, el almacenamiento principal o el almacenamiento secundario , se utiliza de forma ineficiente, lo que reduce la capacidad o el rendimiento y, a menudo, ambos. Las consecuencias exactas de la fragmentación dependen del sistema específico de asignación de almacenamiento en uso y de la forma particular de fragmentación. En muchos casos, la fragmentación hace que el espacio de almacenamiento se "desperdicie" y, en ese caso, el término también se refiere al espacio desperdiciado en sí.

Hay tres formas de fragmentación diferentes pero relacionadas: fragmentación externa, fragmentación interna y fragmentación de datos, que pueden estar presentes de forma aislada o en conjunto. A menudo se acepta la fragmentación a cambio de mejoras en la velocidad o la simplicidad. Fenómenos análogos ocurren para otros recursos como procesadores; vea abajo.

Cuando un programa de computadora solicita bloques de memoria del sistema informático, los bloques se asignan en trozos. Cuando el programa de computadora termina con un fragmento, puede liberarlo nuevamente para el sistema, dejándolo disponible para luego ser asignado nuevamente a otro o al mismo programa. El tamaño y la cantidad de tiempo que un programa retiene un fragmento varía. Durante su vida útil, un programa de computadora puede solicitar y liberar muchos fragmentos de memoria.

Cuando se inicia un programa, las áreas de memoria libre son largas y contiguas. Con el tiempo y el uso, las regiones contiguas largas se fragmentan en áreas contiguas cada vez más pequeñas. Eventualmente, puede resultar imposible que el programa obtenga grandes porciones contiguas de memoria.

La paginación de la memoria crea una fragmentación interna porque se asignará un marco de página completo, se necesite o no tanto almacenamiento. [1] Debido a las reglas que rigen la asignación de memoria , a veces se asigna más memoria de computadorade lo necesario. Por ejemplo, la memoria solo se puede proporcionar a los programas en fragmentos (generalmente un múltiplo de 4 bytes) y, como resultado, si un programa solicita quizás 29 bytes, en realidad obtendrá un fragmento de 32 bytes. Cuando esto sucede, el exceso de memoria se desperdicia. En este escenario, la memoria inutilizable está contenida dentro de una región asignada. Esta disposición, denominada particiones fijas, adolece de un uso ineficiente de la memoria: cualquier proceso, por pequeño que sea, ocupa una partición completa. Este desperdicio se llama fragmentación interna . [2] [3]

A diferencia de otros tipos de fragmentación, la fragmentación interna es difícil de recuperar; Por lo general, la mejor manera de eliminarlo es con un cambio de diseño. Por ejemplo, en la asignación de memoria dinámica , las agrupaciones de memoria reducen drásticamente la fragmentación interna al distribuir la sobrecarga de espacio sobre una mayor cantidad de objetos.