Sistemas operativos

Compactación

Gabriela Andreu

*Creado con Easy Java Simulations

Nuestros Objetivos

• Describir la técnica de compactación y sus variantes.
• Analizar los criterios necesarios para aplicar compactación.

Términos relacionados: Asignación Contigua, Reubicación Dinámica de Procesos, Primer Ajuste, Mejor Ajuste, Peor Ajuste, Fragmentación Externa.

La Asignación Contigua de Memoria


El sistema operativo (s.o.) es el responsable de asignar memoria principal a los procesos para que puedan ser ejecutados.

Memoria Principal con Ubicación Contigua

En un modelo de memoria con asignación contigua, todo el espacio lógico de un proceso (Código, Datos, Pila) ha de estar ubicado de forma contigua en memoria principal, es decir en direcciones físicas consecutivas

Cuando un proceso finaliza libera la memoria ocupada.

Asignando Memoria con Particiones Variables

Se considera inicialmente toda la memoria como un único hueco para ubicar procesos.
Memoria Principal 
         con un único hueco

Cada vez que llega un proceso al sistema se busca un hueco lo suficientemente grande para ubicarlo.
Con particiones variables sólo se le asigna al proceso el espacio que necesita del total del hueco y el resto pasa a formar un nuevo hueco.

El estado de la memoria varía con el tiempo, puesto que cuando un proceso finaliza su ejecución se libera su memoria y se crea un hueco nuevo.
El sistema operativo lleva la contabilidad de huecos libres y el tamaño de dichos huecos.

Fragmentación externa

La fragmentación externa aparece cuando hay suficiente memoria para ubicar un nuevo proceso, pero el espacio disponible no esta contiguo.

Compactación

La solución al problema de la fragmentación externa es la compactación.
El objetivo de la compactación es conseguir que haya suficiente memoria libre contigua para ubicar un nuevo proceso.

Memoria con compactación

Para llevar a cabo la compactación es necesario mover procesos ya ubicados de unas zonas de memoria a otras, lo cual exige que los procesos sean reubicables en tiempo de ejecución.
Existen dos algoritmos de compactación: Los algoritmos de compactación suelen tener un alto coste computacional.

PRACTIQUE EL FUNCIONAMIENTO DE LA "COMPACTACIÓN"
Utilizando la figura podemos practicar la técnica de compactación:



Applet



Ahora podemos contestar a estas preguntas:

Resumimos lo aprendido

• La compactación es una solución a la fragmentación externa que permite unir todos los fragmentos libres de memoria en un único hueco.

• Para compactar los procesos ha de ser reubicables en tiempo de ejecución.

• La compactación tiene un alto coste computacional.