La diferencia entre la fragmentación interna y externa es un tema de interés para muchos a los que les gusta mejorar el conocimiento de su computadora. 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, que causa desperdicio y uso ineficiente del espacio libre. Si bien el uso eficiente del espacio disponible se ve obstaculizado, esto causa problemas de rendimiento, también. La fragmentación interna ocurre cuando la asignación de memoria se basa en particiones de tamaño fijo donde después de una aplicación de tamaño pequeño se asigna a una ranura, el espacio libre restante de esa ranura se desperdicia. La fragmentación externa ocurre cuando la memoria se asigna dinámicamente donde después de la carga y descarga de varias ranuras aquí y allá, el espacio libre se distribuye en lugar de ser contiguo.
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, tres programas llamados A, B, C se han cargado a las tres primeras particiones, mientras que la cuarta partición aún es gratuita. 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. Entonces, en la Parte 2 y la Partición 3, queda espacio libre. Sin embargo, este espacio libre es inutilizable ya que el asignador de memoria solo asigna particiones completas a los programas, pero no hay partes de TI. Este desperdicio de espacio libre se llama fragmentación interna.
En el ejemplo anterior, es particiones fijas de igual tamaño, pero esto incluso puede suceder en una situación en la que estén disponibles particiones de varios tamaños fijos. Por lo general, la memoria o el espacio más duro se divide en bloques que generalmente son del tamaño de poderes de 2 como 2, 4, 8, 16 bytes. Por lo tanto, se asignará un programa o un archivo de 3 bytes a un bloque de 4 bytes, pero un byte de ese bloque se volverá inutilizable que cause fragmentación interna.
Considere la figura anterior donde la asignación de memoria se realiza dinámicamente. 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 contiguamente en ese orden. Luego, más tarde, el Programa A y el Programa C se cierran y se descargan desde la memoria. Ahora hay tres áreas de espacio libre en la memoria, pero no son adyacentes. Ahora se cargará un gran programa llamado Programa F, pero ninguno de los Bloques de espacio libre no 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 inutilizable para el programa F. Esto se llama fragmentación externa.
• La fragmentación interna ocurre cuando se utiliza una técnica de asignación de memoria de tamaño fijo. La fragmentación externa ocurre 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 menos tamaño que la partición 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 la carga y descarga de 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 a un lado, de modo que se gana el 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 manera segura. Podemos observar este paso de compactación realizado en discos duros al ejecutar el desvío de disco en Windows.
• La fragmentación externa puede prevenirse mediante mecanismos como la segmentación y la paginación. Aquí se da un espacio de memoria virtual contiguo lógico, mientras que en realidad los archivos/programas se dividen en partes y se colocan aquí y allá.
• La fragmentación interna se puede mutilar con particiones de varios tamaños y asignando un programa basado en el mejor ajuste. Sin embargo, la fragmentación interna aún no se elimina por completo.
Resumen:
Tanto la fragmentación interna como la fragmentación externa son fenómenos donde 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 causando fragmentación interna. Cuando no se puede encontrar suficiente espacio adyacente después de la carga y descarga de programas, debido al hecho de que el espacio libre se distribuye aquí y allá, esto causa fragmentación externa. La fragmentación puede ocurrir en cualquier dispositivo de memoria como RAM, disco duro y unidades flash.