Descargar

Memoria interna RAM. Funcionamiento, programación y recursividad

Enviado por Pablo Turmero


    edu.red 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.

    edu.red 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.

    edu.red 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

    edu.red 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)

    edu.red 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++

    edu.red 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.

    edu.red 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().

    edu.red 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.

    edu.red 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…

    edu.red 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.

    edu.red 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)

    edu.red EJEMPLO: La serie de Fibonacci