Tanto la clasificación interna como la externa afectan la velocidad de acceso a los datos del sistema. Tienen una diferencia básica entre ellos, es decir, la fragmentación interna se produce cuando se asignan bloques de memoria de tamaño fijo al proceso sin importar el tamaño del proceso, y la fragmentación externa se produce cuando los procesos se asignan dinámicamente a la memoria. Avancemos más y discutamos las diferencias, razones, soluciones detrás de la fragmentación interna y externa con la ayuda del cuadro de comparación que se muestra a continuación.
Gráfica comparativa
Bases para la comparación | Fragmentacion interna | Fragmentación externa |
---|---|---|
BASIC | Ocurre cuando se asignan bloques de memoria de tamaño fijo a los procesos. | Ocurre cuando el espacio de memoria de tamaño variable se asigna dinámicamente a los procesos. |
Ocurrencia | Cuando la memoria asignada al proceso es ligeramente mayor que la solicitada por el proceso, esto crea espacio libre en el bloque asignado que causa la fragmentación interna. | Cuando el proceso se elimina de la memoria, crea el espacio libre en la memoria que causa la fragmentación externa. |
Solución | La memoria debe dividirse en bloques de tamaño variable y asignar el mejor bloque de ajuste al proceso. | Compactación, paginación y segmentación. |
Definición de fragmentación interna
La fragmentación interna se produce cuando la memoria se divide en bloques de tamaño fijo . Siempre que una solicitud de proceso para la memoria, el bloque de tamaño fijo se asigna al proceso. En caso de que la memoria asignada al proceso sea algo mayor que la memoria solicitada, la diferencia entre la memoria asignada y la solicitada es la fragmentación interna .
Este espacio sobrante dentro del bloque de tamaño fijo no puede asignarse a ningún proceso, ya que no sería suficiente para satisfacer la solicitud de memoria por parte del proceso. Entendamos la fragmentación interna con la ayuda de un ejemplo. El espacio de memoria se divide en bloques de tamaño fijo de 18, 464 bytes. Digamos que una solicitud de proceso para 18, 460 bytes y un bloque de tamaño fijo particionado de 18, 464 bytes se asigna al proceso. El resultado es que 4 bytes de 18, 464 bytes permanecieron vacíos, lo cual es la fragmentación interna.
La sobrecarga de realizar un seguimiento del orificio interno creado debido a la fragmentación interna es sustancialmente mayor que la cantidad de orificios internos. El problema de la fragmentación interna se puede resolver al dividir la memoria en el bloque de tamaño variable y asignar el bloque de mejor tamaño a un proceso que solicita la memoria. Aún así, no eliminará totalmente el problema de la fragmentación interna, sino que lo reducirá en cierta medida.
Definición de fragmentación externa
La fragmentación externa se produce cuando hay una cantidad suficiente de espacio en la memoria para satisfacer la solicitud de memoria de un proceso. Pero la solicitud de memoria del proceso no se puede satisfacer, ya que la memoria disponible no es contigua. Si aplica la estrategia de asignación de memoria de primer ajuste o de mejor ajuste, causará una fragmentación externa.
Cuando un proceso se carga y se elimina de la memoria, el espacio libre crea el agujero en el espacio de la memoria, y hay muchos agujeros en el espacio de la memoria, esto se denomina fragmentación externa. Aunque el primer ajuste y el mejor ajuste pueden afectar la cantidad de fragmentación externa, no puede eliminarse por completo. La compactación puede ser la solución para la fragmentación externa.
El algoritmo de compactación baraja todos los contenidos de la memoria a un lado y libera un gran bloque de memoria. Pero el algoritmo de compactación es caro. Existe una solución alternativa para resolver el problema de la fragmentación externa que permitirá que un proceso adquiera memoria física de manera no contigua. Las técnicas para lograr esta solución son la paginación y la segmentación.
Diferencias clave entre la fragmentación interna y externa
- La razón básica detrás de las ocurrencias de fragmentación interna y externa es que la fragmentación interna se produce cuando la memoria se divide en bloques de tamaño fijo, mientras que la fragmentación externa se produce cuando la memoria se divide en bloques de tamaño variable .
- Cuando el bloque de memoria asignado al proceso resulta ser un poco más grande que la memoria solicitada, el espacio libre que queda en el bloque de memoria asignado provoca la fragmentación interna. Por otro lado, cuando el proceso se elimina de la memoria, crea espacio libre, lo que causa un agujero en la memoria que se denomina fragmentación externa.
- El problema de la fragmentación interna se puede resolver al dividir la memoria en bloques de tamaño variable y asignar el bloque de mejor ajuste al proceso de solicitud. Sin embargo, la solución para la fragmentación externa es la compactación, pero su implementación es costosa, por lo que se debe permitir que los procesos adquieran memoria física de manera no contigua, para lograr esto se introduce la técnica de paginación y segmentación.
Conclusión:
El problema de la fragmentación interna se puede reducir, pero no se puede eliminar totalmente. La paginación y la segmentación ayudan a utilizar el espacio liberado debido a la fragmentación externa al permitir que un proceso ocupe la memoria de una manera no contigua.