Fragmentación interna vs externa
La diferencia entre fragmentación interna y externa es un tema de interés para muchos a los que les gusta mejorar sus conocimientos informáticos. Antes de conocer esta diferencia, tenemos que ver qué es la fragmentación. La fragmentación es un fenómeno que ocurre en la memoria de la computadora, como la memoria de acceso aleatorio (RAM) o los discos duros, lo que causa desperdicio y uso ineficiente del espacio libre. Si bien se obstaculiza el uso eficiente del espacio disponible, esto también causa problemas de rendimiento. La fragmentación interna ocurre cuando la asignación de memoria se basa en particiones de tamaño fijo, donde después de que se asigna una aplicación de tamaño pequeño a una ranura, se desperdicia el espacio libre restante de esa ranura. La fragmentación externa ocurre cuando la memoria se asigna dinámicamente, donde después de cargar y descargar varias ranuras aquí y allá, el espacio libre se distribuye en lugar de ser contiguo.
¿Qué es la fragmentación interna?
Considere la figura anterior donde se sigue un mecanismo de asignación de memoria de tamaño fijo. Inicialmente, la memoria está vacía y el asignador ha dividido la memoria en particiones de tamaño fijo. Luego, más tarde, se cargaron tres programas llamados A, B, C en las primeras tres particiones, mientras que la cuarta partición aún está libre. El programa A coincide con el tamaño de la partición, por lo que no hay desperdicio en esa partición, pero el programa B y el programa C son más pequeños que el tamaño de la partición. Por tanto, en la parte 2 y la partición 3 queda espacio libre. Sin embargo, este espacio libre no se puede utilizar ya que el asignador de memoria solo asigna particiones completas a los programas, pero no partes de él. Este desperdicio de espacio libre se denomina fragmentación interna.
En el ejemplo anterior, se trata de particiones fijas de igual tamaño, pero esto puede suceder incluso en una situación en la que se encuentran disponibles particiones de varios tamaños fijos. Por lo general, la memoria o el espacio más duro se divide en bloques que suelen tener el tamaño de potencias de 2, como 2, 4, 8, 16 bytes. Por lo tanto, un programa o un archivo de 3 bytes se asignará a un bloque de 4 bytes, pero un byte de ese bloque quedará inutilizable y provocará una fragmentación interna.
¿Qué es la fragmentación externa?
Considere la figura anterior donde la asignación de memoria se realiza de forma dinámica. En la asignación de memoria dinámica, el asignador asigna solo el tamaño exacto necesario para ese programa. La primera memoria es completamente gratuita. Luego, los Programas A, B, C, D y E de diferentes tamaños se cargan uno tras otro y se colocan en la memoria de forma contigua en ese orden. Luego, más tarde, el Programa A y el Programa C se cierran y se descargan de la memoria. Ahora hay tres áreas de espacio libre en la memoria, pero no son adyacentes. Ahora se va a cargar un programa grande llamado Programa F, pero ninguno de los bloques de espacio libre es suficiente para el Programa F. La adición de todos los espacios libres es definitivamente suficiente para el Programa F, pero debido a la falta de adyacencia, ese espacio es suficiente. inutilizable para el Programa F. Esto se denomina Fragmentación Externa.
¿Cuál es la diferencia entre la fragmentación interna y externa?
• La fragmentación interna se produce cuando se utiliza una técnica de asignación de memoria de tamaño fijo. La fragmentación externa se produce cuando se utiliza una técnica de asignación de memoria dinámica.
• La fragmentación interna ocurre cuando se asigna una partición de tamaño fijo a un programa / archivo con un tamaño menor que la partición, lo que hace que el resto del espacio en esa partición sea inutilizable. La fragmentación externa se debe a la falta de suficiente espacio adyacente después de cargar y descargar programas o archivos durante algún tiempo porque entonces todo el espacio libre se distribuye aquí y allá.
• La fragmentación externa se puede extraer por compactación donde los bloques asignados se mueven hacia un lado, de modo que se gana espacio contiguo. Sin embargo, esta operación lleva tiempo y también ciertas áreas críticas asignadas, por ejemplo, los servicios del sistema no se pueden mover de forma segura. Podemos observar este paso de compactación realizado en discos duros cuando se ejecuta el desfragmentador de disco en Windows.
• La fragmentación externa se puede prevenir mediante mecanismos como la segmentación y la paginación. Aquí se proporciona un espacio lógico de memoria virtual contigua mientras que en realidad los archivos / programas se dividen en partes y se colocan aquí y allá.
• La fragmentación interna se puede dañar si se tienen particiones de varios tamaños y se asigna un programa según el mejor ajuste. Sin embargo, la fragmentación interna aún no se elimina por completo.
Resumen:
Fragmentación interna vs externa
Tanto la fragmentación interna como la fragmentación externa son fenómenos en los que se desperdicia la memoria. La fragmentación interna ocurre en la asignación de memoria de tamaño fijo, mientras que la fragmentación externa ocurre en la asignación de memoria dinámica. Cuando una partición asignada está ocupada por un programa que es menor que la partición, el espacio restante se desperdicia provocando una fragmentación interna. Cuando no se puede encontrar suficiente espacio adyacente después de cargar y descargar programas, debido al hecho de que el espacio libre se distribuye aquí y allá, esto provoca una fragmentación externa. La fragmentación puede ocurrir en cualquier dispositivo de memoria, como RAM, disco duro y unidades flash.