Você está na página 1de 13

Memoria interna RAM: Funcionamiento, programacin y recursividad

Definicin

Random Access Memory, normalmente conocida como Memoria RAM) es un tipo de dispositivo de almacenamiento de datos. Adopta la forma de circuitos integrados en pequeas tarjetas que permiten que los datos se almacenen y sea accesible a ellos mediante ordenes. La RAM es una memoria voltil, que significa que la informacin o instrucciones que almacena en ella se pierden en el momento que deja de recibir voltaje.

RAM (ESTATICA Y DINAMICA)


RAMs se dividen en estticas y dinmicas. Una Memoria RAM esttica mantiene su contenido mientras est alimentada. En cambio, en una Memoria RAM dinmica la lectura es destructiva, es decir que la informacin se pierde al leerla, para evitarlo hay que restaurar la informacin contenida en sus celdas, operacin denominada refresco. Cada celda de la RAM tiene una ubicacin o nombre en una nomenclatura aceptada por la comunidad cientfica: el sistema hexadecimal. Cada depsito de un dato en la memoria (operando, resultado, etc.) se ubica por una direccin en hexadecimal.

Programacin de la memoria = algoritmos (sistemas) + uso de memoria

Es la aplicacin de los algoritmos para optimizar el uso de la memoria del computador

Optimizacin de la memoria
Se puede optimizar el uso de memoria a travs de: ESTRUCTURAS ESTATICAS (desde la compilacin reservan un espacio fijo de elementos) Arreglos (vectores 1 dimensin y matriz de n dimensiones) ESTRUCTURAS DINMICAS (en la ejecucin varia el nmero de elementos y uso de memoria a lo largo del programa) Lineales (listas enlazadas, pilas y colas) No lineales (arboles y grafos o redes)

Asignacin de informacin en celdas de memoria

Memoria global (esttica). Es la usada por variables globales y cadenas constantes.


Memoria local Es la usada por variables declaradas dentro de funciones. Los argumentos de una funcin son variables locales. Memoria dinmica Esta memoria se puede pedir en cualquier momento de la ejecucin con una llamada a malloc Memory Allocation
funcin de asignacin de memoria dinmica de C y C++

Liberacin de memoria

La memoria global se libera automaticamente al terminar el programa. La memoria local se libera automaticamente al terminar la invocacin a funcion que la creo. La memoria dinmica se puede liberar en cualquier momento de la ejecucion pasandole un puntero al bloque de memoria a la funcin free.

Funciones predefinidas de manejo de memoria dinmica en C y C++


Funcin calloc().- void *calloc(int num, int tam); Reserva un bloque de memoria para almacenar num elementos de tam bytes cada uno de ellos.

Funcin malloc().-void *malloc(int tam); (tambien con new) Reserva un bloque de memoria de tam bytes.
Funcin realloc().-void *realloc(void *ptr, int nuevo_tamao); Cambia el tamao del bloque de memoria apuntada por ptr al nuevo tamao indicado por nuevo_tamao Funcin 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 tcnica de programacin que nos permite la reduccin de cdigo, la programacin de procesos y el manejo de la memoria principal. Se utiliza para realizar una llamada a una funcin desde la misma funcin.

Ejemplo:

Por ejemplo GNU, es un acrnimo (una sigla que se pronuncia como palabra) recursivo (GNUs Not Unix), ya que la G en GNU, significa GNU, cuya G significa GNU, y as recursivamente

Tipos de recursividad:

Una funcin se puede llamar a s misma, a este proceso se le llama recursividad y puede ser directa e indirecta.

Directa cuando una funcin se llama a s misma.


Recursividad indirecta cuando una funcin llama a otra funcin 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 ejecucin por falta de memoria. (principio de la generacin de virus)

EJEMPLO: La serie de Fibonacci

Você também pode gostar