Você está na página 1de 5

EsquemadeltemaGESTIONDEMEMORIA

GM1.Objetivos
a)Espacioslgicosindependientes==>reubicacin,traduccinvirtualfsica(MMU)
Ficheroejecutable:cdigoydatos
Reubicacin:direccioneslgicasydireccionesfsicas>traduccin
MMU:traduccinhardware
MapadememoriadelSO+Mapadememoriadelproceso
ElSOconoceelmapadememoriadecadaproceso(infodelmapaenBCP)
b)Proteccinentreprocesos==>integradoenlatraduccin
DelprocesorespectoalSOyrespectoaotrosprocesos(espacioslgicosdisjuntos)
Deteccindedireccinvlida(H/W)ytratamientoencasodefallo(S/W)
DireccionesfsicasdelosdispositivosdeE/S,reservadasalSO,...
c)Comparticindememoria:cdigoodatos
Solapamientodemapasdememoria==>asignacinnocontigua
Beneficios:economadealmacenamiento,vadecomunicacinrpida
Problema:direccionesalmacenadasenmemoriacompartidas
Sisoninstrucciones=>cdigoPIC
Sisondatos=>evitarlistasdepunteros
d)Soportederegiones==>tabladeregionesdinmica
Mapanohomogneo:cdigo,datos,pila=>distintasprotecciones
Mapadinmico:varaelnmeroycaractersticasdelasregiones
Tabladeregiones
[TambinaplicablealmapadelSO]
e)Atenderalrendimiento
Aumentarelgradodemultiprogramacin(1)yreducirlaprdidadememoria(2)
Polticadeasignacin:usodepaginacin
Memoriavirtual:favorece(1)y(2)perorequieretablasdetraduccin
(Swapping)
f)Mapasdememoriagrandes
Antiguamente:usodedeoverlaysdivisindelmapaenfasescargadas
selectivamenteenmemoriapormandatodelprogramador
MemoriaVirtual:gestintrasparentedelaslimitacionesdelamemoriafsica
GM2.Modelodememoria
Generacindelejecutable
Compilacindefuentesymontajedeobjetos
Bibliotecas(dellenguaje,delSO,deusuario,matemticas,..)
estticas:montajeengeneracindeejecutable
dinmicas(DLL):montajediferidoatiempodecargaoejecucin
Comparticindecdigo:cdigoPICodireccionesfijas
Montajeexplcitodebibliotecasdinmicas:(dlopen(),dlsym(),...)
Formatodelejecutable(Ej.,ELF,PE,COFF,MZexeDOS,...)
Cabecera=>nmgico,puntodeentradaalprograma,tabladesecciones
Secciones:cdigo,datos,bss,tabladesmbolos,...
Mapadememoria:tabladeregiones
Alejecutar[exec()]unficheroejecutablesecreanvariasregionessegnsecciones
Regin:zonacontiguadedirecciones,caracterizadaspor
*soporteendisco:enfichero(A)oannimo(swap)(B)
*uso:compartido(C)oprivado(D)

