La fragmentación de memoria ocurre cuando los procesos asignan cantidades variables de memoria, dejando huecos desperdiciados. Esto puede ser fragmentación externa, cuando los huecos no son continuos, o interna, cuando las particiones son mayores de lo necesario. Para evitar esto, se usan la condensación de huecos, que fusiona huecos adyacentes, y la compactación, que desplaza la memoria ocupada a un extremo para liberar un bloque continuo.
2. Condensación de huecos y de
Compactación del almacenamiento.
En los sistemas operativos actuales,
debido al uso de varios programas
(multiprogramación) se produce en
memoria una fragmentación de la misma,
producida porque a cada proceso se le
asigna una cantidad de memoria
(variable) y quedan “huecos” entre
particiones. Estos huecos son memoria
desperdiciada en cierto modo, ya que si
la cantidad es inferior a la necesitada por
otro proceso no se llega a usar.
3. Esta fragmentación puede ser de dos
tipos:
– Fragmentación externa: esta se debe
a que la cantidad de memoria satisface
a la que necesita un proceso, pero al no
ser continua no se le puede asignar
como una partición.
– Fragmentación interna: en este tipo,
la partición es algo mayor a la que
necesita un proceso, por tanto un
porcentaje de la partición queda sin
usar pero no se puede asignar a otra
tarea.
4. Para evitar estas fragmentaciones existen
dos técnicas:
Condensación de huecos
Esta técnica consiste en fusionar dos
huecos de memoria libre adyacentes en
uno sólo que tendrá como capacidad la
suma de los dos originales. Cuando un
trabajo termina, el sistema operativo trata
de unir todos los espacios libres en uno
solo, para tener un espacio suficiente para
que pueda entrar otro programa en
memoria.
5. Mediante la condensación de huecos
se pueden recuperar los bloques
contiguos de almacenamiento más
grande que sea posible. Gracias a
esto, la velocidad de acceso es
mayor. Por ejemplo, necesitamos 4K
de nuestra memoria, pero tenemos
dos huecos, cada uno de 2K. Unimos
los dos huecos y tenemos uno de 4K
que nos sirve para almacenar este
proceso.
6. Compactación del almacenamiento
Una forma de solucionar la
fragmentación externa es usando
compactación. Consiste en desplazar
todas las localizaciones de memoria
ocupada a un extremo de la misma,
así quedan dos partes bien
diferenciadas, la memoria ocupada y
la memoria libre.
7. La compactación no siempre es
posible, ya que es necesario que la
relocalización sea dinámica y se
efectúa en el momento de la
ejecución. Además, otro
inconveniente que presenta es que es
una técnica costosa, ya que requiere
recursos del sistema y puede
provocar que el tiempo de respuesta
aumente. El sistema debe detener
todo mientras efectúa la compresión,
lo que puede afectar los tiempos de
respuesta.