SlideShare una empresa de Scribd logo
1. Manejo de memoria estática
2. Manejo de memoria dinámica
*La administración de memoria de una computadora es una
tarea fundamental debido a que la cantidad de memoria es
limitada.
*El sistema operativo es el encargado de administrar la
memoria del sistema y compartirla entre distintos usuarios
y/o aplicaciones.
*El RTS (Run Time System) de un lenguaje de programación
administra la memoria para cada programa en ejecución.
*La ejecución de un programa requiere que diversos elementos se
almacenen en la memoria:
*Código del programa (instrucciones)
*Datos
*Permanentes
*Temporales
*Direcciones para controlar de flujo
el ejecución del programa
*A la asignación de memoria para algunos elementos fijos del
programa que es controlada por el compilador se le llama
asignación de memoria estática.
*A la asignación y posible recuperación de memoria durante la
ejecución de un programa y bajo su control, se le llama
asignación de memoria dinámica.
*Define la cantidad de memoria necesaria para un programa
durante el tiempo de compilación.
*El tamaño no puede cambiar durante el tiempo de ejecución del
programa.
*Algunos lenguajes de programación utilizan la palabra static
para especificar elementos del programa que deben
almacenarse en memoria estática.
*Elementos que residen en memoria estática:
*Código del programa
*Las variables definidas en la sección principal del programa, las
cuales pueden solo cambiar su contenido no su tamaño.
*Todas aquellas variables declaradas como estáticas en otras clases o
módulos.
*Estos elementos se almacenan en direcciones fijas que son
relocalizadas dependiendo de la dirección en donde el
cargador las coloque para su ejecución.
Memoria disponible
Para el programa
Variables estáticas
Código del programa
Mapa de memoria
Dirección alta
Dirección baja
Un mapa de memoria (del inglés memory map) es una estructura de datos
(tablas) que indica cómo está distribuida la memoria. Contiene información
sobre el tamaño total de memoria y las relaciones que existen entre
direcciones lógicas y físicas, además de poder proveer otros detalles
específicos sobre la arquitectura de la computadora.
*Cada subprograma (procedimiento, función, método, etc.) requiere una
representación de si en tiempo de ejecución.
*Estas representaciones se almacenan en el stack de ejecución con el fin
de controlar el flujo de ejecución del programa.
…. 
public static int factorial (int n){
if (n==0) return 1;
else return n*factorial(n‐1);
}
public static void main (String[] a){
int a=5;
System.out.println(factorial(a));
}
¿Cuales elementos del 
programa serán colocados en 
memoria estática?
¿Qué elementos se 
almacenarán en el stack en 
tiempo de ejecución?
Un arreglo es una estructura de datos que contiene una colección de datos
del mismo tipo.
Utilización:
• Temperaturas mínimas de los últimos treinta días
• Valor de las acciones de una empresa durante la última semana
*Los arreglos se utilizan como contenedores para almacenar datos 
relacionados 
*Todos los datos incluidos en el arreglo son del mismo tipo. Se 
pueden crear arreglos de enteros (int), flotantes (float), pero en un 
mismo arreglo no se pueden mezclar datos de tipo int y float
*El tamaño del arreglo se establece cuando se crea el arreglo
*A los elementos del arreglo se accederá a través de la posición que 
ocupan dentro del conjunto de elementos del arreglo.
*Los arreglos unidimensionales se conocen con el nombre de vectores
*Los arreglos bidimensionales se conocen con el nombre de matrices
*Para declarar un arreglo, se utilizan corchetes para indicar que se trata 
de un arreglo y no de una simple variable del tipo especificado.
*Ejemplo:
Tipo identificador[];
Tipo[] identificador;
Vectores
Tipo identificador[][];
Tipo[][] identificador;
Matrices
*Los arreglos se crean con el operador new
*Ejemplo:
Vector
Vector = new tipo [elementos];
float [] notas = new float[ALUMNOS];
int[] temperaturas = new int [7];
*Los arreglos se crean con el operador new
*Ejemplo:
Matrices
matriz = new tipo [filas][columnas];
int[][] temperaturas = new int [12][31];
*Para acceder a los elementos de un arreglo se utilizan los índices, para
indicar la posición del elemento dentro del arreglo
*En Java, el índice de la primera componente de un vector es siempre 0
*El tamaño del arreglo puede obtenerse utilizando la propiedad
vector.lenght
*Por tanto, el índice del último elemento es vector.length‐1
*Ejemplo:
Vector[índice]
float[] notas = new float [3];
? ? ?
Notas [0] Notas [1] Notas [2]
Notas
*Una matriz, es un vector de vectores:
*En Java, el índice de la primera componente de un vector es siempre 0, por lo que
matriz[0][0] será el primer elemento de la matriz
*El tamaño del arreglo puede obtenerse utilizando la propiedad matriz.lenght
*Matriz.length nos da el número de filas
*Matriz[0].length nos da el número de columnas
*Por tanto, el índice del último elemento de la matriz es
matriz[índice1] [índice2];
matriz[matriz.length-1] [matriz[0].length-1];
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
(2,0) (2,1) (2,2)
Columnas
Filas
Matriz[3][3]
*Se puede asignar un valor inicial a los elementos de un arreglo en la 
propia declaración.
int vector[] = {1,2,3,5,7};
int matriz[][] = {{1,2,3}, {4,5,6}};
Crear un programa que muestre 2 vectores y calcule su promedio.
Pares
{2,4,6,8,1
0}
Impares
{1,3,5,7,9
}
Imprimir 
los 
elemento
s de cada 
vector
Calcular 
el 
promedi
o de cada 
vector
Crear una clase pública 
llamada Vectores
Dentro del método 
main() declarar los dos 
vectores de tipo entero
int pares[] = {2,4,6,8,10};
int impares[]= {1,3,5,7,9};
Dentro del método main
crear el método  
static void mostrarVector
(int datos[])
Dentro del método declarar la 
variable i de tipo entero
Crear un ciclo for con los 
siguientes parámetros:
for(i=0; i<datos.length; i++)
Dentro del for leeremos cada uno 
de los elementos que se 
encuentran dentro del vector 
utilizando la sentencia datos[i]
Resultado: 
static void mostrarVector(int datos[])
{ int i;
for (i=0; i<datos.length; i++)
System.out.println(datos[i]);
}
Crearemos otro método que se 
llamará media
static float media (int datos[])
Declararemos 3 variables
int i;
int n=datos.length;
int suma=0;
Agregaremos un for como 
anteriormente lo hicimos y 
calcularemos la suma de los 
elementos
suma=suma+datos[i];
Finalmente retornaremos 
el valor de suma entre el 
número de elementos
Resultado:
static float media (int datos[])
{ int i;
int n=datos.length;
int suma=0;
for (i=0; i<n; i++)
suma=suma+datos[i];
return suma/n;
}
Una vez creados los dos métodos 
los mandaremos a llamar en el 
método principal
Llamaremos a mostrarVector
enviándole como parámetros al 
vector pares
mostrarVector(pares);
Para después mandar el mensaje de 
la ejecución del método media 
imprimiendo el promedio calculado
System.out.println("Media= " + media(pares));
Realizaremos  el mismo 
procedimiento para mandar 
a llamar al vector impares.
Ejecutemos el 
programa

