SlideShare une entreprise Scribd logo
1  sur  27
Manejo de memoria
1.   Manejo de memoria estática
2.   Manejo de memoria dinámica
Introducción
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 del ejecución del
    programa
Asignación de
Memoria Estática y Dinámica
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.
Memoria Estática
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.
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.
Método común de asignación de memoria
            Mapa de memoria


           Memoria disponible     Dirección alta
            Para el programa
                                  Dirección baja
            Variables estáticas

           Código del programa
El stack de ejecución
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.
Ejemplo
 ….
  public static int factorial (int n){   Cuales elementos del
   if (n==0) return 1;                   programa serán
   else return n*factorial(n-1);         colocados en memoria
 }                                       estática?
 public static void main (String[] a){
   int a=5;                              Que elementos se
   System.out.println(factorial(a));     almacenaran en el
 }                                       stack en tiempo de
                                         ejecución?
Es siempre posible, cuando se diseña un programa,
 conocer la cantidad de memoria necesaria para que
 este se ejecute correctamente?
Memoria Dinámica
Define el tamaño del espacio de memoria necesario
 para un programa en tiempo de ejecución.
 El tamaño de los elementos puede cambiar durante
 la ejecución del programa.
Almacena todos los elementos definidos con la
 palabra new en un programa.
Memoria Dinámica
Las variables dinámicas son aquellas que crecen
 de tamaño o se reducen durante la ejecución de
 un programa.
Estas se almacenan en un espacio de memoria
 llamado heap.
 El heap se localiza en la región de memoria que
 esta encima del stack.
Algunos lenguajes de programación permiten que
 el programador asigne y desasigne manualmente
 la memoria. Java utiliza un recolector de basura.
Uso del heap
Para usar el heap un programa requiere:
  Una o mas variables que refieran el lugar donde se
   encuentran las variables dinámicas.
  Un método para obtener memoria (new)
  Una forma de asignar la dirección de memoria a alguna
   variable (identificador)
  Una forma para referirse a la variable dinámica
public class Punto {
                                                                     Ejemplo
  private int x=0;
  private int y=0;                           public class UsaPunto {
  public static int totalPuntos =0;           public static void main(String[] args){
  Punto (int _x, int _y){                        Punto punto1= new Punto(2,1);
     x=_x;                                       Punto punto2 = new Punto(5,5);
     y=_y;                                       Punto punto3 = punto1;
    totalPuntos++;
  }
  public void setx(int _x){                          Punto[] puntos = {punto1,punto2};
     x= _x;                                          System.out.println(Arrays.toString(puntos));
  }                                                  System.out.println(“Puntos creados “+ Punto.totalPuntos);
  public String toString (){                     }
     return “(”+x+”,”+y+”)”;                 }
  }
}


                      punto1           punto3                         punto2
                                                                                                Punto
  Miembros de             x=2                              x=5                   Miembros
  instancia               y=1                              y=5                   de clase      totalPuntos = 0
                        void setx(int _x)                void setx(int _x)
  Metodos de
                        String toString ()               String toString ()
  instancia
Liberación de memoria
La memoria estática se libera cuando el programa
 finaliza su ejecución.
La memoria dinámica se libera de dos formas:
  Explicita. El programador decide cuando un elemento
   debe ser eliminado de la memoria. El LP provee
   mecanismos para liberación de memoria.
  Implícita. El sistema decide que elementos deben ser
   eliminados para recuperar el espacio de memoria que
   ocupan. El sistema cuenta con un “recolector de
   basura”.
The Garbage Collector
 Algunos lenguajes de programación requieren que el
   programador mantenga la información de todos los objetos
   creados en un programa para que estos puedan ser destruidos
   cuando ya no son requeridos en la ejecución.
 Este método para manejar la memoria puede resultar tedioso y
   propicio a errores.
 Java permite la creación de tantos objetos como sean necesarios
   sin tener que destriurlos explícitamente cuando ya no son
   requeridos.
 El medio ambiente de ejecución de Java cuenta con un
   mecanismo llamado recolector de basura (garbage collector)
   que se encarga de eliminar los objetos cuando ya no existen
   referencias a ellos.
 El recolector de basura, de manera automática, se ejecuta
   periódicamente durante la ejecución de un programa.
