Está en la página 1de 13

Memoria interna RAM:

Funcionamiento, programación
y recursividad
Definición
Random Access Memory, normalmente
conocida como Memoria RAM) es un tipo
de dispositivo de almacenamiento de
datos. Adopta la forma de circuitos
integrados en pequeñas tarjetas que
permiten que los datos se almacenen y
sea accesible a ellos mediante ordenes.

La RAM es una memoria volátil, que


significa que la información o
instrucciones que almacena en ella se
pierden en el momento que deja de
recibir voltaje.
RAM (ESTATICA Y DINAMICA)

•RAMs se dividen en estáticas y dinámicas.

•Una Memoria RAM estática mantiene su contenido


mientras esté alimentada.

•En cambio, en una Memoria RAM dinámica la lectura es


destructiva, es decir que la información se pierde al
leerla, para evitarlo hay que restaurar la información
contenida en sus celdas, operación denominada refresco.

•Cada celda de la RAM tiene una ubicación o nombre en


una nomenclatura aceptada por la comunidad científica:
el sistema hexadecimal. Cada depósito de un dato en la
memoria (operando, resultado, etc.) se ubica por una
dirección en hexadecimal.
Programación de la memoria =
algoritmos (sistemas) + uso de
memoria
Es la aplicación de los
algoritmos para optimizar
el uso de la memoria del
computador
Optimización de la memoria
Se puede optimizar el uso de memoria a través de:

ESTRUCTURAS ESTATICAS (desde la compilación reservan


un espacio fijo de elementos)

Arreglos (vectores 1 dimensión y matriz de n


dimensiones)

ESTRUCTURAS DINÁMICAS (en la ejecución varia el


número de elementos y uso de memoria a lo largo del
programa)

Lineales (listas enlazadas, pilas y colas)


No lineales (arboles y grafos o redes)
Asignación de información en celdas de
memoria

•Memoria global (“estática”). Es la usada por


variables globales y cadenas constantes.

•Memoria local Es la usada por variables


declaradas dentro de funciones. Los argumentos
de una función son variables locales.

•Memoria dinámica Esta memoria se puede pedir


en cualquier momento de la ejecución con una
llamada a malloc Memory Allocation
función de asignación de memoria dinámica de C y C++
Liberación de memoria

•La memoria global se libera automaticamente al


terminar el programa.

•La memoria local se libera automaticamente al


terminar la invocación a funcion que la creo.

•La memoria dinámica se puede liberar en


cualquier momento de la ejecucion pasandole un
puntero al bloque de memoria a la función free.
Funciones predefinidas de manejo de
memoria dinámica en C y C++

•Función calloc().- void *calloc(int num, int tam);


Reserva un bloque de memoria para almacenar num
elementos de tam bytes cada uno de ellos.

•Función malloc().-void *malloc(int tam); (tambien con new)


Reserva un bloque de memoria de tam bytes.

•Función realloc().-void *realloc(void *ptr, int nuevo_tamaño);


Cambia el tamaño del bloque de memoria apuntada por ptr al
nuevo tamaño indicado por nuevo_tamaño

•Función free().-void free(void *ptr);


Libera el bloque de memoria apuntada por ptr y que
previamente ha sido asignado mediante malloc() o calloc().
RECURSIVIDAD:

La recursividad es una técnica de


programación que nos permite la
reducción de código, la
programación de procesos y el
manejo de la memoria principal. Se
utiliza para realizar una llamada a
una función desde la misma función.
Ejemplo:

Por ejemplo GNU, es un acrónimo


(una sigla que se pronuncia como
palabra) recursivo (GNU’s Not Unix),
ya que la G en GNU, significa GNU,
cuya G significa GNU, y así
recursivamente…
Tipos de recursividad:
Una función se puede llamar a sí misma,
a este proceso se le llama recursividad y
puede ser directa e indirecta.

•Directa cuando una función se llama a sí


misma.

• Recursividad indirecta cuando una


función llama a otra función y ésta última
llama a la primera.
Formas de recursividad
Pora Ambos tipos de recursividad se
dan en dos formas, aquellas que
eventualmente terminan y producen
un resultado y el caso en que la
recursividad nunca termina
produciendo un bucle infinito y de
aquí una falla en tiempo de
ejecución por falta de memoria.
(principio de la generación de virus)
EJEMPLO: La serie de
Fibonacci

También podría gustarte