8/18/2019 10 Gestion de Memoria
1/44
Gestión de memoria
Rina Arauz
8/18/2019 10 Gestion de Memoria
2/44
Gestión de
Definición
La memoria es una amplia tabla de datos, cada unode los cuales con su propia dirección
Tanto el tamaño de la tabla (memoria), como el delos datos incluidos en ella dependen de cadaarquitectura concreta
Para que los programas puedan ser ejecutados esnecesario que estén cargados en memoria principal
La inormación que es necesario almacenar de
modo permanente se guarda en dispositi!os dealmacenamiento secundarios también conocidoscomo memoria secundaria
8/18/2019 10 Gestion de Memoria
3/44
Gestión de
Localidad
Los procesos tienden a concentrar sus reerencias en un
inter!alo de tiempo en un subconjunto de su espacio de
direcciones
"eg#n $onald %nut& '*+
Los programas, normalmente, tienen un perfil muy desigual, con unos
pocos picos agudos... También encontramos que menos del 4 por 100 de
un programa, generalmente, representa más de la mitad de su tiempo de
ejecución
-s una propiedad emp.rica m/s que teórica
La localidad puede ser de dos tipos
Localidad espacial
Localidad temporal
8/18/2019 10 Gestion de Memoria
4/44
Gestión de
Localidad espacial y temporal
Localidad espacial una !ez &ec&a una reerencia a una posición dememoria, es mu0 probable que las localidades cercanas sean tambiénreerenciadas1
-n apo0o a esta obser!ación encontramos
-jecución secuencial del código
Tendencia de los programadores a colocar pró2imas entre s.las !ariables relacionadas
Acceso a estructuras de datos de tipo matriz o pila Localidad temporal una !ez &ec&a una reerencia a una posición de
memoria en un determinado instante t, es mu0 probable que esamisma posición sea accedida en un instante t 3 ∆t
4ustiicada por 5ormación de ciclos
"ubrutinas
Pilas
8/18/2019 10 Gestion de Memoria
5/44
Gestión de
Jerarquía de memoria La jerarquización de la memoria es un intento de aumentar el
rendimiento de los computadores Para ello se apro!ec&an los a!ances tecnológicos en el diseño
de memorias 0 la localidad de los programas 6emorias r/pidas tienen un coste ele!ado 0 una capacidad
pequeña
6emorias lentas son baratas 0 tienen una capacidad alta
7$8R96 8 7intas
$iscos magnéticos
6emoria principal
7ac&é e2terna L:
7ac&é on-chip L
Registros internos
del procesador
6a0or rapidez
menor tamaño 0
ma0or precio
6enor rapidez
ma0or tamaño 0
menor precio
8/18/2019 10 Gestion de Memoria
6/44
Gestión de
Fragmentación
5ragmentación ; memoria desapro!ec&ada
Puede ser de dos tipos, interna 0 e2terna
5ragmentación interna
"e debe a la dierencia de tamaño entre la partición de
memoria 0 el objeto residente dentro de ella "e produce siempre que se trabaje con bloques de
memoria de tamaño ijo
"i el tamaño del objeto no coincide con el de la partición,
queda una zona que no se puede apro!ec&ar
5ragmentación e2terna
"e debe al desapro!ec&amiento de memoria entre
particiones
8/18/2019 10 Gestion de Memoria
7/44
Gestión de
Direcciones Simbólicas/Físicas
Programa
7ompilador o-nsamblador
Programa-nlazador
Programa
9tros
objetos
8/18/2019 10 Gestion de Memoria
8/44
Gestión de
Reubicación
La reubicación &ace reerencia al &ec&o de poder localizar a
los programas para su ejecución en dierentes zonas de
memoria
Reubicación est/tica
"e realiza antes o durante la carga del programa enmemoria
Los programas no pueden ser mo!idos una !ez iniciados
Reubicación din/mica
Los programas pueden mo!erse en tiempo de ejecución
-l paso de dirección !irtual a dirección real, se realiza entiempo de ejecución
=ecesita &ard>are adicional (66?)
8/18/2019 10 Gestion de Memoria
9/44
Gestión de
-squemas de gestión de memoria
6/quina desnuda
6onitor monol.tico o residente
Asignación de memoria particionada contigua Asignación de memoria particionada no contigua
6emoria !irtual
8/18/2019 10 Gestion de Memoria
10/44
Gestión de
Mquina desnuda
-s la manera m/s sencilla de gestionar la memoria
no e2iste ning#n gestor
-l usuario controla toda la memoria
-l sistema no porporciona ning#n ser!icio
?suario
6emoria
8/18/2019 10 Gestion de Memoria
11/44
Gestión de
!o
Monitor monolítico o residente
Protección
7P? $irecció[email protected]
$irección l.mite
-rror de direccionamiento
Sí
M"M#R$%
M#!$R
8/18/2019 10 Gestion de Memoria
12/44
Gestión de
Memoria particionada contigua
"e asigna una partición de memoria a cada proceso
Protección registros l.mite o base8l.mite 5ragmentación e2terna compactación
MF& M'&"istema multiprogramado con
tamaño 0 n#mero de particiones
ijo
"istema multiprogramado con
tamaño 0 n#mero de particiones
!ariable
5ragmentación interna 0 e2terna 5ragmentación e2terna
$es!entaja en la asignación
din/mica de memoria
Requiere algoritmos de gestión de
memoria m/s complejos
Problema intercambio de
trabajos con -" pendiente
Bentaja en la asignación din/mica
de memoria
8/18/2019 10 Gestion de Memoria
13/44
Gestión de
Sí
Registros límite
=o soporta reubicación din/mica
7P?
!o
()
L.miteinerior
-rror de direccionamiento
M"M#R$%
*rograma +
L.miteinerior
,)
!o
Sí
8/18/2019 10 Gestion de Memoria
14/44
Gestión de
Sí
!o
Registros base-límite
"oporta reubicación din/mica
7P? (
L.mite
-rror de direccionamiento
M"M#R$%
*rograma +
8/18/2019 10 Gestion de Memoria
15/44
Gestión de
&abla de descripción de particiones
"istema operati!o
Pi
Pj
PC
D% DD% A"EF=A$A
DD% GDD% LE
8/18/2019 10 Gestion de Memoria
16/44
Gestión de
Memoria particionada no contigua -squemas
"egmentación
Paginación
"egmentación paginada Paginación segmentada
8/18/2019 10 Gestion de Memoria
17/44
Gestión de
Segmentación
-s un esquema de gestión de memoria con !arias !entajas
Permite que los bloques de un proceso (código, datos,pila, $LLs, etc1) puedan estar situados en /reas dememoria no contiguas
"uministra reubicación din/mica
Aporta protección 0 uso compartido Las direcciones en estos sistemas tienen dos componentes
n#mero de segmento 0 offset
-n el JD2JK
mov eax, ds:esi
Para localizar el dato se utiliza el selector $" 0 eldesplazamiento "E
Los segmentos pueden tener tamaños dierentes
8/18/2019 10 Gestion de Memoria
18/44
Gestión de
Segmentación esquema lógico0
6emoria
.sica7ódigo
"spacio de direccionamiento 1irtual "spacio de direccionamiento real
$/tos
$atos
compartidos
Pila
7ódigo
$/tos
$atos
compartidos
Pila
66?
8/18/2019 10 Gestion de Memoria
19/44
Gestión de
Segmentación 230
Procesador S D
4ase 5
4ase 6
4ase 7
4ase 8
4ase 9
4ase :
4ase ;
4ase <
S
6emoria
Límite 5
Límite 6
Límite 7
Límite 8
Límite 9
Límite :
Límite ;
Límite <
&abla de segmentos
+
=== "rror >>>
4ase 9
D
R*4&S
RL&S
8/18/2019 10 Gestion de Memoria
20/44
Gestión de
?uestiones
MNué ocurre si la tabla de segmentos es mu0 grandeO
"olución se guarda en memoria apuntada por un registro
base (RP
8/18/2019 10 Gestion de Memoria
21/44
Gestión de
*rotección y uso compartido
Protección basada en los registros base 0 l.mite
"e pueden establecer distintos derec&os de acceso(r>2) a cada segmento del proceso
-stos derec&os suelen guardarse en la tabla de
segmentos de cada proceso -l uso compartido es uno de los argumentos m/s
importantes en a!or de la segmentación M7ómo pueden dos o m/s procesos compartir un
segmentoO
8/18/2019 10 Gestion de Memoria
22/44
Gestión de
'enta@as e incon1enientes
Bentajas
-limina de ragmentación interna
Permite el crecimiento din/mico de los segmentos
Aporta protección 0 uso compartido
Permite un enlace 0 carga din/micos Encon!enientes
=ecesita compactación de memoria
-n sistemas antiguos se ijaba un tamaño m/2imo ijo para
cada segmento
=ecesita &ard>are adicional
Los bloques de memoria no son m#ltiplos enteros de los
bloques que se traen desde el disco
8/18/2019 10 Gestion de Memoria
23/44
Gestión de
*aginación
-s un esquema de gestión de memoria en el que laasignación de memoria no es contigua
-l espacio de direcciones !irtuales de un procesoest/ di!idido en bloques de tamaño ijo llamados
p/ginas La memoria .sica se di!ide en marcos de p/gina
La dirección !irtual consta de un n#mero de p/gina!irtual 0 un desplazamiento
La traducción de direcciones se lle!a a cabo con laa0uda de la tabla de p/ginas (T$P)
La T$P se constru0e en tiempo de carga delproceso en memoria
8/18/2019 10 Gestion de Memoria
24/44
Gestión de
*aginación esquema lógico0
6emoria
.sica7ódigo
"spacio de direccionamiento 1irtual "spacio de direccionamiento real
66?
A
*ginas
Marcos
<
7
$
-
5
F A
<
7
$
8/18/2019 10 Gestion de Memoria
25/44
Gestión de
*aginación 230
Procesador * D
Marco 5
Marco 6
Marco 7
Marco 8
Marco 9
Marco :
Marco ;
Marco <
*
6emoria
&abla de pginas
Marco 9
D
R*4&*
RL&*
M D
8/18/2019 10 Gestion de Memoria
26/44
Gestión de
?onsideraciones
"i se piden sQ posiciones de memoria
n p/ginas asignadas;'sp+ p tamaño de la p/gina
"i el cociente anterior no es entero se produce la
llamada ragmentación de p/gina Los marcos libres se suelen mantener en una lista
enlazada
"i la T$P es mu0 grande, ésta se debe mantener
en memoria principal Para acelerar los accesos se emplean memorias
asociati!as (TL
8/18/2019 10 Gestion de Memoria
27/44
Gestión de
*aginación con &L4s 230
Marco 5
Marco 6
Marco 7
Marco 8
Marco 9
Marco :
Marco ;
Marco <
*
6emoria
&abla de pginas
Marco 9
D
R*4&*
RL&*
M D
&L4
%
+'
?
*
&
S
R
7
68
8/18/2019 10 Gestion de Memoria
28/44
Gestión de
*rotección y uso compartido
Protección basada en bits de acceso de lasentradas de la T$P
7ompartir p/ginas es bastante sencillo
8/18/2019 10 Gestion de Memoria
29/44
Gestión de
*roblemas de la paginación
5ragmentación interna (0a comentado)
"i el n#mero de p/ginas es grande, la zona dememoria ocupada por la T$P puede ser e2cesi!a
-jemplo
Tamaño de cada entrada de la T$P H b0tes -spacio de direccionamiento G: bits
P/ginas de H %b0tes
Tamaño de la T$P H 6b0tes
"olución Tabla de p/ginas paginada
"e emplea un directorio de p/ginas
8/18/2019 10 Gestion de Memoria
30/44
Gestión de
*aginación de la &D*
* D
&abla 5
&abla 6
&abla 7
&abla 8&abla 9
&abla :
&abla ;
&abla <
Dir
6emoria
Directorio de pginas
D
R*4&*
RL&*
M D
Dir
&abla de pginas
Dirección 1irtual
Marco 5
Marco 6
Marco 7
Marco 8Marco 9
Marco :
Marco ;
Marco <
*
8/18/2019 10 Gestion de Memoria
31/44
Gestión de
Segmentación paginada
-s posible combinar los esquemas de paginación 0segmentación
$e este modo podemos obtener las !entajas deambos a costa de complicar el S
7ombinaciones "egmentación paginada
Paginación segmentada (no se emplea en lapr/ctica)
-n la segmentación paginada, cada segmento sedi!ide en p/ginas
-n la paginación segmentada, cada p/gina se di!ideen segmentos
8/18/2019 10 Gestion de Memoria
32/44
Gestión de
Segmentación paginada 230
S
6emoria
&abla de segmentos
R*4&S
RL&S
* D
Dirección 1irtual
S
&abla de pginas+
M D
4ase de la tabla
de pginas
8/18/2019 10 Gestion de Memoria
33/44
Gestión de
Memoria cacC
Ententa reducir el desajuste entre las !elocidadesdel procesador 0 de las memorias
"u empleo se justiica por la localidad de losprogramas
-s una solución de compromiso entre mejora derendimiento 0 precio
La idea de emplear memorias cac&é consiste enmantener en ellas los datos o instrucciones que elprocesador necesita en cada momento
"i los datos o instrucciones se encuentran en lacac&é el acceso en mu0 r/pido, si no es as., losdatos se traen desde memoria principal en bloques
8/18/2019 10 Gestion de Memoria
34/44
Gestión de
DiseEo de la cacC
A los bloques de transerencia entre memoriaprincipal 0 memoria cac&é se les denomina l.neas o!.as de cac&é
$ecisiones de diseño
MNué tamaño deben tener las l.neas de cac&éO M7ómo se sabe si un bloque est/ en la cac&éO
M7ómo se establece la correspondencia entrel.neas de cac&é 0 bloques de 6PO
MNué &acer cuando una l.nea de cac&é esmodiicadaO
MNué estrategia se debe emplear cuando esnecesario reemplazar una l.nea de cac&éO
8/18/2019 10 Gestion de Memoria
35/44
Gestión de
Memoria cacCe
Par/metros de un sistema con memoria cac&e
*olítica de ubicación
Las pol.ticas de ubicación establecen la correspondencia entrelos bloques de la 6P 0 de la 67a
*olítica de etracción
$eterminan cu/ndo 0 qué inormación se en!.a de 6P a 67a
*olítica de reemplao
$eterminan cu/ndo 0 qué bloque se sustitu0e de las 67a conpol.tica de ubicación asociati!a
*olítica de actualiación
$eterminan el instante en que se actualiza la inormación en 6Pcuando se produce una escritura en 67a Problema deco&erencia de la 67a
8/18/2019 10 Gestion de Memoria
36/44
Gestión de
*olíticas de ubicación
Las políticas de ubicación establecen la correspondenciaentre los bloques de la M* y de la M?a
Las pol.ticas de ubicación m/s importantes son
$irecta
Asociati!a Asociati!a por conjuntos
"@emplo de aplicaciónH
-stablecer la correspondencia entre 6P 0 67a en un sistemacon $irección .sica :D bits Tamaño de bloque J b0tes ; :G b0tesbloque
7apacidad 67a %b0tes; :D b0tes = bloques 67a ;
7apacidad 6P 6b0te ; ::D b0tes = bloques de 6P ;
(:J::
: *G
D
==
D*:1G::
: *G
:D
==
8/18/2019 10 Gestion de Memoria
37/44
Gestión de
*olíticas de ubicación
?orrespondencia directa $0H
Memoria principal
8/18/2019 10 Gestion de Memoria
38/44
Gestión de
?orrespondencia directa $$0H7onsiste en &acer corresponder a todo
bloque i de 6P el bloque i mod de
67a, donde es el n#mero total de
bloques de la 67a
?na dirección en 67a consta de
-tiqueta= de bloque de 67a
Posición en el bloque (palabra)
"olución
:G b0tesbloque G bits para la posición
dentro del bloque
:* bloques de 67a * bits para cada
bloque
D bits para
cada etiqueta
(D
*
(*
:67abloques:
6Pbloques:=
*olíticas de ubicación
'enta@as La lectura permite el acceso
simult/neo al directorio 0
a la palabra dentro del
bloque de 67a Algoritmo de reemplazo tri!ial
$ncon1enienteH Encremento de la tasa de allos
de la 67a, si dos bloques de6P, que corresponden a unmismo bloque de 67a, seutilizan de orma alternati!a
8/18/2019 10 Gestion de Memoria
39/44
8/18/2019 10 Gestion de Memoria
40/44
Gestión de
Memoria cacCe
*olíticas de ubicación?orrespondencia asociati1a $$0H
7ualquier bloque de 6P puedeubicarse en cualquiera de los bloquesde la cac&e
?na dirección en 67a consta de -tiqueta
Posición en el bloque (palabra)
SoluciónH
:G b0tesbloque G bits para laposición dentro del bloque
:* bloques de 6P * bitspara cada etiqueta
'enta@aH
5le2ibilidad (permite la
implantación de gran
!ariedad de algoritmos dereemplazo)
$ncon1enienteH
7oste de las
comparaciones
8/18/2019 10 Gestion de Memoria
41/44
8/18/2019 10 Gestion de Memoria
42/44
Gestión de
*olíticas de ubicación
7onsiste en di!idir la 67a en ?
conjuntos de 4 bloques cada uno
"e aplica
7orrespondencia directa a ni!el de
conjunto
7orrespondencia asociati!a a ni!el
de bloque
?n bloque i de 6P puede ubicarse en
cualquier bloque del conjunto i mod ?
de 67a
?na dirección en 67a consta de
-tiqueta,
7onjunto 0
Posición en el bloque
?orrespondencia asociati1a por con@untos $$0H
Solución (asignando : bloqs1cjto1)H
:G b0tesbloque G bits para la
posición dentro del bloque
:K conjuntos en 67a K bits para
cada conjunto bits para cada etiqueta
-l coste de la b#squeda depende
del n#mero 0 longitud de las
etiquetas que se tienen que
comparar simult/neamente
'enta@aH
Reduce el coste de la totalmente
asociati!a proporcionando un
rendimiento cercano a esta #ltima
8/18/2019 10 Gestion de Memoria
43/44
Gestión de
Memoria cacC
7o&erencia Mqué ocurre si un dato de la cac&é se modiicaO -n tal caso se produce una inconsistencia entre los
contenidos memoria cac&é 0 memoria principal
Problema gra!e en sistemas multiprocesador
-strategias de actualización Write back
Write through
También cabe considerar las estrategias de sustitución de
l.neas de cac&é cuando e2isten !arias !.as por conjunto
=ormalmente se emplean cac&és separadas parainstrucciones 0 para datos
8/18/2019 10 Gestion de Memoria
44/44
"@ercicio
Sea una computadora que dispone de una memoria principalentrelazada y memorias caché separadas con las siguientes
características:
El tamao de un bloque de memoria es de !" bytes
Memoria principal:
#apacidad: "$% &bytes
Memoria caché:
'sociati(a por con)untos* estructurada segn:
Memoria caché de instrucciones: , bytes con .
bloques por con)unto/ Memoria caché de datos: , bytes con " bloques por
con)unto/