Está en la página 1de 11

Conceptos de

Algoritmos
Datos y Programas

Clase 8-3
CADP – TEMAS

Alocación de memoria

Cálculo en la utilización de la memoria

Clase 8-3
CADP – MEMORIA DE UN PROGRAMA
En rasgos generales la memoria necesaria para la ejecución de
MEMORIA un programa puede dividirse en dos.
ESTATICA

MEMORIA ESTATICA: a modo de simplicidad


consideraremos sólo las variables locales, variables
MEMORIA globales de programa y constantes.
DINAMICA

MEMORIA DINAMICA: a modo de simplicidad


consideraremos sólo cuando en la ejecución de un
programa se reserva o libera memoria.
Cómo ?
j a m o s
Clase 8-3
traba
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno; boolean, (1 byte)
Const integer (4 bytes)
real, (8 bytes)
DF = 10; string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
registro, (suma de sus campos)
puntero = ^real; arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)

persona = record
CALCULO DE MEMORIA ESTATICA
nombre:string[20];
dni:integer; DF = 4 bytes
end; p = 4 bytes
puntPer = ^persona; q = 4 bytes 41 bytes
per = 4 bytes
Var perso = 21 + 4 = 25 bytes
p:puntero; q:puntero2;
per: puntPer; CALCULO DE MEMORIA DINAMICA
perso:persona;
Como no hay operaciones de new()
Begin ni dispose(), no se modifica la
Clase 8-3
End. memoria dinámica 0 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno; boolean, (1 byte)
Const integer (4 bytes)
real, (8 bytes)
DF = 10; string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
registro, (suma de sus campos)
puntero = ^real; arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)

persona = record
CALCULO DE MEMORIA ESTATICA
nombre:string[20];
dni:integer; DF = 4 bytes
end; p = 4 bytes
puntPer = ^persona; q = 4 bytes 41 bytes
per = 4 bytes
Var perso = 21 + 4 = 25 bytes
p:puntero; q:puntero2;
per: puntPer; CALCULO DE MEMORIA DINAMICA
perso:persona;
Begin Al hacer un new se reserva
new(p); memoria para el contenido de p
Clase 8-3
End. 8 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno;
boolean, (1 byte)
Const integer (4 bytes)
DF = 10; real, (8 bytes)
string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
puntero = ^real; registro, (suma de sus campos)
arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)
persona = record
nombre:string[20]; CALCULO DE MEMORIA ESTATICA
dni:integer;
end; DF = 4 bytes
puntPer = ^persona; p = 4 bytes
q = 4 bytes 41 bytes
Var per = 4 bytes
p:puntero; q:puntero2; perso = 21 + 4 = 25 bytes
per: puntPer;
perso:persona; CALCULO DE MEMORIA DINAMICA
Begin
new(p); Al hacer un new se reserva
new(per); memoria para el contenido de p y
Clase 8-3 End. per (8 + 25) 33 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno;
boolean, (1 byte)
Const integer (4 bytes)
DF = 10; real, (8 bytes)
string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
puntero = ^real; registro, (suma de sus campos)
arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)
persona = record
nombre:string[20];
CALCULO DE MEMORIA ESTATICA
dni:integer; DF = 4 bytes
end; p = 4 bytes
puntPer = ^persona; q = 4 bytes 41 bytes
Var per = 4 bytes
p:puntero; q:puntero2; perso = 21 + 4 = 25 bytes
per: puntPer;
perso:persona; CALCULO DE MEMORIA DINAMICA
Begin
new(p);
Al hacer un new se reserva
new(per); memoria para el contenido de p y
read (per^.nombre); per (8 + 25), el read NO altera
Clase 8-3 End. la memoria 33 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno;
boolean, (1 byte)
Const integer (4 bytes)
DF = 10; real, (8 bytes)
string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
puntero = ^real; registro, (suma de sus campos)
arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)
persona = record
nombre:string[20]; CALCULO DE MEMORIA ESTATICA
dni:integer; DF = 4 bytes
end; p,p1 = 8 bytes
puntPer = ^persona; q = 4 bytes 45 bytes
per = 4 bytes
Var perso = 21 + 4 = 25 bytes
p,p1:puntero; q:puntero2;
per: puntPer; CALCULO DE MEMORIA DINAMICA
perso:persona;
Begin Al hacer un new se reserva
new(p); memoria para el contenido de p,
p1:= p; la asignación de direcciones NO
Clase 8-3 End. altera la memoria 8 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno;
boolean, (1 byte)
Const integer (4 bytes)
DF = 10; real, (8 bytes)
string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
puntero = ^real; registro, (suma de sus campos)
arreglos (dimFísica*tipo elemento)
puntero2 = ^char; puntero (4 bytes)
persona = record
nombre:string[20]; CALCULO DE MEMORIA ESTATICA
dni:integer; DF = 4 bytes
end; p = 4 bytes
puntPer = ^persona; q = 4 bytes 41 bytes
per = 4 bytes
Var
perso = 21 + 4 = 25 bytes
p:puntero; q:puntero2;
per: puntPer; CALCULO DE MEMORIA DINAMICA
perso:persona;
Begin Al hacer un new se reserva
new(p); memoria para el contenido de p,
dispose(p); luego al hacer dispose(p) se
Clase 8-3 End. libera la memoria 0 bytes
CADP – MEMORIA
Program uno;
DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
boolean, (1 byte)
Const integer (4 bytes)
DF = 10; real, (8 bytes)
string, (tamaño + 1 byte)
Type subrango, (depende el tipo)
puntero = ^real; registro, (suma de sus campos)
puntero2 = ^char; arreglos (dimFísica*tipo elemento)
puntero (4 bytes)
persona = record
nombre:string[20]; CALCULO DE MEMORIA ESTATICA
dni:integer; DF = 4 bytes
end; p = 4 bytes
puntPer = ^persona; q = 4 bytes 41 bytes
per = 4 bytes
Var perso = 21 + 4 = 25 bytes
p:puntero; q:puntero2;
per: puntPer; CALCULO DE MEMORIA DINAMICA
perso:persona;
Begin Al hacer un new se reserva
new(p); memoria para el contenido de p,
p:= nil; luego al hacer nil NO se libera
Clase 8-3 End. la memoria 8 bytes
CADP – MEMORIA DE UN PROGRAMA Tabla de ocupación:
char, (1 byte)
Program uno;
boolean, (1 byte)
Type integer (4 bytes)
puntero = ^real; real, (8 bytes)
string, (tamaño + 1 byte)
puntero2 = ^char; subrango, (depende el tipo)
persona = record registro, (suma de sus campos)
arreglos (dimFísica*tipo elemento)
nombre:string[20]; puntero (4 bytes)
dni:integer;
end;
punPer = ^persona; CALCULO DE MEMORIA ESTATICA
Var p = 4 bytes
p,p1:puntero; p1 = 4 bytes 12 bytes
per: punPer;
per = 4 bytes
Begin
new(per); CALCULO DE MEMORIA DINAMICA
new(p); new(per) = 25 bytes
p^:= 8; new(p) = 8 bytes
p1:= p; 25 bytes
dispose(p1) = -8 bytes
dispose(p1);
Clase 8-3 End.

También podría gustarte