Ejemplo
Como almacenar
Cadenas de Caracteres?
Cadenas de Caracteres
Se utilizan secuencias de bits para representar letras y otros símbolos.
                   Alfabéticos
   Caracteres      Dígitos
                   Caracteres Especiales
                   Caracteres de Control…

El numero de caracteres que se pueden representar depende de el
numero de bits con que se represnta cada carácter.
Ejemplo Con 8 bits se pueden representar 256 Caracteres diferentes,
donde cada elemento ocupa una secuencia de 8 bits.

Una cadena de caracteres esta representada por la
concatenación de las hileras de bits que representan los
caracteres individuales.
Una cadena de caracteres es una secuencia finita de 0
 o más caracteres.

La longitud de la cadena de caracteres es el número de
 caracteres que contiene.
  Cadena Vacía o Nula.- Cero caracteres.


Delimitadores: Comúnmente se usan “” o ‘’
  dependiendo del lenguaje de programación.
Ejemplos:
S1=“INSTITUTO”                    longitud = 9
S2=“TECNOLOGICO DE CULIACAN” longitud = 23
Concatenación = Es la operación de unir 2 cadenas
 para formar una sola.

   Ejemplo:
   S3 = S1 + “ ” + S2
   S3=“INSTITUTO TECNOLOGICO DE CULIACAN”
   Longitud de S3 = 33

Subcadenas = Se dice que y es subcadena de S si
 existe:
  S=X+Y+Z
Donde:
X y/o Z pueden ser cadenas vacías:
Si X es cadena vacía entonces Y es subcadena Inicial
Si Z es cadena vacía entonces Y es subcadena final
Ejemplo:
                S = “Estrutura de Datos”

“de” es subcadena de S
“Est” es subcadena inicial de S
“Datos” es subcadena final de S
ALMACENAMIENTO DE CADENAS
Estructura de longitud fija:
   En este formato cada cadena tiene un registro de longitud
   fija (generalmente 80 caracteres).

Estructura de longitud variable con un máximo
   fijo:
   Son cadenas de caracteres que contienen un máximo
   definido, pero su longitud puede variar y se usa un
   delimitador especial al final o la longitud actual como
   parte de la cadena.

Estructuras Enlazadas:
   Cada cadena es almacenada en un nodo que contiene un
   enlace a la siguiente cadena.
Ejemplo Almacenar un programa (Texto)


 C PROGRAM PRINTING TWO INTEGERS IN INCREASING ORDER
 READ *, J , K
 IF ( J.LE.K) THEN
    PRINT *,J,K
 ELSE
    PRINT *,K,J
 ENDIF
 STOP
 END
En estructuras de longitud fija:
     200            210             250
 C                 PROGRAM PRINTING ….

     280              290            300
           READ   * , J , K   ……

     360             370           380
       I F(J.LE.K) THEN         ……

     440             …………
                      …
En estructuras de longitud variable con un
    máximo fijo:
    *usando delimitador: $$


1              C      PROGRAM PRINTING TWO IN… $$
2                      READ *, J , K $$
3
                       IF (J.LE.K) THEN $$

4
                              ………………

5                      END $$
En estructuras de longitud variable con un
máximo fijo:
*usando longitud actual


   55             C       PROGRAM … ORDER
   18                     READ *, J , K
   21
                          IF (J.LE.K) THEN

                                ………………

   4                      END
En estructuras Enlazadas:
                Cadena          Liga
Inicio   C   PROGRAM …..

             READ *, J , K

             IF (J.LE.K) THEN
                     ……

             END

Contenu connexe