*proteccinpermisos:rwx
*tamao:fijo(E)ovariableconcrecimientohaciaarriba(F)oabajo(G)
regionestpicasiniciales:
texto(A,C,E,rx);datos(A,D,E,rw);bss(B,D,G,rw);pila(B,D.F,rw)
Creacinyeliminacindeotrasregiones
heap,ficheromapeado,memoriacompartida,pilathread,bibliodinmica
Operacionessobreregiones:
Crear:implcita[exec()]oexplcita[mmap()]
Suprimir:implcita[exit()]oexplcita[unmap()]
Cambiardetamao:implcita[ej.,pila]oexplcita[sbreak()para'heap']
Duplicar:implcita[fork()]
GM3.AsignacinContigua
H/W:registrosbaseylmite,accesiblesenmodokernel(ej.OS/MVT)
GestindelSO
Contextoh/wenBCP
Listadeparticionesylistadehuecos(fragmentacinexterna)
Polticasdeasignacindeespacio:bestfit,nextfit
Valoracin:a)b)c)d)e)f)
Operacionessobreregiones:difciles,pocoflexiblesoimposibles
GM4.Swapping
Swapout:expulsindemapadeprocesodesdememoriaadisco[procesosuspendido]
Swapin:reincorporacindelmapadeprocesodesdediscoamemoria[finsuspensin]
Dispositivodeswap:
particindedicadaoficheroreservado
conpreasignacindeespacioalprocesoosinpreasignacin
(NosuspensindeunprocesomientrasrealizaDMAsobresumapadememoria)
(Noesnecesariocopiartodoelmapa:huecosoinformacinfijacomocdigo)
GM5.MemoriaVirtual
Dispositivodepaginacin(odeswap)
Conjuntoresidentevs.conjuntodetrabajo(proximidaddereferencias)
Aumentodelgradodemultiprogramacinhiperpaginacin
Ejecucindeprogramasgrandes
Afectaalavelocidaddeejecucin==>noesapropiadaparatiemporeal
Paginacin
Tabladepginas.Tamaodepgina(fragmentacininterna)
FormatodeentradaTP:proteccin(rwx),vlido,accedido,modificado,cacheS/N
GestindelSistemaOperativo:tablademarcosdepgina,tabladeswap
Valoracin:a)b)c)d)e)f)
ImplementacindeTP:TPmultinivel,TPinvertidas,TLB
Segmentacin
Tabladesegmentos(direccinbaseylongitud)
Valoracin:a)b)c)d)e)f)
Segmentacinpaginada

Tabladesegmentosytablasdepginas
Valoracin:a)b)c)d)e)f)
PaginacinporDemanda
Tratamientodefallosdepgina
Prepaginacin
5.5Polticadereemplazo:ptimo,FIFO,reloj,LRU,buffering
Objetivos:
minimizarlatasadefallos
paraunacomplejidadtolerabledelalgoritmo
yapoyadaenunh/w(MMU)razonable
OPTIMO
Reemplazalapginaquemstardarenserreferenciada
Irrealizableenlaprctica
FIFO
Reeemplazalapginaquemsllevaenmemoria
Simple;nonecesitaunh/wespecial
ElSOordenalaspginasenunalistaportiempoderesidencia
Rendimiento:nobuenoparapginasdeusofrecuente
AnomaladeBelady
RELOJoFIFOsegundaoportunidad
ReemplazalaprimerapginaFIFOcuyobitdereferenciaestdesactivado
ElSOmantieneunalistacircularconpunteroalprincipio
Siseincluyeunapginams,selacolocaalfinal
Sihayquereemplazar,seexaminanpginasdesdeelprincipio
desactivandoreferenciashastaencontrarunayadesactivada
LRU(algoritmotipopila)
Caracterizaalaspginasconuntiempodereferenciavirtual
Seleccionalapginacontiempodereferenciamnimo
Realizableyconbuenrendimientoperodeimplementacincostosa
(requieremuchoapoyoh/w)
Aproximacin:usodecontadoresdereferencias(estrategiaLFU)
Bufferingdepginas
Evitalaactualizacindepginasmodificadasencasodereemplazo,
enelmomentodelaseleccin
Listadepginaslibres={no_actualizadas,actualizadas}
actualizacinindependiente
recuperacindepginaslibres(fallomenoroperacindememoria)
cargadepginaslibres(fallomayoroperacindedisco)
Retencindepginasenmemoria
pginasdelSO,usadasparaDMAobloqueadasenmemoria(mlock())
5.6Polticadeasignacin:fijaodinmica
FIJA:=>reemplazolocal
Desventaja:faltadeadaptacinalcomportamientodelproceso
Ventaja:comportamientopredecible
Criterioderepartodememoria:portamaodelproceso,porprioridad,...
Nmeromximodemarcos:lodecideelSO

