RSS

jueves, 19 de noviembre de 2009

4.3.5 Liberación de Páginas


Asignar bloques de páginas tiende a fragmentar la memoria al dividir los bloques grandes para conseguir bloques más pequeños.
El código de liberación de páginas recombina páginas en bloques de mayor tamaño siempre que es posible.






De hecho, el tamaño de bloque de página es importante pues facilita la recombinación enbloques grandes.


Siempre que se libera un bloque de páginas, se comprueba si está libre el bloque adyacente de igual tamaño.

Si es así, se combina con el bloque de páginas recién liberado para formar un bloque nuevo de tamaño doble.

Cada vez que dos bloques de páginas se recombinan en uno mayor, el algoritmo de liberación intenta volver a recombinarlo en otro aún mayor.

De esta forma, los bloques de páginas libres son tan grandes como la utilización de la memoria permita.






Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el marco de página cuando ya no necesitara esa página



Se puede eliminar el “desperdicio” y acelerar la ejecución.


El inconveniente es que la incorporación de mandatos de liberación de páginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.


“Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.




0 comentarios:

Publicar un comentario