Tendances

Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaJosé Antonio Sandoval Acosta
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externaEdwin Narváez
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 

Tendances (20)

Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de Búsqueda
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 

En vedette

Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoriaIronAngel
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosCarolina Cols
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractoserwin_alexander
 
Casa de maquinas memoria de estabilidad y calculo estructural - bloque de a...
Casa de maquinas   memoria de estabilidad y calculo estructural - bloque de a...Casa de maquinas   memoria de estabilidad y calculo estructural - bloque de a...
Casa de maquinas memoria de estabilidad y calculo estructural - bloque de a...Boris Soto Matos
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUrban Skate House
 
Sistema operativo windows 2010
Sistema operativo windows 2010Sistema operativo windows 2010
Sistema operativo windows 2010LOVATON15
 
Antecedentes históricos de la administración.ppt modificado
Antecedentes históricos de la administración.ppt modificadoAntecedentes históricos de la administración.ppt modificado
Antecedentes históricos de la administración.ppt modificadoRegina
 
Teoria Clasica de la Administracion
Teoria Clasica de la AdministracionTeoria Clasica de la Administracion
Teoria Clasica de la AdministracionCaarlitos Palomino
 
Teoria Clasica De La Administracion
Teoria Clasica De La AdministracionTeoria Clasica De La Administracion
Teoria Clasica De La AdministracionGestioPolis com
 
Antecedentes historicos de la administracion
Antecedentes historicos de la administracionAntecedentes historicos de la administracion
Antecedentes historicos de la administracionJavier Hernández
 
Desarrollo cognoscitivo Piaget y Vygotsky
Desarrollo cognoscitivo Piaget y VygotskyDesarrollo cognoscitivo Piaget y Vygotsky
Desarrollo cognoscitivo Piaget y VygotskyMichi Muralles
 
Historia y evolucion de la administracion
Historia y evolucion de la administracionHistoria y evolucion de la administracion
Historia y evolucion de la administracionGunBlade
 
Proceso admnistrativo[1]
Proceso admnistrativo[1]Proceso admnistrativo[1]
Proceso admnistrativo[1]V G
 
Escuelas de la administración
Escuelas de la administraciónEscuelas de la administración
Escuelas de la administraciónANEP - DETP
 

En vedette (20)

Ape unidad4
Ape unidad4Ape unidad4
Ape unidad4
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
1.5 memoria dinamica
1.5 memoria dinamica1.5 memoria dinamica
1.5 memoria dinamica
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Casa de maquinas memoria de estabilidad y calculo estructural - bloque de a...
Casa de maquinas   memoria de estabilidad y calculo estructural - bloque de a...Casa de maquinas   memoria de estabilidad y calculo estructural - bloque de a...
Casa de maquinas memoria de estabilidad y calculo estructural - bloque de a...
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Estructura de datos pdf
Estructura de datos pdfEstructura de datos pdf
Estructura de datos pdf
 
Sistema operativo windows 2010
Sistema operativo windows 2010Sistema operativo windows 2010
Sistema operativo windows 2010
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 
Antecedentes históricos de la administración.ppt modificado
Antecedentes históricos de la administración.ppt modificadoAntecedentes históricos de la administración.ppt modificado
Antecedentes históricos de la administración.ppt modificado
 
Teoria Clasica de la Administracion
Teoria Clasica de la AdministracionTeoria Clasica de la Administracion
Teoria Clasica de la Administracion
 
Teoria Clasica De La Administracion
Teoria Clasica De La AdministracionTeoria Clasica De La Administracion
Teoria Clasica De La Administracion
 
Antecedentes historicos de la administracion
Antecedentes historicos de la administracionAntecedentes historicos de la administracion
Antecedentes historicos de la administracion
 
Desarrollo cognoscitivo Piaget y Vygotsky
Desarrollo cognoscitivo Piaget y VygotskyDesarrollo cognoscitivo Piaget y Vygotsky
Desarrollo cognoscitivo Piaget y Vygotsky
 
