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.
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.
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.
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.
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:
a) Compactar fragmentos hasta conseguir un hueco de memoria lo
suficientemente grande para el nuevo proceso.
b) Compactar fragmentos hasta conseguir que toda la memoria libre se quede de forma
consecutiva en un único hueco.
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:
- Para ubicar procesos en memoria lo
seleccionamos con un doble click.
- Para finalizar la ejecución de procesos los seleccionamos en la memoria
principal con un click.
- Si los huecos no son lo suficientemente grandes para ubicar un proceso podemos
compactar
Applet
Ahora podemos contestar a estas preguntas:
- ¿Cual de las dos técnicas de compactación es más eficiente?
- ¿Que utilidad encuentra la compactación el disponer de la lista de huecos
ordenada por direcciones?
- ¿Tiene ventajas utilizar una lista de huecos ordenada por tamaños a la
hora de compactar?
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.