Nmeromnimodemarcos:dependedelaarquitectura
DINAMICA:
conreemplazolocal
conreemplazoglobal
=>faltadepredicibilidad
=>elcomportamientodelosprocesosseinfluyenmutuamente
5.7Hiperpaginacin(thrashing)
Conasignacinfija:espacio_residente<<conjunto_de_trabajo
Conasignacindinmica:(espacios_residentes)<<espacio_de_memoria
=>usodeCPU<<,tasadefallos>>,tiempo_de_servicio_disco>>
Solucin:suspenderprocesosyliberarpginas=>controldecarga
Polticasqueincluyencontroldecarga(CC)
Estrategiadelconjuntodetrabajo
ConjuntodeTrabajo=pginasaccedidasenlasltimasNreferencias
(Reemplazolocal+controldecarga)
SICTdisminuye=>liberarpginasexcluidas
SiCTaumenta=>asignarnuevosmarcossihaymarcoslibres
=>aplicarCCsinohaymarcoslibressuficientes
Problema:cmodeterminarelCT?
Frecuenciadefallosdepgina
Establecerunacotasuperioryunacotainferiorsobrelatasadefallos
Silatasamedida>cotasuperior=>asignarnuevosmarcos
(sinohaysuficentesmarcoslibres,aplicarCC)
Silatasamedida<cotainferior=>liberarpginaselegidasparareemplazo
Reemplazoglobalybuffering(UNIXBSD)
(pagedaemon)
cadaciertotiempocontrolaelnmerodemarcoslibres
sinohaysuficientes,aplicapolticadereemplazoylibera
Polticarelojde2manecillas,aplicadaglobalmente
permiterecuperarpginasliberadas,sisonreferenciadasdenuevo
(swapper)
CCsilatasadefallosesaltayhaypocosmarcoslibres.
Peridicamentehaceswapin
5.8Gestindelespaciodeswap
A.ConPreasignacin:reservaespacioalcrearunaregin
B.SinPreasignacin:reservaespacioalexpulsarporprimeravezunapgina
Asignacinfija:pginabloque_de_swap
Actualizacin(escritura)enswapsoloencasodeexpulsindepgina
[Usodirectodeficherosencasodemapeocompartido]
VentajadeB:eficienciaenelusodelespaciodeswap
DesventajadeB:menosrobusto(deteccindefaltadeespacio=>abortarproceso)
5.9Operacionessobreregiones:
Creacin
Asignacindememoriaparacargapordemanda(vlidaperono_presente)
ActualizacindeTRegionesyTPaginas[proteccin,privada/compartida,...]
Asociacincon{bloques_ficherorellenar_a_0siniciar_pila]

Reservaespaciodeswapencasodepreasignacin
Alexpulsarunapgina:
siesreginprivada=>seescribeaswap
siesregincompartida=>seescribealficheroasociado
Crearlaimageninicialdeunproceso(exec()):
crearregionesinicialesy
marcarhuecoscomozonasinvlidas
Liberacin
ActualizacindelaTRegionesymarcarinvlidaslaspginasasociadas
Siesreginprivada=>liberarespaciodeswap
Porsolicitudexplcita(munmap())oimplcita(exit()oexec())
Cambiodetamao
Sidisminuye=>liberacinselectivadepginas
Siaumenta:
comprobarquenohayasolapamiento
establecernuevaspginasnoresidentesconcaracteristicasdelaregin
(ej.,heap:RW,privada,rellenarcon0's)
Laexpansindepila(stack)desencadenadaporfallo_de_pgina
Duplicacin(CopyOnWrite)
Asociadaafork()
Comparticinderegionescompartidas:cdigo.mmapSHARED,shm,...
Duplicadoderegionesprivadas:optimizacinporCOW
flagCOW,contadordeusoyproteccininicialdeslo_lectura
GM6.Mapeadoenmemoria
Correspondenciapginabloque_de_fichero,queincluyetipodeproteccin
Empleaaccesosamemoriaenvezdellamadasread/write
Fallodepgina=>carga(lectura)deunbloquedeficheroenmemoria
Polticadereemplazo=>actualizacin(escritura)deunbloquedefichero
Ventajas:
1. Menorusodellamadasalsistema=>menortiempodeacceso
2. Evitacopiasintermediasdedatos
3. Facilitalaprogramacinalaccederalficherocomounagranestructuradedatos
Mapeoprivado=>dispositivodeswapcomoficheroasociado
Facilitalaproyeccindebibliotecasdinmicas
GM7.Serviciosdegestindememoria
POSIX:mmap(),munmap()
Argumentos:
direccininicialdereginoNULL(aelegirporelSO)
tamao
tipodeacceso:PROT_READ,PROT_WRITE;PROT_EXEC
propiedad:MAP_SHARE,MAP_PRIVATE,MAP_FIXED
descriptordeficheroyposicindefichero
HEAP:malloc(),free(),realloc(),calloc()

Você também pode gostar