Historia y evolucion de la administracion
Historia y evolucion de la administracionHistoria y evolucion de la administracion
Historia y evolucion de la administracion
 
Proceso admnistrativo[1]
Proceso admnistrativo[1]Proceso admnistrativo[1]
Proceso admnistrativo[1]
 
Escuelas de la administración
Escuelas de la administraciónEscuelas de la administración
Escuelas de la administración
 
PROCESO ADMINISTRATIVO
PROCESO ADMINISTRATIVOPROCESO ADMINISTRATIVO
PROCESO ADMINISTRATIVO
 

Similaire à Memoria Estatica Dinamica

Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Eudris Cabrera
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Eudris Cabrera
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricesJohanna Marin
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricesJohanna Marin
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacionYsaac Ruiz
 
introducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptxintroducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptxErisbeymarin
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018Eudris Cabrera
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227erikalejo
 
Unidad 2 programación estructurada
Unidad 2 programación estructuradaUnidad 2 programación estructurada
Unidad 2 programación estructuradaRoberth Camana
 
Diego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiǝgo Fǝr
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaAeChm-MgMs-NnNm-OpSe
 
Programación en c++
Programación en c++Programación en c++
Programación en c++andermijan
 

Similaire à Memoria Estatica Dinamica (20)

Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Pascal
PascalPascal
Pascal
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
introducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptxintroducción a la programación utilizando C++.pptx
introducción a la programación utilizando C++.pptx
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Unidad 2 programación estructurada
Unidad 2 programación estructuradaUnidad 2 programación estructurada
Unidad 2 programación estructurada
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
Tema 11
Tema 11Tema 11
Tema 11
 
Manejo de-memoria
Manejo de-memoriaManejo de-memoria
Manejo de-memoria
 
Diego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidluna
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortada
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 

Plus de Valentin Manzano

Mapa conceptual.gestion de riesgos
Mapa conceptual.gestion de riesgosMapa conceptual.gestion de riesgos
Mapa conceptual.gestion de riesgosValentin Manzano
 
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversaAnalisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversaValentin Manzano
 
Cuadro comparativo de llos medios de transmision guiados y no guiados
Cuadro comparativo de llos medios de transmision guiados y no guiadosCuadro comparativo de llos medios de transmision guiados y no guiados
Cuadro comparativo de llos medios de transmision guiados y no guiadosValentin Manzano
 
Cuadro comptv medios de transmision guiados y no guiados
Cuadro comptv  medios de transmision guiados y no guiadosCuadro comptv  medios de transmision guiados y no guiados
Cuadro comptv medios de transmision guiados y no guiadosValentin Manzano
 
Ensayo telecomunicaciones valentin_manzano_crisanto
Ensayo telecomunicaciones valentin_manzano_crisantoEnsayo telecomunicaciones valentin_manzano_crisanto
Ensayo telecomunicaciones valentin_manzano_crisantoValentin Manzano
 
Ensayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoEnsayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoValentin Manzano
 
Ensayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoEnsayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoValentin Manzano
 

Plus de Valentin Manzano (15)

Mapa conceptual.gestion de riesgos
Mapa conceptual.gestion de riesgosMapa conceptual.gestion de riesgos
Mapa conceptual.gestion de riesgos
 
Gestion de servicio de ti
Gestion de servicio de tiGestion de servicio de ti
Gestion de servicio de ti
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
Exposicion.investigacion
Exposicion.investigacionExposicion.investigacion
Exposicion.investigacion
 
Tipos de módeems
Tipos de módeemsTipos de módeems
Tipos de módeems
 
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversaAnalisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
 
Cuadro comparativo de llos medios de transmision guiados y no guiados
Cuadro comparativo de llos medios de transmision guiados y no guiadosCuadro comparativo de llos medios de transmision guiados y no guiados
Cuadro comparativo de llos medios de transmision guiados y no guiados
 
Cuadro comptv medios de transmision guiados y no guiados
Cuadro comptv  medios de transmision guiados y no guiadosCuadro comptv  medios de transmision guiados y no guiados
Cuadro comptv medios de transmision guiados y no guiados
 
Ensayo telecomunicaciones valentin_manzano_crisanto
Ensayo telecomunicaciones valentin_manzano_crisantoEnsayo telecomunicaciones valentin_manzano_crisanto
Ensayo telecomunicaciones valentin_manzano_crisanto
 
Ensayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoEnsayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benito
 
Ensayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benitoEnsayo telecomunicaciones samuel_ballesteros_benito
Ensayo telecomunicaciones samuel_ballesteros_benito
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
Rodrigo
RodrigoRodrigo
Rodrigo
 

Memoria Estatica Dinamica

  • 1. Manejo de memoria 1. Manejo de memoria estática 2. Manejo de memoria dinámica
  • 2. Introducción 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.
  • 3. 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 del ejecución del programa
  • 4. Asignación de Memoria Estática y Dinámica 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.
  • 5. Memoria Estática 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.
  • 6. 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.
  • 7. Método común de asignación de memoria Mapa de memoria Memoria disponible Dirección alta Para el programa Dirección baja Variables estáticas Código del programa
  • 8. El stack de ejecución 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.
  • 9. Ejemplo …. public static int factorial (int n){ Cuales elementos del if (n==0) return 1; programa serán else return n*factorial(n-1); colocados en memoria } estática? public static void main (String[] a){ int a=5; Que elementos se System.out.println(factorial(a)); almacenaran en el } stack en tiempo de ejecución?
  • 10. Es siempre posible, cuando se diseña un programa, conocer la cantidad de memoria necesaria para que este se ejecute correctamente?
  • 11. Memoria Dinámica Define el tamaño del espacio de memoria necesario para un programa en tiempo de ejecución.  El tamaño de los elementos puede cambiar durante la ejecución del programa. Almacena todos los elementos definidos con la palabra new en un programa.
  • 12. Memoria Dinámica Las variables dinámicas son aquellas que crecen de tamaño o se reducen durante la ejecución de un programa. Estas se almacenan en un espacio de memoria llamado heap.  El heap se localiza en la región de memoria que esta encima del stack. Algunos lenguajes de programación permiten que el programador asigne y desasigne manualmente la memoria. Java utiliza un recolector de basura.
  • 13. Uso del heap Para usar el heap un programa requiere: Una o mas variables que refieran el lugar donde se encuentran las variables dinámicas. Un método para obtener memoria (new) Una forma de asignar la dirección de memoria a alguna variable (identificador) Una forma para referirse a la variable dinámica
  • 14. public class Punto { Ejemplo private int x=0; private int y=0; public class UsaPunto { public static int totalPuntos =0; public static void main(String[] args){ Punto (int _x, int _y){ Punto punto1= new Punto(2,1); x=_x; Punto punto2 = new Punto(5,5); y=_y; Punto punto3 = punto1; totalPuntos++; } public void setx(int _x){ Punto[] puntos = {punto1,punto2}; x= _x; System.out.println(Arrays.toString(puntos)); } System.out.println(“Puntos creados “+ Punto.totalPuntos); public String toString (){ } return “(”+x+”,”+y+”)”; } } } punto1 punto3 punto2 Punto Miembros de x=2 x=5 Miembros instancia y=1 y=5 de clase totalPuntos = 0 void setx(int _x) void setx(int _x) Metodos de String toString () String toString () instancia
  • 15. Liberación de memoria La memoria estática se libera cuando el programa finaliza su ejecución. La memoria dinámica se libera de dos formas: Explicita. El programador decide cuando un elemento debe ser eliminado de la memoria. El LP provee mecanismos para liberación de memoria. Implícita. El sistema decide que elementos deben ser eliminados para recuperar el espacio de memoria que ocupan. El sistema cuenta con un “recolector de basura”.
  • 16. The Garbage Collector Algunos lenguajes de programación requieren que el programador mantenga la información de todos los objetos creados en un programa para que estos puedan ser destruidos cuando ya no son requeridos en la ejecución. Este método para manejar la memoria puede resultar tedioso y propicio a errores. Java permite la creación de tantos objetos como sean necesarios sin tener que destriurlos explícitamente cuando ya no son requeridos. El medio ambiente de ejecución de Java cuenta con un mecanismo llamado recolector de basura (garbage collector) que se encarga de eliminar los objetos cuando ya no existen referencias a ellos. El recolector de basura, de manera automática, se ejecuta periódicamente durante la ejecución de un programa.
  • 18. Cadenas de Caracteres Se utilizan secuencias de bits para representar letras y otros símbolos. Alfabéticos Caracteres Dígitos Caracteres Especiales Caracteres de Control… El numero de caracteres que se pueden representar depende de el numero de bits con que se represnta cada carácter. Ejemplo Con 8 bits se pueden representar 256 Caracteres diferentes, donde cada elemento ocupa una secuencia de 8 bits. Una cadena de caracteres esta representada por la concatenación de las hileras de bits que representan los caracteres individuales.
  • 19. Una cadena de caracteres es una secuencia finita de 0 o más caracteres. La longitud de la cadena de caracteres es el número de caracteres que contiene. Cadena Vacía o Nula.- Cero caracteres. Delimitadores: Comúnmente se usan “” o ‘’ dependiendo del lenguaje de programación. Ejemplos: S1=“INSTITUTO” longitud = 9 S2=“TECNOLOGICO DE CULIACAN” longitud = 23
  • 20. Concatenación = Es la operación de unir 2 cadenas para formar una sola. Ejemplo: S3 = S1 + “ ” + S2 S3=“INSTITUTO TECNOLOGICO DE CULIACAN” Longitud de S3 = 33 Subcadenas = Se dice que y es subcadena de S si existe: S=X+Y+Z Donde: X y/o Z pueden ser cadenas vacías: Si X es cadena vacía entonces Y es subcadena Inicial Si Z es cadena vacía entonces Y es subcadena final
  • 21. Ejemplo: S = “Estrutura de Datos” “de” es subcadena de S “Est” es subcadena inicial de S “Datos” es subcadena final de S
  • 22. ALMACENAMIENTO DE CADENAS Estructura de longitud fija: En este formato cada cadena tiene un registro de longitud fija (generalmente 80 caracteres). Estructura de longitud variable con un máximo fijo: Son cadenas de caracteres que contienen un máximo definido, pero su longitud puede variar y se usa un delimitador especial al final o la longitud actual como parte de la cadena. Estructuras Enlazadas: Cada cadena es almacenada en un nodo que contiene un enlace a la siguiente cadena.
  • 23. Ejemplo Almacenar un programa (Texto) C PROGRAM PRINTING TWO INTEGERS IN INCREASING ORDER READ *, J , K IF ( J.LE.K) THEN PRINT *,J,K ELSE PRINT *,K,J ENDIF STOP END
  • 24. En estructuras de longitud fija: 200 210 250 C PROGRAM PRINTING …. 280 290 300 READ * , J , K …… 360 370 380 I F(J.LE.K) THEN …… 440 ………… …
  • 25. En estructuras de longitud variable con un máximo fijo: *usando delimitador: $$ 1 C PROGRAM PRINTING TWO IN… $$ 2 READ *, J , K $$ 3 IF (J.LE.K) THEN $$ 4 ……………… 5 END $$
  • 26. En estructuras de longitud variable con un máximo fijo: *usando longitud actual 55 C PROGRAM … ORDER 18 READ *, J , K 21 IF (J.LE.K) THEN ……………… 4 END
  • 27. En estructuras Enlazadas: Cadena Liga Inicio C PROGRAM ….. READ *, J , K IF (J.LE.K) THEN …… END