Trabajo

Páginas: 7 (1643 palabras) Publicado: 27 de octubre de 2010
ITPN

Estructura
De
Datos


Agosto-30-2010
Investigación de estructura de datos: manejo de de memoria estática y dinámica

2.1 Manejo de Memoria Dinámica

Memoria dinámica:
La reserva de memoria dinámica se hace en tiempo de ejecución después de leer los datos y de conocer el tamaño exacto del problema. Como consecuencia se adapta mucho mejor a las necesidades en cada caso.El sitio donde se almacenan los objetos se denominan en ingles heap o free store traducido como montículo o memoria libre, y el sitio preciso donde se encuentre depende del compilador y el tipo de puntero utilizado. La creación y destrucción de los objetos esta en manos del programador a través de los operadores new y delete.

Las áreas de datos asignadas hasta el momento a las variables sehan hecho en forma “ESTÁTICA”; es decir, áreas que se asignan desde el momento de la compilación y permanecen asignadas durante el ciclo de vida del programa, así no se utilicen.

Un área de datos es asignada dinámicamente cuando su existencia y permanencia a lo largo de un programa depende exclusivamente del programador y no de la máquina.

El asignamiento dinámico se hace a través de untipo de datos llamado “APUNTADOR”, ó puntero y a través de dos subprogramas; uno genera o crea un área de datos pidiendo la dirección de ésta al sistema y otro que le entrega o le devuelve la dirección de memoria del área de datos al sistema, cuando ya esta no se requiere.

“El asignamiento de las áreas de datos en forma dinámica se hace en la fase de ejecución, es decir el carácter dinámico se daporque ocurre en la fase de corrida del programa”

Datos dinámicos: su tamaño y forma es variable a lo largo de un programa, por lo que se crean y destruyen en tiempo de ejecución. Esto permite dimensionar la estructura necesitando
Memoria Dinámica
Supongamos que nuestro programa debe manipular estructuras de datos de longitud desconocida. Un ejemplo simple podría ser el de un programa quelee las líneas de un archivo y las ordena. Por tanto, deberemos leer un número indeterminado de líneas, y tras leer la última, ordenarlas. Una manera de manejar ese ``número indeterminado'', sería declarar una constante MAX_LINEAS, darle un valor vergonzosamente grande, y declarar un array de tamaño MAX_LINEAS. Esto, obviamente, es muy ineficiente (y feo). Nuestro programa no sólo quedaríalimitado por ese valor máximo, sino que además gastaría esa enorme cantidad de memoria para procesar hasta el más pequeño de los ficheros.
La solución consiste en utilizar memoria dinámica. La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistemaoperativo para guardarlas. El medio para manejar la memoria que otorga el sistema operativo, es el puntero, puesto que no podemos saber en tiempo de compilación dónde nos dará huecos el sistema operativo (en la memoria de nuestro PC).
Asignación dinámica
El proceso de compactación del punto anterior es una instancia particular del problema de asignación de memoria dinámica, el cual es el cómosatisfacer una necesidad de tamaño n con una lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cuál hueco es el más indicado para asignarse. Las estrategias más comunes para asignar algún hueco de la tabla son:
 Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La búsqueda puede iniciar ya sea al inicio o alfinal del conjunto de huecos o en donde terminó la última búsqueda. La búsqueda termina al encontrar un hueco lo suficientemente grande.
Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con capacidad suficiente. La búsqueda se debe de realizar en toda la tabla, a menos que la tabla esté ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria posible....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Trabajadores Del Trabajo
  • trabajo del trabajo
  • Trabajo Del Trabajo
  • El trabajo y el Trabajador
  • Trabajo Trabajador
  • trabajo trabajo
  • trabajo trabajo
  • Trabajo de trabajo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS