Você está na página 1de 19

Tema 9: Memoria Virtual Tema 9: Memoria Virtual.

1. Gestin de memoria.
2. Memoria virtual.
3 M i i t l i d 3. Memoria virtual paginada.
4. Memoria virtual segmentada.
5. Ejemplo
1
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Gestin de memoria
El sistemadememoriavirtual delosactualescomputadoressurgiparaliberar al programador El sistema de memoria virtual de los actuales computadores surgi para liberar al programador
de una serie de tareas relacionadas con el uso que los programas deban realizar con la memoria
La memoria virtual automatiza la gestin entre los dos niveles principales de la jerarqua de
memoria: memoria principal y disco.
El mecanismo ms importante que gestiona la memoria virtual es el de la paginacin, que surgi
de la necesidad de mantener ms de un programa residente en memoria cuando la capacidad de
sta es inferior a la suma de los tamaos de los programas.
Se trata de un mecanismo automtico en el que el espacio de memoria principal se divide en
bloques de tamao fijo denominados pginas.
Los programas se dividen tambin en pginas y residen en el disco.
El sistema se encarga de asignar pginas fsicas a los programas en ejecucin
Memoria principal
M3 M4 M2 M1
M1
M2
Disco
M2
e/s
2
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Principio de funcionamiento de la memoria virtual
Enuncomputador conmemoriavirtual (MV) lasdireccionesdelosprogramas(generadaspor Enuncomputador conmemoriavirtual (MV) lasdireccionesdelosprogramas(generadaspor
laCPU) hacen referenciaaun espacio mayor queel espacio fsico realmentedisponibleen la
memoriaprincipal omemoriafsica(MF).
Losprogramas operanvirtualmente conuntamaofsicodememoriaprincipal muchomayor p g p p p y
queel realmentedisponible.
En estas mquinas hay que diferenciar, pues, entre el espacio de direcciones virtuales
generado por la CPU y el espacio de direcciones fsicas o reales existentes en memoria,
determinadopor el nmerodelneasdel busdedirecciones.
El espaciovirtual sesoportasobreundiscoconlaayudadeunmecanismodetraduccinque
generaladireccinfsicadememoriaprincipal apartir delavirtual.
Tantolamemoriaprincipal comolamemoriadel discosedividenenpginasdeigual tamao.
El nmerodepginasdelamemoriavirtual esmayor queel nmerodepginasdelamemoria
fsica. fsica.
Encadamomentoslolascopiasdeunconjuntodepginasvirtualesdel programaresidenen
lamemoriafsica: conjunto de trabajo oconjunto activo
El conjunto activo resulta relativamente estable a lo largo del tiempo, debido a la localidad
referencial quemanifiestanlosprogramas.
3
Esquema general del mecanismo de traduccin de direcciones
CPU
Memoria virtual
Nmero dePginaVirtual (NPV) Desplaz. Pgina(DP)
Direccin Virtual (DV)
Los bits de una DV se consideran divididos en dos campos, el
nmero de pgina virtual (NPV) los ms significativos, y el
desplazamiento dentro de la pgina (DP), losmenossignificativos.
El nmerodebitsdel campoDP lodeterminael tamaodepgina
( d b d DP l d )
TabladePginas
Pgina0
Pgina1
Pgina2
Pgina3
Pgina4
control pv 0 pag. fsicaf-1
control pv 1 pag. fsica2
Reg. Base Tablade Paginas
Sumador
(n de bits de DP = log
2
tamao de pgina).
El nmero de bits del campo NPV lo determina el nmero de
pginasvirtuales(n de bits de NPV = log
2
n de pginas virtuales).
Los bits de una DF se consideran divididos tambin en dos
campos, el nmero de pgina fsica (NPF) los ms significativos, y
2
v
pginas
Memoria fsica
Nmero dePginaFsica (NPF) Desplaz. Pgina(DP)
Direccin Fsica (DF)
Pgina4
Pgina5
p p g
control pv 2 pag. fsica1
control pv v-2 pag. fsica0
control pv v-1 pag. endisco
p , p g f ( ) g , y
el desplazamiento dentro de la pgina (DP), los menos
significativos.
El nmerodebitsdel campoDP deunaDF esel mismoqueel de
unaDV puestoquelaspginastienenigual tamaoenMV yMF.
El nmero de bits del campo NPF lo determina el nmero de
Pgina0
Pgina1
Pgina2
Pgina2
v
-3
Memoria de Disco
pv v-1
2
w
pginas
El nmero de bits del campo NPF lo determina el nmero de
pginas fsicas de MF (n de bits de NPF = log
2
n de pginas
fsicas).
LasDVsgeneradaspor laCPU setraducenaDFsconlaayudade
unaTabladePginas(TP).
Esta tabla contiene en principio tantas entradas como pginas
Pginaf-2
Pginaf-1
Pgina
2v
-2
Pgina2
v
-1
Esta tabla contiene en principio tantas entradas como pginas
existen en la MV, y la posicin en la tabla de una entrada
correspondienteaunapginavirtual concretacoincideconsuNPV.
Cadaentradacontieneunprimer campodebitsdecontrol delosquepor el momentoharemosreferenciatansloauno el bit depresencia(P) Cadaentradacontieneunprimer campodebitsdecontrol, delosquepor el momentoharemosreferenciatansloauno, el bit depresencia(P).
Si estebit estactivo(por ejemploa1) significaquelapginavirtual correspondienteaesaentradaestpresenteenlaMF, y enestecasoel segundocampo
delaentradacontieneel correspondienteNPF.
Si el bit P estinactivo(por ejemploa0) significaquelacorrespondientepginavirtual noestenlaMF, sinoenel disco.
El accesoalaTP serealizaconlaayudadeunregistrobasedelatabladepginas(RBTP) asociadoacadaprogramaenejecucin
4
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
El accesoalaTP serealizaconlaayudadeunregistrobasedelatabladepginas(RBTP) asociadoacadaprogramaenejecucin
Memoria virtual paginada
El espaciovirtual (yfsico) sedivideenpginasdeigual tamao. p (y ) p g g
LasentradasdelaTPdeunaMV paginada, ademsdel NPF contieneel bit depresenciaP.
Existenotrosbitsquecontrolanlosderechosdeaccesoalapgina:
lectura(R) lectura(R),
escritura(W)
ejecucin(X) (sloparapginasdecdig).
El bit depginamodificada(datos) determinasuescrituraendiscocuandoseasustituida El bit depginamodificada(datos) determinasuescrituraendiscocuandoseasustituida.
Entrada de la tabla de pginas con correspondencia directa
P R W X Direccin de Pgina Fsica
Cadaprograma(proceso) puedeocupar unagrancantidaddememoriavirtual.
P j l l it t VAX d d t h t 2
31
2GB t d MV
P = bit de presencia (de la pgina en memoria fsica)
RWX =derechos de acceso de lectura, escritura y ejecucin
Por ejemplo, enlaarquitecturaVAX, cadaprocesopuedetener hasta2
31
=2GBytesdeMV.
Utilizandopginasde2
9
=512bytes, senecesitanTPsde2
22
entradaspor proceso.
Lacantidaddememoriadedicadasloatablasdepginaspodraser inaceptablementealta.
h i d l l l i i i l i ifi MuchossistemasdeMV almacenanlasTPsenlapropiamemoriavirtual stosignificaque
laTPtambinestsujetaapaginacin, igual queel restodelosprogramas.
Cuando un programa se ejecuta, al menos una parte de su TP debe estar en memoria
principal
5
principal.
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Tablas de pginas de varios niveles
Existe una pgina de directorio de nivel 1 en la que cada elemento apunta a una tabla de p g q p
pginas de nivel 2, y as sucesivamente.
La longitud mxima de una tabla de pginas se restringe al tamao de una pgina
TP organizada en tres niveles: N1, N2 y N3. g , y
Direccin Virtual
Nivel 1 Nivel 2 Nivel 3 Despla. Pgina
Tabla Paginas N1
+
RBP

Tabla Paginas N3
Tabla Paginas N2
Entrada TP N2



Entrada TP N3 +
+
Nmero P.F.
Direccin Fsica
Nmero de pgina fsica Despla. Pgina
6
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Tabla de pginas invertida HASH
EliminadelaTPlasentradasquenoapuntanaunapginadelaMF (entradas=pginasdeMF). EliminadelaTPlasentradasquenoapuntanaunapginadelaMF (entradas pginasdeMF).
El campoNPV delaDV sehacecorresponder sobreunatabla hash conunafuncindedispersin.
LatabladedispersinincluyeunpunteroaunaTPinvertida, quecontieneloselementosdelaTP.
Hayunelementoenlatabladedispersinyenlatablainvertidaparacadamarcodepgina.
RequiereunazonafijaenMF paralastablas, conindependenciadel nmerodeprogramasopginas.
Ms de una DV puede apuntar al mismo elemento de la pgina de dispersin se utiliza una tcnica de
encadenamiento.
Latcnicadedispersindalugar acadenasusualmentecortas, conunoodoselementos. Latcnicadedispersindalugar acadenasusualmentecortas, conunoodoselementos.
EstaalternativadeTPseutilizaenel PowerPC.
Direccin Virtual
N Pgina Virtual Desplazamiento
Tabla de Dispersin Tabla de Pginas
Funcin de
Dispersin
NPV NPF Enlace
NPF
NPV NPF Enlace
Direccin Fsica
N Pgina Fsica Desplazamiento
7
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Buffer de traduccin anticipada (TLB: Translation Lookaside Buffer )
TodareferenciaaMV requieredos accesos aMF: uno paraacceder alaTP y otro paralaDF TodareferenciaaMV requieredos accesos aMF: uno paraacceder alaTP, y otro paralaDF
Duplicar el tiempodeaccesoamemoria.
ParaevitarlolasMVsutilizanunacacheparalaTP: buffer de traduccin anticipada (TLB).
El TLB contieneaquellasentradasdelaTPalasquesehaaccedidorecientemente. q q
Por localidadtemporal, lamayoradelasreferenciasamemoriacorrespondernaposiciones
incluidasenpginasrecientementeutilizadas.
Normalmenteel TLB utilizaunacorrespondenciatotalmenteasociativa p
NPV DP
Buffer de traduccin anticipada (TLB)
RWX
Memoria
Asociativa
RWX NPV NPF
Direccin Fsica
=
Violacin de acceso
Fallo de pgina
NPF DP
8
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Interaccin entre la memoria virtual y la memoria cache
Lamemoriavirtual debeinteractuar conlamemoriacache Lamemoriavirtual debeinteractuar conlamemoriacache
Paratraducir unaDV seconsultaTLB paracomprobar si laentradaseencuentraenl.
Si esas, segeneralaDF combinandoel NPF conel DP.
Si d l TP b d l l t di t Si no, seaccedealaTPenbuscadel elementocorrespondiente.
ConDF seconsultalacachparaver si el bloqueseencuentraenel conjunto.
Si esas, seenvaal procesador.
Si no, seproduceunfallodecacheysebuscalapalabraenmemoriaprincipal.
LaDV debepasar primeropor el TLB antesdequelaDF puedaacceder alacache,
Estemecanismosepuedeacelerar utilizandodosalternativas: p
Acceder simultneamenteal TLB parabuscar el NPF yalacacheparabuscar el bloque.

Utilizar cachescondireccionesvirtuales
L i lt ti i l l it d d l d d l i t DP d l DV La primera alternativa requiere que la longitud del campo de desplazamiento DP de la DV
(igual al DP delaDF) seamayor oigual queloscamposdeconjunto y palabra del formatode
DF delacache
Deestaformaserposiblerealizar enparalelo p p
1)Labsquedaenel TLB del NPF quesecorrespondeconlaetiqueta.
2)Labsquedaenel directoriodelacachedel ndebloque(lnea).
9
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Acceso paralelo al TLB y al directorio de la cache
N PV DP
TLB
NPV NPF
TLB
Si la longitud del campo de
desplazamiento DP delaDV (igual al
DPdelaDF) esmayor oigual quelos
Fallodepgina
campos de conjunto y palabra del
formato de la DF para la cache, tal
como se muestra en la figura de la
derecha, sepuedeacceder en paralelo
Fallo de pgina
N PF DP
Memoriacache
(simultneamente) al TLB parabuscar
el NPF y al directoriodelacachepara
buscar el bloque,
etiqueta datos
etiqueta lnea palabra
Memoria cache
De esta forma ser posible realizar
enparalelo labsquedaenel TLB del
NPF que se corresponde con la
etiqueta, yenel directoriodelacache
el n debloque(lnea), quejunto a la
palabra dentro del bloque, se
corresponde con el DP, del que se
acierto
fallo
MUX
Comparador
dispone desde el instante que se
genera la DV, pues no requiere
traduccin.
10
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Mltiples espacios virtuales
Una forma de acelerar la conmutacin de procesos evitando tener que borrar la TP es extender
las entradas con un campo que contiene el identificador de proceso (PID).
N PV DP
RWX PID NPV NPF
(TLB)
RWX PID
=
Fallo de pgina
=

Direccin Fsica Violacin de acceso


N PF DP
=
11
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Polticas de bsqueda (fetch)
Prebsqueda (anlogaalautilizadaenmemoriacache) Prebsqueda (anlogaalautilizadaenmemoriacache)
Bsqueda por demanda (anloga a la utilizada en memoria cache)
Polticas de sustitucin (replacement) ( p )
Aleatoria: ligeuna pgina aleatoriamente, sin mirar el nmero de referencias o el tiempo
que lleva MF.
LRU (L t R tl U d) l l tili d i h LRU (Least Recently Used): anloga a la utilizada en memoria cache
FIFO (First In First Out): se sustituye la pgina que lleva ms tiempo residente en memoria.
Utiliza una cola FIFO hace un uso pobre de la localidad temporal)
Reloj (FINUFO: First In Not Used First Out): es una mejora de la FIFO en la que tambin
se chequea si una pgina ha sido referenciada hace mejor uso de la localidad temporal.
Paraimplementar estapolticasemantieneunacolacomo enlaFIFO pero circular y Paraimplementar estapolticasemantieneunacolacomo enlaFIFO pero circular, y
se introduce un flag (bit de uso) asociado a cada pgina para anotar que ha sido
referenciada.
Optima (MIN): es lamejor polticaposible: sustituir lapginaquevayaatardar ms tiempo Optima (MIN): es lamejor polticaposible: sustituir lapginaquevayaatardar ms tiempo
enser referenciada.
Seutilizacomoreferenciatericaparamedir laeficienciadeotraspolticas.
12
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Polticas de sustitucin: ejemplos
Anomala de Belady: Aumentando el nmero de marcos de
pgina puede aumentar el nmero de fallos. Por ejemplo, las
siguientes referencias a pginas:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 dan
lugar a 9 fallos con 3 marcos y a 10 fallos con 4 marcos
13
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
g y
Memoria virtual segmentada
Proporciona una forma lgica de organizar los programas y datos. g g g y
Permite que el programador vea la memoria como mltiples espacios de
direcciones o segmentos.
Los segmentos tienen un tamao variable, dinmico. g ,
El programador o el sistema operativo asignar programas y datos a segmentos
distintos.
Puede haber segmentos distintos para varios tipos de programas y datos. Puede haber segmentos distintos para varios tipos de programas y datos.
Se puede asignar a cada segmento derechos de acceso y uso (privilegios y
proteccin).
Las DVs estn constituidas por: nmero de segmento (NS) y desplazamiento en Las DVs estn constituidas por: nmero de segmento (NS) y desplazamiento en
el segmento (DP).
La traduccin de DV a DF es anlogo al de la memoria virtual paginada
Tabla de segmentos (TS) cuyas entradas contienen:
bits de control
direccin fsica del segmento direccin fsica del segmento
longitud del segmento
14
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Memoria virtual segmentada
Simplificalagestindeestructurasvariablesdedatos: sepodrnexpandir oreducir. p g p p
Permitemodificar losprogramasyrecompilarlosindependientemente
Permitequevariosprocesoscompartansegmentos.
RWX
Nmero Segmento(NS) Desplaz. (DP)
Tipo acceso Direccin Virtual
Tabla de segmentos (TS)
Reg. Tabla Segmentos
P RWX L Dir.Real Seg P RWX L Dir.Real Seg
Direccin Fsica
Dir. Real Seg. Desplaz.(DP) P =bit de presencia
L =Longitud del segmento
15
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Polticas de ubicacin (placement) para memorias segmentadas
SeidentificanloshuecosdeMF por sutamao ydireccin inicial, ysellevanaunalista.
Lapolticadeubicacindeterminarlaordenacinpreviadelalista.
Decididoel huecodondeubicar el segmento, seactualizalalistaconel queseacabadecrear
Si noseencuentraunhuecoapropiadoparael segmento intervienelapolticadesustitucin Si noseencuentraunhuecoapropiadoparael segmento, intervienelapolticadesustitucin.
Lastrespolticasdeubicacindesegmentosmsutilizadassonlassiguientes:
Mejor ajuste (best fit)
L li d h i d d d i d o Lalistadehuecossemantieneordenadaenordencrecientedetamao
o Seubicael segmentoenel primer huecoconcapacidadsuficienteparaalbergarlo.
Peor ajuste (worst fit)
o Lalistadehuecossemantieneordenadaenordendecrecientedetamao
o Seubicael segmentoenel primer huecoconcapacidadsuficienteparaalbergarlo.
Primer ajuste (first fit) Primer ajuste (first fit)
o Lalistadehuecosseordenasegnlasdireccionesinicialesdeloshuecos
o Seubicael segmentoenel primer huecoconcapacidadsuficienteparaalbergarlo.
C d t i t ti l l d d h o Cuando transcurre un cierto tiempo, se acumulan un nmero elevado de huecos
pequeosprximosalacabezadelalista, penalizandolasbsquedas.
o Esto se evita adelantando cclicamente, despus de cada bsqueda la posicin
inicial delalista
16
inicial delalista.
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Memoria con segmentos paginados
Lasegmentacinpresentapropiedadesventajosasparael programador ymalagestindeMF Lasegmentacinpresentapropiedadesventajosasparael programador ymalagestindeMF
La paginacin proporciona una forma ms eficiente de gestionar la MF pero alejada del
programador.
Lossegmentospaginadoscombinanlasventajasdeambas Lossegmentospaginadoscombinanlasventajasdeambas
Latraduccin deDVs aDFs componeel mecanismo delamemoriasegmentaday el dela
paginada
i i i i l
Tabla de segmentos
RWX N Segmento N Pgina DP
Tipo acceso Direccin Virtual
Tabla de Paginas del Segmento
Reg. Tabla Segmentos
P RWX L Dir.Real Seg
P =bit de presencia
L =Longitud del segmento
P NPF
Direccin Fsica
NPF DP
17
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Ejemplo de sistema de memoria virtual: procesador Pentium II
PentiumII disponedeunsistemadeMV conposibilidaddesegmentacinypaginacin PentiumII disponedeunsistemadeMV conposibilidaddesegmentacinypaginacin.
Losdosmecanismossepuedenactivar odesactivar conindependencia
Cuatroformasdefuncionamientodel sistema dememoria:
Memoria no segmentada no paginada
o Ladireccinvirtual coincideconladireccinfsica.
o Estaalternativaresultatil cuando el procesador seutilizacomo controlador de
sistemasempotrados.
Memoria paginada no segmentada
o Lamemoriaconstituyeunespaciolineal dedireccionespaginado. y p p g
o Laproteccinylagestindememoriaserealizaatravsdelapaginacin.
Memoria segmentada no paginada
o Lamemoriaconstituyeunconjuntodeespaciosdedireccionesvirtuales(lgicas) o Lamemoriaconstituyeunconjuntodeespaciosdedireccionesvirtuales(lgicas)
o Laventajafrentealapaginacinesqueproporcionaproteccinanivel debyte.
Memoria segmentada paginada: seutilizansimultneamentelosdosmecanismos:
o Segmentacinparadefinir particioneslgicasdememoriaenel control deacceso
o Paginacinparagestionar laasignacindememoriadentrodelasparticiones.
18
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Ejemplo de sistema de memoria virtual: procesador Pentium II
El Pentium II dispone de un sistema de gestin de memoria virtual con posibilidad de p g p
segmentacin y paginacin.
Los dos mecanismos se pueden activar o desactivar con independencia, dando pues lugar a
cuatro formas de funcionamiento del sistema de memoria:
Memoria no segmentada no paginada
Memoria paginada no segmentada
Memoria segmentada no paginada g p g
Memoria segmentada paginada
Direccinlineal
Direccin lgica (virtual)
Segmento Desplazamiento
Direccin lineal
Dir Pgina Desplaz.
Tabla de
segmentos
Direccin
f i
Directorio
de pginas
Tabla de
pginas
fsica
Segmentacin Paginacin
Memoria
principal
19
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Você também pode gostar