100% encontró este documento útil (1 voto)
895 vistas2 páginas

Memoria Estatica y Dinamica

La memoria es un componente fundamental de las computadoras que se utiliza para almacenar información de forma temporal o permanente. Existen dos tipos principales de memoria: la estática, cuyo tamaño se conoce de antemano y no cambia durante la ejecución del programa, y la dinámica, cuyo tamaño puede variar y se asigna en tiempo de ejecución mediante el uso de punteros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
895 vistas2 páginas

Memoria Estatica y Dinamica

La memoria es un componente fundamental de las computadoras que se utiliza para almacenar información de forma temporal o permanente. Existen dos tipos principales de memoria: la estática, cuyo tamaño se conoce de antemano y no cambia durante la ejecución del programa, y la dinámica, cuyo tamaño puede variar y se asigna en tiempo de ejecución mediante el uso de punteros.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

¿Qué es memoria?

Es un espacio lógico para guardar información.


La memoria (también llamada almacenamiento) se refiere a parte de los componentes
que forman parte de una COMPUTADORA, Son dispositivos que retienen
DATOS informáticos durante algún intervalo de tiempo. Las memorias de computadora
proporcionan unas de las principales funciones de la computación moderna, la retención o
almacenamiento de información. Es uno de los componentes fundamentales de todas las
computadoras modernas que, acoplados al CPU.

¿QUÉ ES ESTÁTICA?
La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de
ejecución es en memoria estática o permanente a lo largo de toda la ejecución del
programa. O sea, que no se modifica al menos en tiempo de ejecución.
No todos los objetos (variables) pueden ser almacenados estáticamente.
Para que un objeto pueda ser almacenado en memoria estática su tamaño (número de
bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilación,
como consecuencia de esta condición no podrán almacenarse en memoria estática:
¿Qué es dinámica?
Su tamaño puede variar durante la ejecución del programa y puede ser liberado mediante
la función free. O sea que se modifica permanentemente.

Memoria estática
Las técnicas de asignación de memoria estática son sencillas.
La asignación de memoria puede hacerse en tiempo de compilación y los objetos están
vigentes desde que comienza la ejecución del programa hasta que termina.
En los lenguajes que permiten la existencia de subprogramas, y siempre que todos los
objetos de estos subprogramas puedan almacenarse estáticamente se aloja en la memoria
estática un registro de activación correspondiente a cada uno de los subprogramas.
Estos registros de activación contendrán las variables locales, parámetros formales y valor
devuelto por la función.

Consideraciones
 Error en tiempo de ejecución de índice fuera del rango.
 Se debe conocer con anticipación el tamaño de la estructura.
 Se guardan en memorias adyacentes.
 Vectores, matrices, cubos, registros, archivos.

Ventajas
 La velocidad de acceso es alta.
 Para retener los datos solo necesita estar energizada.
 Lógica simple.
Son más fáciles de diseñar.

Desventajas:
 No se puede modificar el tamaño de la estructura en tiempo de ejecución.
 No es óptimo con grandes cantidades de datos.
 Desperdicio de memoria cuando no se utiliza en su totalidad del tamaño v [100].
 Menor capacidad, debido a que cada celda de almacenamiento requiere más transistores.
 Mayor costo por bit.
 Mayor consumo de Potencia
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 sistema operativo 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).
Un dato importante es que como tal este tipo de datos se crean y se destruyen mientras se
ejecuta el programa y por lo tanto la estructura de datos se va dimensionando de forma
precisa a los requerimientos del programa, evitándonos así perder datos o desperdiciar
memoria si hubiéramos tratado de definirla cantidad de memoria a utilizar en el momento
de compilar el programa.
Cuando se crea un programa en el que es necesario manejar memoria dinámica el sistema
operativo divide el programa en cuatro partes que son: texto, datos (estáticos), pila y una
zona libre o heap. En el momento de la ejecución habrá tanto partes libres como partes
asignadas al proceso por lo cual si no se liberan las partes utilizadas de la memoria y que
han quedado inservibles es posible que se “agote” esta parte y por lo tanto la fuente de la
memoria dinámica. También la pila cambia su tamaño dinámicamente, pero esto no
depende del programador sino del sistema operativo.

VENTAJAS:
 Es posible disponer de un espacio de memoria arbitrario que dependa de información
dinámica (disponible sólo en ejecución): Toda esa memoria que maneja es implementada
por el programador cuando fuese necesario.
 Otra ventaja de la memoria dinámica es que se puede ir incrementando durante la ejecución
del programa. Esto permite, por ejemplo, trabajar con arreglos dinámicos.
 Es memoria que se reserva en tiempo de ejecución. Su tamaño puede variar durante la
ejecución del programa y puede ser liberado mediante la función free.

DESVENTAJAS:
 Es difícil de implementar en el desarrollo de un programa o aplicación.
 Es difícil implementar estructuras de datos complejas como son los tipos recursivos (árboles,
grafos, etc.).Por ello necesitamos una forma para solicitar y liberar memoria para nuevas
variables que puedan ser necesarias durante la ejecución de nuestros programas: Heap.
 Una desventaja de la memoria dinámica es que es más difícil de manejar.
 La memoria dinámica puede afectar el rendimiento. Puesto que con la memoria estática el
tamaño de las variables se conoce en tiempo de compilación, esta información está incluida
en el código objeto generado. Cuando se reserva memoria de manera dinámica,
 Se tienen que llevar a cabo varias tareas, como buscar un bloque de memoria libre y
almacenar la posición y tamaño de la memoria asignada, de manera que pueda ser liberada
más adelante. Todo esto representa una carga adicional, aunque esto depende de la
implementación y hay técnicas para reducir su impacto.

También podría gustarte