S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I...

21
Definici´on del problema Limitaciones ¿C´omosehace? Fragmentaci´on Estrategia, pol´ ıtica, mecanismo Estrategia Pol´ ıticas Mec S.O.: Asignaci´on de memoria din´ amica Gorka Guardiola Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 10 de noviembre de 2011 S.O.: Asignaci´on de memoria din´ amica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Transcript of S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I...

Page 1: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

S.O.: Asignacion de memoria dinamica

Gorka Guardiola

Laboratorio de Sistemas,Grupo de Sistemas y Comunicaciones,

URJC

10 de noviembre de 2011

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 2: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

(cc) 2008 Grupo de Sistemas y Comunicaciones.

Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Attribution-ShareAlike.

Para obtener la licencia completa, vease http://creativecommons.org/licenses/by-sa/2.1/es. Tambien puede

solicitarse a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 3: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Asignacion de memoria

I Tenemos un trozo (grande) de memoriaI Queremos repartirlo

I Dos operaciones, reservar, liberarI malloc(2), free(2)

I Dentro del kernel/runtime o en espacio de usuario

I Espacio de usuario, se reparte el heap (monton), parte delBSS,

I El BSS (y por tanto el heap) puede crecer con brk(2)

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 4: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Asignacion de memoria

I ¿Por que?

I Es importante para poder reutilizar

I ¿Que significa reservar y liberar?

I No tiene que ver con el contenido

I Me apunto en otro sitio que esta reservado

I ¿Donde lo apunto?: en la memoria

I El hueco que reservo y los metadatos compiten por el mismoespacio

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 5: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Limitaciones

I No puedo mover las reservas (¿Quien reescribe los punteros?)

I Tengo que servir las reservas/liberaciones en el orden quellegan

I Las reservas/liberaciones son irrevocables

I Hay que usar un algoritmo en lınea, servir las peticiones segunvienen

I Alineamiento a palabra (en el kernel mas)

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 6: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

¿Como se hace?

I Tengo que apuntarme que trozos hay libres y cuales estanocupados

I Intento hacerlo utilizando y desperdiciando poca memoria

I Exponiendo lo mınimo del mecanismo interno al usuario (porejemplo, free(2) no recibe el tamano)

I Tiene que costar poco tiempo (es un operacion comun)

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 7: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Herramientas

I El asignador puede elegir donde pone las cosas

I Y cuanto reserva de mas

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 8: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Fragmentacion

I ExternaI Posiciones ocupadas en medio no me dejan reservarI Ejemplo: en el cine solo quedan huecos de 2 personas pero

tenemos un grupo de 5.

I InternaI Reparto en cuantos mınimosI Para evitar la fragmentacion externaI Desperdicio espacioI Ejemplo: Mesas de 5 en el restaurante, si solo viene 1,

desperdicio 4.

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 9: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategia, polıtica, mecanismo

I Estrategia: de que nos vamos a aprovechar paraimplementarlo de forma eficiente

I Los programas reservan las cosas con una cierta regularidadI Hay tamanos mas comunesI Se liberan y reservan muchas cosas similares juntasI Como aprovecharemos esto, puede haber muchas polıticas que

lo implementen

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 10: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategia, polıtica, mecanismo

I Polıtica: como vamos a hacerloI El algoritmo en abstractoI Por ejemplo, buscar el primer hueco libre, o el que mejor se

ajusta

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 11: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategia, polıtica, mecanismo

I Mecanismo: que estructura de datos/funciones (detallado)I lista enlazada de libres y ocupados. . . ,I Cabeceras/Pies (headers/footers)I Funciones, implementacion del algoritmo

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 12: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategia, polıtica, mecanismo

I No estan aislados, la estrategia determina una familia depolıticas

I Las polıticas determinan que mecanismos son utiles o no

I En el sentido contrario, mecanismos inadecuados hacen unapolıtica ineficaz

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 13: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategias

I Minimizar la fragmentacion externaI Reservar huecos en un sitio que luego no se queden en

medio/dispersosI Agrupar juntas cosas que se crean y destruyen a la vezI Agrupar juntas cosas del mismo tamanoI Redondear a un tamano mınimo para que no queden recortes

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 14: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategias

I Minimizar la fragmentacion internaI Elegir con cuidado como ajusta el hueco a la reserva

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 15: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Estrategias

I Hacer que vaya rapidoI Caching de los trozos mas usadosI Segregacion por tamano o momento

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 16: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Polıticas

I Minimizar la fragmentacion externaI Best fit: buscar el hueco que mejor encajaI Worst fit: buscar el hueco que peor encajaI Tener un tamano mınimo

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 17: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Polıticas

I Hacerlo rapidoI First fit: el primero que encajaI Segregacion por tamanos

I Quick fit: caches por tamanosI Asignador compuesto: un algoritmo para bloques pequenos (se

usan mucho) y otros grandesI Buddy system: Dividir en dos recursivamente los huecos

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 18: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Polıticas

I Juntar huecos libres (coalescing) es costoso

I Si no lo hago, tengo mas fragmentacion (potencialmente)

I A veces no es tan importante, espero a que seaimprescindible, mantengo los huecos separados y luego losjunto (deferred coalescing)

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 19: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Mecanismos

I Tener una lista enlazada de libres

I Una estructura de datos con los diferentes tipos de tamanoslibres (un arbol binario para el buddy system, por ejemplo)

I Lo que hay libre lo apunto en lo que no estoy usando

I Poner una cabecera, un trozo de memoria justo antes de cadatrozo reservado, por ejemplo apunto tamano para saber enque lista buscar o mas.

I Poner un pie, para hacer mas facil juntar los trozos libres(coalescing), puedo aprovechar parte de la cabecera anterior

I Todo esto ocupa (desperdicia), mas espacio

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 20: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Mecanismos

I Envenenar la memoria para encontrar bugs

I Incluso aunque no tenga apuntados los ocupados, puedoponer un patron cuando los libero para detectar doble free

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 21: S.O.: Asignaci on de memoria din amica - LSUBlsub.org/itso/traspas/4.pdf · 2014-05-08 · I Ejemplo: en el cine s olo quedan huecos de 2 personas pero tenemos un grupo de 5. I Interna

Definicion del problema Limitaciones ¿Como se hace? Fragmentacion Estrategia, polıtica, mecanismo Estrategia Polıticas Mecanismos Compromisos

Compromisos

I A un lado de la balanza esta la cantidad de memoria que uso

I En estructuras de datos (cabeceras, pies, parte constante), enfragmentacion

I Al otro lado esta lo rapido que reserva y libera memoria

S.O.: Asignacion de memoria dinamica Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC