Funcionamiento, programación

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Fernando Escribano Pro 1º de Bachillerato
Prototipo de compilador didáctico del lenguaje LC99
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
Informática II Prof. Dr. Gustavo Patiño MJ
Tema 1. Introducción a la programación (Lenguaje java).
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
VECTORES.
Implementación de Listas
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Estructuras de Datos Memoria y Variables. Conceptos Computador: CPU + Memoria + Dispositivos E/S La memoria se encarga de almacenar los datos y los programas.
Estructuras de datos M.I.A Daniel Alejandro García López.
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
Material de apoyo Unidad 2 Estructura de datos
Compiladores II ( /04/ :03) Tema 2. Generación de Código para Estructuras Complejas Lecciones 3 y 4.
SINERGIA La sinergia es la integración de sistemas que conforman un nuevo objeto. Acción de coordinación de dos o más causas (elementos) cuyo efecto es.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Semana 5 Subprogramas..
Introducción a los punteros
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Índice. Revisando conceptos acerca de la memoria.
Estructura de Datos y Algoritmos
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
Sistema de archivos Sistemas operativos.
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -11-
PUNTEROS Ing Anghello Quintero.
Lenguaje de Programación cap. 1 Estructura del Computador.
Informática Ingeniería en Electrónica y Automática Industrial
Aplicación de estructuras de datos
Capítulo 7 Gestión de memoria.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)

APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Informática Ingeniería en Electrónica y Automática Industrial
Memoria estática versus dinámica con Estructuras
Programación en C para electrónicos
Memoria RAM: Arquitectura y funcionamiento. Definición Random Access Memory, normalmente conocida como Memoria RAM) es un tipo de dispositivo de almacenamiento.
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
PUNTEROS Y REFERENCIAS
APUNTADORES.
SOFTWARE EL SOFTWARE HACE REFERENCIA A LA PARTE
Programación Procedural y Recursiva en C++
Punteros Recomendado: 1. Nivelación Funciones
PRESENTADO: Hernan Dario Delgado murcia. son las siglas de random access memory, un tipo de memoria de ordenador a la que se puede acceder aleatoriamente;
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Chadey Daniela Fontal Marin Stefanny Mosquera Flor Michel Tatiana Oliveros.
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Mantenimiento Ingrid Paola Gómez Flórez 10-3 Colegio técnico Vicente azuero Floridablanca.
PUNTEROS EN EL LENGUAJE C
Laboratorio de programación
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
MEMORIA DINÁMICA.
Unidad de transferencia de memoria
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Funcionamiento, programación 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…

Directa cuando una función se llama a sí misma. 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