La compactación es una técnica para recopilar toda la memoria libre presente en forma de fragmentos en una gran porción de memoria libre, que se puede usar para ejecutar otros procesos.
Lo hace moviendo todos los procesos hacia un extremo de la memoria y todo el espacio libre disponible hacia el otro extremo de la memoria para que quede contiguo.
No siempre es fácil hacer la compactación. La compactación se puede realizar solo cuando la reubicación es dinámica y se realiza en tiempo de ejecución. La compactación no se puede realizar cuando la reubicación es estática y se realiza en tiempo de carga o en tiempo de montaje.
Antes de la compactación
Antes de la compactación, la memoria principal tiene algo de espacio libre entre el espacio ocupado. Esta condición se conoce como fragmentación externa . Debido a que hay menos espacio libre entre los espacios ocupados, no se pueden cargar procesos grandes en ellos.
Memoria principal |
---|
espacio ocupado |
Espacio libre |
espacio ocupado |
espacio ocupado |
Espacio libre |
Después de la compactación
Después de la compactación, todo el espacio ocupado se ha movido hacia arriba y el espacio libre hacia abajo. Esto hace que el espacio sea contiguo y elimina la fragmentación externa. Los procesos con grandes requisitos de memoria ahora se pueden cargar en la memoria principal.
Memoria principal |
---|
espacio ocupado |
espacio ocupado |
espacio ocupado |
Espacio libre |
Espacio libre |
Propósito de la compactación en el sistema operativo
Al asignar memoria al proceso, el sistema operativo a menudo enfrenta un problema cuando hay una cantidad suficiente de espacio libre dentro de la memoria para satisfacer la demanda de memoria de un proceso. sin embargo, la solicitud de memoria del proceso no se puede cumplir porque la memoria libre disponible no es contigua , este problema se conoce como fragmentación externa. Para resolver este tipo de problemas se utiliza la técnica de compactación.
Problemas con la compactación
Aunque la técnica de compactación es muy útil para hacer que la utilización de la memoria sea eficiente y reduce la fragmentación externa de la memoria, el problema es que se desperdicia una gran cantidad de tiempo en el proceso y durante ese tiempo la CPU permanece inactiva, lo que reduce la eficiencia del sistema. .
Ventajas de la compactación
- Reduce la fragmentación externa.
- Haga que el uso de la memoria sea eficiente.
- La memoria se vuelve contigua.
- Dado que la memoria se vuelve contigua, se pueden cargar más procesos en la memoria.
Desventajas de la compactación
- La eficiencia del sistema se reduce.
- Se pierde una gran cantidad de tiempo en realizar la compactación.
- La CPU permanece inactiva durante mucho tiempo.
- No siempre es fácil realizar la compactación.
Publicación traducida automáticamente
Artículo escrito por astitvajain2051 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA