PDF de programación - Gestión de Memoria

Imágen de pdf Gestión de Memoria

Gestión de Memoriagráfica de visualizaciones

Publicado el 8 de Mayo del 2019
783 visualizaciones desde el 8 de Mayo del 2019
1,6 MB
111 paginas
Creado hace 15a (30/09/2008)
4

Memoria
Memoria
• Conceptos generales: hard / soft
• Esquemas contiguos de asignación:

– Fragmentación
– Compactación

• Esquemas no contiguos:

– Paginación
– Segmentación
– Segmentación paginada
Memoria Virtual: paginación por
demanda

SOI

1

Conceptos generales
Conceptos generales
hardware
hardware

Jerarquía de
memoria:

Las cachés.
Tiempo efectivo
de acceso.

SOI

2

Jerarquía de Memoria
Jerarquía de Memoria

Los computadores usan una jerarquía de
memoria similar a la que muestra la figura.
Almacén
Auxiliar

Memoria
Principal

CPU

Caché

Hardware

Registros

Caché(s)
Hardware

Bus de memoria

Bus de E/S

+ rápida en tiempo acceso –

– Tamaño +

SOI

3

Cachés
Cachés

Caché –contiene copia de instrucción/dato
que son accedidos +rápido que el original.
Hacer los casos frecuentes eficientes, los
caminos infrecuentes no importan tanto.
Denominamos:
• Acierto de caché:
item en caché.
CPU
• Fallo de caché:
no está en caché

operación completa.

Memoria

Acierto

I/D

Fallo

Caché

SOI

4

Localidad
Localidad

Las cachés “funcionan” porque explotan las
localidad de las referencias del código,
datos, y pila de los programas.
Tipos de localidad:

Espacial: si un item es referenciado, las
direcciones próximas a él tienden
también a ser referenciadas.
Temporal: si un item referenciado, tiende
de nuevo a ser referenciado en breve.

SOI

5

Tiempo de Acceso
Tiempo de Acceso
Efectivo
Efectivo

Cuando usamos cachés ¿Cuánto no cuesta
acceder a memoria? Denominamos …
Tiempo efectivo de acceso (TAE) al tiempo
medio de acceso a una celda de memoria:

TAE = p*ta + (1-p)*tf
TAE = p*ta + (1-p)*tf
= probabilidad de acierto.
= tiempo de acceso si hay acierto.

Donde: p
ta
1-p = probabilidad de fallo.
tf

= tiempo de acceso si hay fallo.

SOI

6

Conceptos generales
Conceptos generales
software
software

Requisitos de la gestión de
memoria.
Niveles de gestión de
memoria.
Compilación de programas:

Enlace y carga.

Espacios de direcciones:
lógico y físico:

Traducción de direcciones
Apoyo hardware a la
traducción: la MMU

SOI

7

Requisitos de la gestión
Requisitos de la gestión
de memoria (i)
de memoria (i)

El SO asigna memoria a los procesos para su
ejecución, garantizando:

Protección:
Un proceso no accede a memoria de otro.
Diferentes módulos del programa deben
tener diferentes permisos de acceso.
Compartición:
De datos/código entre procesos.
Permite el ahorro de memoria.
Reubicación: En sists. multiprogramados,
un programa debe poder cargarse en
diferentes zonas de memoria.

s
o
t
s
e
u
p
a
r
t
n
o
C

SOI

8

Requisitos de la gestión
Requisitos de la gestión
de memoria (y ii)
de memoria (y ii)

El SO debe esconder la

organización física (jerarquía de niveles,
estructura no lineal) de la memoria
física.
para que el usuario tenga una visión
lógica de la memoria como una matriz
lineal. Además permita la
estructuración de un programa en
módulos.

SOI

9

Niveles de gestión
Niveles de gestión
de memoria
de memoria

Existen dos niveles:

Nuestro
objetivo

Gestor de memoria
del SO -asigna
porciones de
memoria al proceso
Gestor de memoria
del proceso -gestiona
estas porciones (p. ej.
a través de malloc y
free).

Proceso
Gestor de
memoria del
proceso
brk

Gestor de
memoria
del SO
SO

SOI

10

Procesamiento
Procesamiento
de un programa
de un programa

Etapas por las que pasa un programa

antes de cargarse en memoria.

Bibliotecas
de sistema
dinámicas

Programa
Ejecutable

Programa
Absoluto

Cargador

11

Módulos
Fuentes

Traductor

Módulos
Objetos

Editor de
Enlaces

Bibliotecas
de sistema

SOI

Compiladores, enlazadores
Compiladores, enlazadores
y cargadores
y cargadores

Compiladores y ensambladores: Sus
salidas contienen direcciones reubicables
y referencias externas.
Enlazadores: resuelven las referencias
externas de las subrutinas compiladas o
ensambladas por separado.
Cargadores: ligan direcciones reubicables
a direcciones absolutas.

SOI

12

Ligadura de direcciones
Ligadura de direcciones

Ligadura de direcciones - correspondencia
entre direcciones, de instrucciones y datos,
de nuestro programa con las direcciones
de memoria.
Es un esquema de designación; una
función: T: INT -> INT

Memoria

física

Espacio de
direcciones

ligadura

main()
{

int i;

i=0;
}

SOI

celda i-ésima

13

Enlazado y carga
Enlazado y carga

Módulos objeto (.o)

Enlazado

Carga

Cabecera
Código

Datos inicializados
Tabla de símbolos
Info. reubicación

Cabecera
Código

Datos inicializados
Tabla de símbolos
Info. reubicación

Módulo de carga

Cabecera

Tamaño del código,
datos inicianizados
y no inicializados

Código

Datos

Bibliotecas

Biblioteca estática

Biblioteca dinámica
(carga o ejecución)

Proceso en memoria

Código

Datos

Inicializados

Datos no
inicializados

Heap

Pila

14

o
c
s
D

i

SOI

¿Cuándo realizar
¿Cuándo realizar
la ligadura? (i)
la ligadura? (i)

Tiempo de compilación:

El compilador genera código absoluto.
Para ello debemos conocer las
direcciones de memoria donde se va a
cargar el programa.
ß Hay que recompilar el programa si se
cambia en dirección de inicio.

SOI

15

Cuando hacer ligadura (ii)
Cuando hacer ligadura (ii)

Tiempo de carga:

Se genera código reubicable si no se
conoce la ubicación en memoria en
tiempo de compilación.
El procesador debe disponer al menos
de un registro de reubicación, que
contendrá la dirección de inicio del
programa. El SO carga el programa en
memoria y ajusta el registro de
reubicación.

SOI

16

Cuando hacer ligadura (iii)
Cuando hacer ligadura (iii)

Tiempo de ejecución:

Si la ligadura se retrasa hasta la
ejecución del proceso, este puede
moverse durante su ejecución de una
zona de memoria a otra.
Necesitamos soporte hardware para la
correspondencia de direcciones. Lo
veremos para el caso de segmentación
y paginación.

SOI

17

Ligaduras dinámicas
Ligaduras dinámicas

Para programas con mucho código, el
módulo de carga presenta dos problemas:

Su tamaño en disco es grande.
Su tiempo de carga es elevado.

El SO mitiga el problema mediante las
ligaduras dinámicas. Para ello:
Retrasa la carga de un módulo hasta
que este es necesario – carga dinámica
(o enlace dinámico en tiempo de carga).
Retrasar el propio enlace hasta la
ejecución – enlace dinámico (o enlace
dinámico en tiempo de ejecución).

SOI

18

Ligaduras dinámica (y ii)
Ligaduras dinámica (y ii)

Carga dinámica:
Mejor uso del espacio
de memoria. Las
rutinas no usadas no
se cargan.
No necesita soporte
especial del SO;
implementado en el
diseño del programa o
biblioteca.
No solventa el
problema del tiempo
de carga.

Enlace dinámico:

El enlazador inserta
tocones (stubs) para
localizar la biblioteca
residente adecuada.
El SO comprueba que la
rutina está en el
espacio de direcciones
del proceso.
Más costosa que la
carga estática pero
ahorra espacio y el
arranque más rápido.

SOI

19

Espacio lógico y
Espacio lógico y
espacio físico
espacio físico

La necesidad de poder reubicar un
programa en memoria, hace necesario
separar el espacio de direcciones generadas
por el compilador, espacio lógico o virtual,
del espacio físico en el que se carga, el
espacio de direcciones físicas.
Denominamos:

Dirección lógica - la generada por la
CPU; también conocida como virtual.
Dirección física - dirección que se pasa
al controlador de memoria.

SOI

20

Traducción de
Traducción de
direcciones
direcciones

La separación de espacios me obliga a
realizar una traducción de direcciones:

Dirección lógica

Dirección física

Caché
virtual

CPU

Caja de

Traducción

(MMU)

Caché
real

Memoria
Física

L/E datos

(sin traducir)

SOI

21

Unidad de Gestión
Unidad de Gestión
de Memoria
de Memoria

MMU (Memory Management Unit) – disposi-
tivo hardware que traduce direcciones
virtuales en direcciones físicas. También
implementa protección.
El hardware determina la forma en la que el
SO gestiona la MMU.
En el esquema MMU más simple, el valor del
registro de reubicación se añade a cada
dirección generada por el proceso de usuario
al mismo tiempo que es enviado a memoria.

SOI

22

MMUMMU

Memoria

Controlador
de memoria

Microprocesador

CPU

Dirección

virtual

MMU

“Violación de
acceso”:
- No presente
- Usuario/kernel
- Escritura
- Lectura
- Ejecución

Dirección

física

Excepción

Bus instrucciones/datos

SOI

23

Esquemas simples de
Esquemas simples de
asignación
asignación

Gestión de memoria en
sists. multiprogramados:

Asignación estática.
Asignación dinámica.

Intercambio
Fragmentación
Compactación

SOI

24

Organización contigua
Organización contigua
del almacenamiento
del almacenamiento

En este apartado veremos esquemas de
asignación contigua, es decir, la memoria
principal asignada a un proceso es un
único bloque de memoria contigua.
En el tema siguiente, veremos esquemas
de asignación no contigua, es decir,
permitimos que el programa este dividido
en bloques, o segmentos, que se pueden
colocar en zonas no necesariamente
contiguas de memoria principal.

SOI

25

Particiones
Particiones

Dividimos la memoria en particiones:

El SO ocupa permanentemente una región
de memoria.
El resto de la memoria se particiona entre
los procesos de forma:

Estática – número fijo de particiones;
pueden ser de igual o diferente tamaño.
Dinámica – particiones de diferente
tamaño y número.

El SO mantiene información sobre las
particiones asignadas y las libres (huecos).

SOI

26

Asignación en sists. de
Asignación en sists. de
particiones variables
particiones variables

Para cargar proceso en memoria se le
asigna un hueco suficientemente grande
como para albergarlo.
¿Cómo satisfacer una petición de tamaño
n ? Asignar según:
Primer encaje – Asignar el primer hueco
lo bastante grande.
Mejor encaje – Asignar el hueco más
pequeño lo bastante grande; produce el
hueco sobrante menor.

SOI

27

El Primer encaje y
El Pr
  • Links de descarga
http://lwp-l.com/pdf15870

Comentarios de: Gestión de Memoria (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad