Foros del Web » Programando para Internet » Python »

Administrador de bloques en python

Estas en el tema de Administrador de bloques en python en el foro de Python en Foros del Web. Hola a todos. Espero me puedan ayudar con este codigo. Estoy tratando de implementar un administrador de bloques de memoria para un proyecto. La idea ...
  #1 (permalink)  
Antiguo 17/10/2014, 17:36
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Administrador de bloques en python

Hola a todos.

Espero me puedan ayudar con este codigo.

Estoy tratando de implementar un administrador de bloques de memoria para un proyecto. La idea es la siguiente.

Tengo un área de memoria de tamaño T. Y tengo 2 comportamientos(funciones). Pedir bloque y liberar bloque.
Pedir bloque aparta un bloque de la memoria de tamaño B y me regresa un objeto con la direccion de este nuevo bloque.

Ahora, el problema está cuando tengo mi memoria con varios bloques libres y otros usados. Mi idea, es que al pedir un nuevo bloque, se use la dirección mínima que tenga suficiente espacio para el bloque.

Para esto implementé una clase en python. Hasta ahora para regresentar mis bloques uso un diccionario:

Código:
bloques = {0:T}
Poniendo un ejemplo de como puede quedar:

(0:1), (4:5), (10: 100)

Esto significa: en la direccion 0, tengo un bloque libre, en la direccion 4 tengo 5 bloques y asi sucesivamente.

No encuentro una solución elegante que me permita calcular la dirección mínima que pueda contener el número de bloques que necesito.

Hasta ahora lo que tengo es lo siguiente:

Código:
mylist = list(bloques.keys()).sort()
for k in mylist:
    if bloques[k] > tamañoBloque:
        return k
Esta solucion funciona, pero me parece muy ineficiente tener que pasar un diccionario a una secuencia y luego a una lista para luego tener que ordenarla y finalmente recorrerla .

Me gustaría saber si alguien tiene alguna sugerencia para implementar este algorithmo.

Saludos
  #2 (permalink)  
Antiguo 19/10/2014, 12:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Administrador de bloques en python

Si es con propósitos de aprendizaje, creo que estas tratando de implementar un heap para administar la memoria, que es lo que usa el sistema operativo para manejar la memoria, cuando un programa pide memoria, liberar memoria y fragmentación de la memoria.
  #3 (permalink)  
Antiguo 19/10/2014, 20:58
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: Administrador de bloques en python

Si. La estructura es muy similar a un heap, pero muy personalizada. Mi duda es mas bien sobre el codigo que expuse ( que debo mencionar que funciona correctamente). Sin embargo, siento que de cierta manera estoy mal usando algunas caracteristicas de python. Aun no me siento completamente seguro con este lenguaje.

Saludos

Etiquetas: administrador, bloques, gui
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.