Diferencia entre la fragmentación interna y la fragmentación externa

En el contexto de un sistema de archivos, la fragmentación es un uso ineficiente del espacio de almacenamiento para almacenar el contenido de un solo archivo en diferentes ubicaciones en un disco en lugar de en una única secuencia contigua de bits en un lugar. La fragmentación es un fenómeno natural que se produce físicamente en un disco duro o, a veces, en un módulo de memoria cuando los datos no se escriben lo suficientemente cerca de la unidad..

Los datos a veces se escriben fuera de orden, lo que significa que los datos no se colocan uno junto al otro en el disco debido al uso frecuente de los archivos. Estos datos se conocen como fragmentos. En algún momento, el sistema operativo deberá acceder al sistema de archivos para encontrar dónde se encuentran los diferentes fragmentos en la unidad.

Por ejemplo, cuando crea un nuevo documento, digamos un archivo de Word; El archivo parece estar en un solo lugar. Puede abrir el archivo, editarlo o borrarlo, lo que desee. Todas las actividades parecen estar ocurriendo físicamente en el disco, al menos eso es lo que piensas.

El disco duro puede estar guardando trozos de archivos en un área del dispositivo, pero el resto existe literalmente en otra parte del dispositivo de almacenamiento. En términos simples, la fragmentación se refiere al espacio de almacenamiento desperdiciado en el sistema de archivos que permite que se desarrolle un espacio entre las diferentes porciones de un archivo.

La fragmentación ocurre básicamente en el sistema de asignación de memoria dinámica porque reservó demasiado espacio para el archivo, lo que da como resultado áreas abiertas a su alrededor..

¿Qué es la fragmentación interna??

De alguna manera se relaciona con la partición de tamaño fijo. El sistema asigna memoria a varios programas y procesos al dividirlos en pequeños bloques según lo requiera el programa. Sin embargo, a veces se asigna más memoria de la que necesita el proceso, lo que eventualmente resulta en un exceso de memoria que se desperdicia o se deja sin usar..

Por ejemplo, la memoria solo puede asignarse a programas en bloques divisibles por 4, 8 o 16. Cuando un proceso solicita 24 bytes, generalmente obtiene un bloque de 32 bytes, el exceso de 8 bytes no se utiliza. Por lo tanto, la memoria no utilizada reside en una ubicación asignada específica y es tan pequeña que no se le puede asignar un nuevo proceso, lo que resulta en desperdicio. Este desperdicio se denomina fragmentación interna. Probablemente la única forma de eliminar este tipo de fragmentación es mediante la asignación de memoria dinámica.

¿Qué es la fragmentación externa??

La memoria principal forma orificios entre las porciones de la memoria asignada que son demasiado pequeñas para contener cualquier proceso. Es la desventaja de los algoritmos de asignación de almacenamiento, cuando los bloques contiguos de espacios no utilizados no pueden atender una nueva solicitud porque los espacios son demasiado pequeños para las necesidades de aplicaciones de memoria grande. En términos simples, los bloques no contiguos crean agujeros en la memoria que dan como resultado un almacenamiento no utilizado que se encuentra fuera de las regiones asignadas, lo que significa que no se puede usar junto con la memoria principal para tareas de memoria más grandes. Terminan aislados y no pueden ser eliminados totalmente del espacio de la memoria. Esto se llama fragmentación externa. Puede eliminarse por compactación, que baraja el contenido de la memoria para colocar toda la memoria libre junta.

Diferencia entre fragmentación interna y externa.

  1. Lo esencial

Fragmentación interna:

La fragmentación interna se refiere a espacios adicionales que se desperdician cuando se asigna más memoria a un proceso que la necesaria. Generalmente ocurre cuando se asignan bloques de memoria de tamaño fijo a los programas o procesos..

Fragmentación externa:

La fragmentación externa, por el contrario, se refiere a los espacios no utilizados que se forman entre los bloques contiguos de memoria que no son adyacentes entre sí.

  1. Ocurrencia

Fragmentación interna:

El espacio libre que se forma dentro del bloque de memoria asignado cuando la memoria asignada al proceso es mayor que la memoria solicitada por el proceso se conoce como fragmentación interna. El "interno" se refiere a los bytes no utilizados que residen en los bloques de memoria más grandes.

Fragmentación externa:

Cuando la memoria principal forma orificios que son demasiado pequeños para satisfacer cualquier solicitud, se llama fragmentación externa.

  1. Razón

Fragmentación interna:

La razón principal por la que se produce la fragmentación interna es cuando la memoria se divide en bloques de tamaño fijo .

Fragmentación externa:

La fragmentación externa es un fenómeno que se produce cuando la memoria se divide en bloques de tamaño variable en función del tamaño de los diferentes procesos..

  1. Solución

Fragmentación interna:

La fragmentación interna es un fenómeno natural que puede eliminarse mediante la asignación de memoria dinámica, que consiste en asignar dinámicamente porciones de bloques de memoria a los procesos a petición y liberarlos cuando ya no son necesarios durante la ejecución de un programa..

Fragmentación externa:

La fragmentación externa, por otro lado, se puede eliminar mediante compactación, paginación y segmentación, de modo que la memoria se pueda asignar a un proceso de una manera no contigua.

Fragmentación interna vs. externa: tabla de comparación

Resumen de la fragmentación interna y externa

Tanto la fragmentación interna como la externa son fenómenos naturales relacionados con el espacio de memoria no utilizado o la memoria que se desperdicia. La fragmentación interna sufre una asignación de memoria ineficiente que se produce cuando la memoria asignada a un proceso es mayor que la solicitada, lo que deja un espacio no utilizado en el bloque de memoria que causa la fragmentación interna. Una vez que el proceso se elimina de la memoria física, el espacio libre se distribuye aquí y allá y no se pueden encontrar bloques adyacentes de memoria, lo que provoca la fragmentación externa. Sin embargo, ambos fenómenos pueden ser evitados. La fragmentación interna se puede reducir asignando memoria a los procesos de forma dinámica, mientras que la fragmentación externa se puede evitar mejor mediante compactación, paginación y segmentación.