public class Vectores {
public static void main(String[] args) {
int pares[] = {2,4,6,8,10};
int impares[]= {1,3,5,7,9};
mostrarVector(pares);
System.out.println("Media= " + media(pares));
mostrarVector(impares);
System.out.println("Media= " + media(impares));
}
static void mostrarVector(int datos[])
{ int i;
for (i=0; i<datos.length; i++)
System.out.println(datos[i]);
}
static float media (int datos[])
{ int i;
int n=datos.length;
int suma=0;
for (i=0; i<n; i++)
suma=suma+datos[i];
return suma/n;
}
}
*Mostrar 2 ejemplos de utilización de matrices
1. Mostrar código fuente e imagen de ejecución
2. Los ejemplos deberán solicitar los datos por parte 
del usuario
3. Deberán utilizar métodos

Más contenido relacionado

La actualidad más candente

Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
Adotbdotz Sokawati
 
Ejercicios
EjerciciosEjercicios
Ejercicios
Ricardo Tejera
 
Programación estructurada y Herramientas estructurada
Programación estructurada y Herramientas estructuradaProgramación estructurada y Herramientas estructurada
Programación estructurada y Herramientas estructurada
LuisAlvarez618
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
José Antonio Sandoval Acosta
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
Esteban Andres Diaz Mina
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
Car_00_01
 
Numeros Pseudoaleatorios
Numeros PseudoaleatoriosNumeros Pseudoaleatorios
Numeros Pseudoaleatorios
Instituto Tecnologico De Pachuca
 
Método pert cpm glenderson
Método pert cpm glendersonMétodo pert cpm glenderson
Método pert cpm glenderson
Glenderson Vasquez
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
eveTalavera
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
neftali omar peña balam
 
Numeros aleatorios & pseudoaleatorios itsz vhhh
Numeros aleatorios & pseudoaleatorios itsz vhhhNumeros aleatorios & pseudoaleatorios itsz vhhh
Numeros aleatorios & pseudoaleatorios itsz vhhh
Victor Hugo
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
Universidad Veracruzana
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
Eduardo Chavez Vasquez
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacion
Anel Sosa
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
Pablo Guerra
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
arrietaevelio
 
Programación concurrente
Programación concurrenteProgramación concurrente
Programación concurrente
Ing. Frandy Javier A. Paulino
 
95878125 sitema-de-farmacia
95878125 sitema-de-farmacia95878125 sitema-de-farmacia
95878125 sitema-de-farmacia
Zuri At
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
Cristian Miguel Galan Torres
 

La actualidad más candente (20)

Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Programación estructurada y Herramientas estructurada
Programación estructurada y Herramientas estructuradaProgramación estructurada y Herramientas estructurada
Programación estructurada y Herramientas estructurada
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Numeros Pseudoaleatorios
Numeros PseudoaleatoriosNumeros Pseudoaleatorios
Numeros Pseudoaleatorios
 
Método pert cpm glenderson
Método pert cpm glendersonMétodo pert cpm glenderson
Método pert cpm glenderson
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Numeros aleatorios & pseudoaleatorios itsz vhhh
Numeros aleatorios & pseudoaleatorios itsz vhhhNumeros aleatorios & pseudoaleatorios itsz vhhh
Numeros aleatorios & pseudoaleatorios itsz vhhh
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacion
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Programación concurrente
Programación concurrenteProgramación concurrente
Programación concurrente
 
95878125 sitema-de-farmacia
95878125 sitema-de-farmacia95878125 sitema-de-farmacia
95878125 sitema-de-farmacia
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 

Similar a Manejo de-memoria

Unidad 2
Unidad 2Unidad 2
Unidad 2
Isabel
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractos
Fernando Solis
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
kikeMerck
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
Valentin Manzano
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
yeimirsthuarg
 
Castaño y navarro
Castaño y navarroCastaño y navarro
Castaño y navarro
kathenavarro
 
Modelo Estatico
Modelo EstaticoModelo Estatico
Modelo Estatico
guest0fc4fa
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil
Dariana Acuariogv
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
jessiicasaldana
 
Arquitectura de computadores y redes
Arquitectura de computadores y redesArquitectura de computadores y redes
Arquitectura de computadores y redes
Yeison Montaña
 
Diagrama de bloque procesador intel
Diagrama de bloque procesador intelDiagrama de bloque procesador intel
Diagrama de bloque procesador intel
Cristian Paredes
 
2rias5me
2rias5me2rias5me
2rias5me
htmrk
 
Registro e intrucciones de microprocesador
Registro e intrucciones de microprocesadorRegistro e intrucciones de microprocesador
Registro e intrucciones de microprocesador
Anderson Gutierrez
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
Alejandro Molina
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
lennyeduardo
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
ValeriaAcostaSanchez
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
hilaryarayon1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
Unidad 1Unidad 1

Similar a Manejo de-memoria (20)

Unidad 2
Unidad 2Unidad 2
Unidad 2
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractos
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Castaño y navarro
Castaño y navarroCastaño y navarro
Castaño y navarro
 
Modelo Estatico
Modelo EstaticoModelo Estatico
Modelo Estatico
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
 
Arquitectura de computadores y redes
Arquitectura de computadores y redesArquitectura de computadores y redes
Arquitectura de computadores y redes
 
Diagrama de bloque procesador intel
Diagrama de bloque procesador intelDiagrama de bloque procesador intel
Diagrama de bloque procesador intel
 
2rias5me
2rias5me2rias5me
2rias5me
 
Registro e intrucciones de microprocesador
Registro e intrucciones de microprocesadorRegistro e intrucciones de microprocesador
Registro e intrucciones de microprocesador
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
 
Estructuras básicas
Estructuras básicasEstructuras básicas
Estructuras básicas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Último

Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 

Último (7)

Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 

Manejo de-memoria