Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión...

73
Sistemas operativos Sistemas operativos Tema 7: Gesti Tema 7: Gesti ó ó n de memoria n de memoria

Transcript of Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión...

Page 1: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Sistemas operativosSistemas operativosTema 7: GestiTema 7: Gestióón de memorian de memoria

Page 2: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

La memoria principalLa memoria principal

►► La memoria es el componente central en la arquitectura de un La memoria es el componente central en la arquitectura de un computador.computador.

A menudo, el A menudo, el úúnico dispositivo de almacenamiento al que la CPU puede nico dispositivo de almacenamiento al que la CPU puede acceder directamente.acceder directamente.Un Un vector de palabrasvector de palabras, cada una con su propia , cada una con su propia direccidireccióón fn fíísicasica..

►► La La CPUCPU lee instrucciones y lee o modifica datos de la memoria durante lee instrucciones y lee o modifica datos de la memoria durante cada ciclo de instruccicada ciclo de instruccióón.n.

►► Las operaciones de Las operaciones de E/S con DMAE/S con DMA ((acceso directo a memoriaacceso directo a memoria) ) escriben/leen datos en memoria.escriben/leen datos en memoria.

CPU MPCaché DMA

Page 3: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

GestiGestióón de memorian de memoria

►► Asignar y liberar espacio en memoria segAsignar y liberar espacio en memoria segúún se necesite.n se necesite.La polLa políítica empleada repercute en la utilizacitica empleada repercute en la utilizacióón de la CPU y los n de la CPU y los tiempos de respuesta del sistema.tiempos de respuesta del sistema.ReubicaciReubicacióón:n: vinculacivinculacióón del espacio de n del espacio de direcciones ldirecciones lóógicasgicas de cada de cada proceso con direcciones fproceso con direcciones fíísicas concretas.sicas concretas.

►► Seguir la pista de quSeguir la pista de quéé partes de la memoria estpartes de la memoria estáán siendo n siendo usadas y por quusadas y por quéé procesos.procesos.

ProtecciProteccióón:n: impedir accesos (accidentales o malintencionados) a la impedir accesos (accidentales o malintencionados) a la memoria propia de otros procesos o del SO.memoria propia de otros procesos o del SO.ComparticiComparticióónn:: permitir el acceso de varios procesos a zonas de permitir el acceso de varios procesos a zonas de memoria comunes.memoria comunes.►► ComunicaciComunicacióón entre procesos, mismo cn entre procesos, mismo cóódigo para varias instancias de digo para varias instancias de

un mismo programa, etc.un mismo programa, etc.

Page 4: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Sobre la reubicaciSobre la reubicacióónn

►► ReubicaciReubicacióón estn estáática en tiempo de compilacitica en tiempo de compilacióón.n.DirecciDireccióón ln lóógica = direccigica = direccióón fn fíísica.sica.El compilador genera cEl compilador genera cóódigo mdigo mááquina con direcciones absolutas.quina con direcciones absolutas.

►► ReubicaciReubicacióón estn estáática durante la carga.tica durante la carga.DirecciDireccióón ln lóógica = direccigica = direccióón fn fíísica.sica.El cEl cóódigo mdigo mááquina contiene direcciones relativas al comienzo del quina contiene direcciones relativas al comienzo del programa programa (c(cóódigo reubicable)digo reubicable), que se vinculan a direcciones f, que se vinculan a direcciones fíísicas sicas al comenzar su ejecucial comenzar su ejecucióón.n.

►► ReubicaciReubicacióón dinn dináámica.mica.DirecciDireccióón ln lóógica gica ≠≠ direccidireccióón fn fíísica.sica.CCóódigo reubicable.digo reubicable.Las direcciones fLas direcciones fíísicas se calculan sicas se calculan en tiempo de ejecucien tiempo de ejecucióónn, por , por medio de un soporte medio de un soporte hardwarehardware especializado (unidad de gestiespecializado (unidad de gestióón de n de memoria, MMU).memoria, MMU).

Page 5: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Sobre la protecciSobre la proteccióónn

►► En general, la ubicaciEn general, la ubicacióón de un proceso en n de un proceso en memoria no se conoce de antemano, y no es memoria no se conoce de antemano, y no es posible anticipar todas sus referencias a memoria.posible anticipar todas sus referencias a memoria.

Muchas las referencias se calculan dinMuchas las referencias se calculan dináámicamente (micamente (e.ge.g. . a raa raííz de instrucciones z de instrucciones mallocmalloc).).

►► La protecciLa proteccióón requiere mecanismos que actn requiere mecanismos que actúúen en en en tiempo de ejecucitiempo de ejecucióónn..

La soluciLa solucióón prn práácticamente universal es proveerla por cticamente universal es proveerla por hardwarehardware, en la propia MMU., en la propia MMU.

Page 6: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

TTéécnicas de gesticnicas de gestióón de memorian de memoria

►►Monitor residente.Monitor residente.►►AsignaciAsignacióón contigua con particiones n contigua con particiones

mmúúltiples.ltiples.Particiones estParticiones estááticas.ticas.Particiones dinParticiones dináámicas.micas.

►►AsignaciAsignacióón no contigua.n no contigua.PaginaciPaginacióón.n.SegmentaciSegmentacióón.n.SegmentaciSegmentacióón paginada.n paginada.

Page 7: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Monitor residenteMonitor residente

Page 8: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Monitor residenteMonitor residente

►► Se divide la memoria en dos zonas: Se divide la memoria en dos zonas: monitor monitor residenteresidente (SO) y (SO) y espacio de usuarioespacio de usuario..

►► Con reubicaciCon reubicacióón estn estáática:tica:

SO

Espacio de usuario

Registro barrera

Dir. física SÍCPU ≥

TRAP

NO

Page 9: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Monitor residenteMonitor residente

►► Con reubicaciCon reubicacióón dinn dináámica:mica:

Registro barrera

Dir. lógica Dir. física+CPU

SO

Espacio de usuario

Page 10: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Intercambio Intercambio ((swappingswapping))

►► Forma de conseguir multiprogramaciForma de conseguir multiprogramacióón, utilizando n, utilizando almacenamiento secundario de apoyo.almacenamiento secundario de apoyo.

SO

Espacio de usuario

P1

P2

1

2

Page 11: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

IntercambioIntercambio

►► Tiempos de Tiempos de cambio de contextocambio de contexto muy elevados.muy elevados.Mejoran solapando la carga o descarga de un proceso Mejoran solapando la carga o descarga de un proceso con la ejecucicon la ejecucióón de otro.n de otro.►►BuffersBuffers del SO, e intercambio dentro de la memoria principal.del SO, e intercambio dentro de la memoria principal.

►► Cuidado con las Cuidado con las operaciones de E/S por DMAoperaciones de E/S por DMA..PodrPodríían iniciarse sobre la memoria de un proceso y an iniciarse sobre la memoria de un proceso y terminar sobre la de otro.terminar sobre la de otro.Soluciones:Soluciones:►►No descargar procesos con E/S pendiente.No descargar procesos con E/S pendiente.►►Realizar la E/S sobre Realizar la E/S sobre buffersbuffers del SO.del SO.

Page 12: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

AsignaciAsignacióón contiguan contiguacon particiones mcon particiones múúltiplesltiples

Page 13: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Sistemas de particiones mSistemas de particiones múúltiplesltiples

►► Objetivo: soporte Objetivo: soporte mmáás eficientes eficiente a la a la multiprogramacimultiprogramacióón.n.

►► Se divide el espacio de usuario en un conjunto de Se divide el espacio de usuario en un conjunto de regiones o regiones o particionesparticiones..

Cada regiCada regióón alberga un proceso. n alberga un proceso.

►► Dos variantes:Dos variantes:MultiprogramaciMultiprogramacióón con nn con núúmero fijo de tareasmero fijo de tareas (MFT): (MFT): particiones estparticiones estááticasticas..MultiprogramaciMultiprogramacióón con nn con núúmero variable de tareasmero variable de tareas(MVT): (MVT): particiones dinparticiones dináámicasmicas..

Page 14: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Con reubicaciCon reubicacióón estn estááticatica

►► Los lLos líímites se actualizan en los cambios de contexto, con la mites se actualizan en los cambios de contexto, con la informaciinformacióón del bloque de control del proceso en cuestin del bloque de control del proceso en cuestióón.n.

Dir. físicaCPU

Lím. inferior

SÍ≥

TRAP

NO

P3

P2

P1

SOLím. superior

SÍ≤

TRAP

NOP2

Page 15: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Con reubicaciCon reubicacióón dinn dináámicamica

►► El tamaEl tamañño y la direccio y la direccióón base se actualizan en los cambios n base se actualizan en los cambios de contexto.de contexto.

Dir. lógicaCPU

Tamaño

SÍ≤

TRAP

NO

P3

P2

P1

SODir. base

Dir. física

P2

+

Page 16: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

MFTMFT

►► Las particiones de la memoria son fijas, definidas Las particiones de la memoria son fijas, definidas a prioria priori..

►► AsignaciAsignacióón de procesos a particiones:n de procesos a particiones:Una Una cola de procesos cola de procesos por participor particióón.n.►►Estrategia Estrategia bestbest--fitfit:: cada proceso se asigna a la particicada proceso se asigna a la particióón mn máás s

pequepequeñña que puede albergarlo.a que puede albergarlo.►►Posibilidad de particiones vacPosibilidad de particiones vacíías aas aúún habiendo procesos n habiendo procesos

preparados que cabrpreparados que cabríían en ellas.an en ellas.

Una Una úúnica cola.nica cola.►►Estrategia Estrategia bestbest--fitfit--onlyonly..►►Estrategia Estrategia bestbest--fitfit--availableavailable:: los procesos entran en la particilos procesos entran en la particióón n

mmáás peques pequeñña en que caben de entre las disponibles.a en que caben de entre las disponibles.

Page 17: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

EjemploEjemplo►► El proceso de 5KB entra El proceso de 5KB entra

en la particien la particióón de 6KB.n de 6KB.►► El proceso de 2KB entra El proceso de 2KB entra

en una particien una particióón de 2KB.n de 2KB.►► BestBest--fitfit--onlyonly::

El proceso de 3KB espera.El proceso de 3KB espera.Con exploraciCon exploracióón de la cola, n de la cola, el proceso de 7KB entra en el proceso de 7KB entra en la particila particióón de 12KB.n de 12KB.

►► BestBest--fitfit--availableavailable::El proceso de 3KB entra El proceso de 3KB entra en la particien la particióón de 12KB.n de 12KB.

12KB

6KB

2KB

SO

7KB 3KB 2KB 5KB

2KB

Page 18: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

MMáás sobre MFTs sobre MFT

►► Utilizando Utilizando intercambiointercambio, se puede aumentar el , se puede aumentar el grado de multiprogramacigrado de multiprogramacióón mn máás alls alláá del ndel núúmero mero de particiones.de particiones.

Los procesos pueden residir en particiones distintas Los procesos pueden residir en particiones distintas durante su ejecucidurante su ejecucióón sn sóólo con reubicacilo con reubicacióón dinn dináámica.mica.

►► ¿¿QuQuéé hacer si un proceso solicita hacer si un proceso solicita mmáás memorias memoria, , excediendo el tamaexcediendo el tamañño de la particio de la particióón asignada?n asignada?

No conceder mNo conceder máás memoria y abortar la ejecucis memoria y abortar la ejecucióón. n. Encolar el proceso en espera de una particiEncolar el proceso en espera de una particióón n suficientemente grande.suficientemente grande.►►Exige reubicaciExige reubicacióón dinn dináámica.mica.

Page 19: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

FragmentaciFragmentacióónn

►► Aprovechamiento subAprovechamiento subóóptimo de la memoria.ptimo de la memoria.►► FragmentaciFragmentacióón interna:n interna: memoria asignada que no se utiliza.memoria asignada que no se utiliza.►► FragmentaciFragmentacióón externa:n externa: memoria desocupada que no puede memoria desocupada que no puede

aprovecharse para dar cabida a nuevos procesos.aprovecharse para dar cabida a nuevos procesos.

10KB

SO

4KB 4KB 4KB

6KB 6KB3KB

7KB FI 3KB

FI 1KB

FE 8KB

►► En MFT no habrEn MFT no habríía fragmentacia fragmentacióón si las particiones coincidieran con el n si las particiones coincidieran con el tamatamañño de los procesos.o de los procesos.

Page 20: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

MVTMVT

►► El tamaEl tamañño y no y núúmero de las particiones de la memoria varmero de las particiones de la memoria varíía a dindináámicamente.micamente.

Mayor flexibilidadMayor flexibilidad que MFT.que MFT.Elimina la fragmentaciElimina la fragmentacióón interna: a cada proceso se le asigna n interna: a cada proceso se le asigna úúnicamente la memoria que va a utilizar.nicamente la memoria que va a utilizar.

SO

P1

SO

P1

SO

P2

P1

SO

P2

P3

P1

SO

P3

P1

SO

P4

P3

Page 21: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Hardware y software para MVTHardware y software para MVT

►► Mismo Mismo hardwarehardware que en MFT.que en MFT.Predominantemente, reubicaciPredominantemente, reubicacióón dinn dináámica.mica.

►► El SO mantiene una El SO mantiene una lista de huecoslista de huecos, y asigna memoria , y asigna memoria segsegúún una determinada estrategia:n una determinada estrategia:

FirstFirst--fitfit:: selecciona el primer hueco suficientemente grande.selecciona el primer hueco suficientemente grande.BestBest--fitfit:: selecciona el hueco mselecciona el hueco máás peques pequeñño de tamao de tamañño suficiente.o suficiente.►► Hay que explorar toda la lista, salvo que estHay que explorar toda la lista, salvo que estéé ordenada por tamaordenada por tamañño.o.►► Tiende a generar huecos pequeTiende a generar huecos pequeñños, cuyo rastreo es comparativamente os, cuyo rastreo es comparativamente

costoso.costoso.WorstWorst--fitfit:: selecciona el hueco mselecciona el hueco máás grande.s grande.►► Hay que explorar toda la lista, salvo que estHay que explorar toda la lista, salvo que estéé ordenada por tamaordenada por tamañño.o.►► Pretende crear huecos grandes.Pretende crear huecos grandes.

Page 22: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

CompactaciCompactacióónn

►► La fragmentaciLa fragmentacióón externa en MVT puede ser grande, y en n externa en MVT puede ser grande, y en general aumenta con el tiempo.general aumenta con el tiempo.

Caso extremo:Caso extremo: un hueco desperdiciado entre cada dos procesos.un hueco desperdiciado entre cada dos procesos.

►► El problema se alivia con El problema se alivia con compactacicompactacióónn, desplazando , desplazando procesos en un sentido y huecos en otro.procesos en un sentido y huecos en otro.

El desplazamiento obliga a detener la computaciEl desplazamiento obliga a detener la computacióón.n.Se necesita Se necesita reubicacireubicacióón dinn dináámicamica..¿¿CuCuáándo compactar?ndo compactar?►► Cuando un proceso no pueda alojarse en memoria.Cuando un proceso no pueda alojarse en memoria.►► De modo preventivo, cuando se exceda un determinado nivel de De modo preventivo, cuando se exceda un determinado nivel de

fragmentacifragmentacióón.n.►► Cuando se realice algCuando se realice algúún n intercambiointercambio..

Page 23: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

PaginaciPaginacióónn

Page 24: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

PaginaciPaginacióónn

►► El espacio lEl espacio lóógico de los gico de los procesos se divide en procesos se divide en ppááginasginas de tamade tamañño fijo.o fijo.

►► La memoria se divide en La memoria se divide en marcosmarcos, del mismo tama, del mismo tamañño o que las pque las pááginas.ginas.

►► Las pLas pááginas se asignan a ginas se asignan a marcos, posiblemente de marcos, posiblemente de manera manera no contiguano contigua..

P1

P2

Pág. 1

Pág. 2

Pág. 3

Pág. 2

Pág. 1

Pág. 1

Pág. 2

Pág. 3

Pág. 2

Pág. 1

Page 25: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

HardwareHardware de paginacide paginacióónn

►► Las direcciones lLas direcciones lóógicas se descomponen en gicas se descomponen en nnúúmero de pmero de pááginagina (p) y (p) y desplazamientodesplazamiento dentro de la misma (d).dentro de la misma (d).

►► La MMU vincula nLa MMU vincula núúmeros de pmeros de páágina a marcos concretos de la memoria gina a marcos concretos de la memoria ffíísica.sica.

p dDir. lógica

CPU

mVPTBR

MPm d

Dir. física

Tabla de páginas

V=1 TRAPNO

Page 26: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ObservacionesObservaciones

►► El tamaEl tamañño de po de pááginas y marcos es ginas y marcos es potencia de 2potencia de 2..►► Igual nIgual núúmero de bits para mero de bits para pp y para y para mm: los : los

procesos no pueden direccionar mprocesos no pueden direccionar máás memoria que s memoria que la que hay.la que hay.

►► Hay Hay una tabla de puna tabla de pááginas para cada procesoginas para cada proceso..►► Cuando hay pocas pCuando hay pocas pááginas, las tablas pueden ginas, las tablas pueden

alojarse en registros de la CPU. Lo habitual, sin alojarse en registros de la CPU. Lo habitual, sin embargo, es almacenarlas embargo, es almacenarlas en la propia memoriaen la propia memoria..

En memoria, cada entrada de la tabla ha de ocupar En memoria, cada entrada de la tabla ha de ocupar un un nnúúmero entero de palabrasmero entero de palabras..

Page 27: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Puntos fuertesPuntos fuertes

►► No hay No hay fragmentacifragmentacióón externan externa, y la , y la asignaciasignacióónn de memoria de memoria es trivial.es trivial.

Cualquier marco libre es igualmente bueno.Cualquier marco libre es igualmente bueno.

►► La La fragmentacifragmentacióón internan interna se reduce a la se reduce a la úúltima pltima páágina de gina de cada proceso.cada proceso.

Mejor aprovechamiento de la memoria cuanto mMejor aprovechamiento de la memoria cuanto máás peques pequeññas sean as sean las plas pááginas.ginas.►► Caso peor:Caso peor: (1 p(1 páágina gina -- 1 palabra) 1 palabra) ×× nnúúmero de procesos.mero de procesos.►► En media:En media: ((½½ ppáágina) gina) ×× nnúúmero de procesos.mero de procesos.

►► Se facilita la Se facilita la comparticicomparticióónn: varios procesos pueden acceder : varios procesos pueden acceder a un mismo marco.a un mismo marco.

El cEl cóódigo compartido debe ser digo compartido debe ser reentrantereentrante ((i.ei.e. no debe . no debe automodificarseautomodificarse).).

Page 28: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Puntos dPuntos déébilesbiles

►► Si las tablas de pSi las tablas de pááginas se alojan en memoria, ginas se alojan en memoria, se duplica el se duplica el tiempo de accesotiempo de acceso efectivo a la misma.efectivo a la misma.

SoluciSolucióón: una n: una cachcachéé especial para entradas de las tablas de pespecial para entradas de las tablas de pááginas ginas ((TranslationTranslation LookasideLookaside BufferBuffer, TLB)., TLB).

►► Las tablas de pLas tablas de pááginas pueden ocupar un espacio ginas pueden ocupar un espacio considerable.considerable.

Ejemplo:Ejemplo: memoria de 4GB, pmemoria de 4GB, pááginas de 4KB y 4 ginas de 4KB y 4 bytesbytes por entrada por entrada tablas de tablas de 4MB por proceso.4MB por proceso.

Parece recomendable un tamaParece recomendable un tamañño de po de pááginas grande, para que las ginas grande, para que las tablas tengan pocas entradas.tablas tengan pocas entradas.►► Compromiso con la fragmentaciCompromiso con la fragmentacióón interna.n interna.

Soluciones:Soluciones:►► PaginaciPaginacióón multinivel.n multinivel.►► Tabla de pTabla de pááginas invertida.ginas invertida.

Page 29: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

PaginaciPaginacióón en 2 nivelesn en 2 niveles

►► A menudo, los procesos no utilizan todas las pA menudo, los procesos no utilizan todas las pááginas del espacio lginas del espacio lóógico.gico.Las pLas pááginas no utilizadas se pueden condensar en entradas de la TPE coginas no utilizadas se pueden condensar en entradas de la TPE con V=0.n V=0.Ejemplo (continEjemplo (continúúa):a):

►► Memoria de 4GB y pMemoria de 4GB y pááginas de 4KBginas de 4KB►► 4 4 bytesbytes por entrada en TPE y TPIpor entrada en TPE y TPI►► 10 bits para p10 bits para p11 y 10 para py 10 para p22►► Procesos de 12 MBProcesos de 12 MB

CPU

PTBR MP

m1V

TP Externa

p1 dDir. lógica

p2 m2 dDir. física

m2V

TP Interna

16KB en tablas por proceso16KB en tablas por proceso

Page 30: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ObservacionesObservaciones

►► El nEl núúmero de bits de pmero de bits de p22 se ajusta para aprovechar se ajusta para aprovechar al mal mááximo el marco de cada TPI.ximo el marco de cada TPI.

►► Si las tablas de pSi las tablas de pááginas se alojan en memoria, ginas se alojan en memoria, se se triplica el tiempo de accesotriplica el tiempo de acceso efectivo a la misma.efectivo a la misma.

►► Se pueden compartir Se pueden compartir TPIsTPIs..►► La idea es generalizable a mLa idea es generalizable a máás de 2 niveles.s de 2 niveles.

Page 31: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Tabla de pTabla de pááginas invertidaginas invertida►► Una Una úúnica tabla, en memoria, con tantas entradas como marcos.nica tabla, en memoria, con tantas entradas como marcos.

Cada entrada indica quCada entrada indica quéé ppáágina de qugina de quéé proceso se aloja en el marco proceso se aloja en el marco correspondiente.correspondiente.

►► Tantos accesos a memoria como entradas se recorren en la bTantos accesos a memoria como entradas se recorren en la búúsqueda.squeda.Una tabla Una tabla hashhash limita la blimita la búúsqueda a un nsqueda a un núúmero reducido de entradas.mero reducido de entradas.

►► Se dificulta la Se dificulta la comparticicomparticióónn..

CPU

MP

P dDir. lógica

p i dDir. física

P

pP

buscar i

Si no se encuentra nada, TRAP

Page 32: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

SegmentaciSegmentacióónn

Page 33: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

SegmentaciSegmentacióónn

►► El espacio lEl espacio lóógico de un proceso se concibe como gico de un proceso se concibe como un un conjunto de segmentosconjunto de segmentos de tamade tamañño variable.o variable.

Funciones, variables, pila, etc.Funciones, variables, pila, etc.

►► Similar a la MVTSimilar a la MVT, s, sóólo que los distintos segmentos lo que los distintos segmentos de un proceso no tienen por qude un proceso no tienen por quéé estar contiguos estar contiguos en memoria.en memoria.

Page 34: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

HardwareHardware de segmentacide segmentacióónn

s dDir. lógica

CPU

STBR

MP

baselong

Tabla de segmentos

SÍ≤

TRAP

NO

+

►► Las direcciones lLas direcciones lóógicas se descomponen en gicas se descomponen en nnúúmero de mero de segmentosegmento (s) y (s) y desplazamientodesplazamiento dentro del mismo (d).dentro del mismo (d).

Page 35: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ObservacionesObservaciones

►► Los campos Los campos longlong y y dd tienen igual ntienen igual núúmero de bits.mero de bits.►► El campo El campo basebase tiene tantos bits como las tiene tantos bits como las

direcciones de memoria fdirecciones de memoria fíísica.sica.►► No se necesita No se necesita bitbit de validez.de validez.

La protecciLa proteccióón la proporciona el campo long.n la proporciona el campo long.

►► Hay Hay una tabla de segmentos para cada procesouna tabla de segmentos para cada proceso..►► Nuevamente, las tablas suelen almacenarse en Nuevamente, las tablas suelen almacenarse en

memoria, con cada entrada ocupando memoria, con cada entrada ocupando un nun núúmero mero entero de palabrasentero de palabras..

Page 36: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Puntos fuertesPuntos fuertes

►►Se divide el espacio lSe divide el espacio lóógico en partes gico en partes semsemáánticamente definidas.nticamente definidas.

Optimiza la Optimiza la protecciproteccióónn y la y la comparticicomparticióónn..

►►No hay fragmentaciNo hay fragmentacióón interna.n interna.

Page 37: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Puntos dPuntos déébilesbiles

►► Se duplica el tiempo de accesoSe duplica el tiempo de acceso efectivo a la efectivo a la memoria.memoria.

SoluciSolucióón: una n: una cachcachéé especial para entradas de las tablas especial para entradas de las tablas de segmentos.de segmentos.

►► Las tablas de segmentos pueden ocupar un Las tablas de segmentos pueden ocupar un espacio considerable.espacio considerable.

►► Hay Hay fragmentacifragmentacióón externan externa..PolPolíítica de asignacitica de asignacióón n firstfirst--fitfit, , bestbest--fitfit o o worstworst--fitfit..CompactaciCompactacióón.n.Reducir el tamaReducir el tamañño medio de los segmentos aumentaro medio de los segmentos aumentaríía a el espacio consumido en tablas.el espacio consumido en tablas.

Page 38: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

SegmentaciSegmentacióón paginadan paginada

Page 39: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

SegmentaciSegmentacióón paginadan paginada

►►CombinaciCombinacióón de n de segmentacisegmentacióón y paginacin y paginacióónn..Los segmentos se dividen en pLos segmentos se dividen en pááginas y se ginas y se meten en marcos.meten en marcos.

►►Se mantiene la visiSe mantiene la visióón natural del espacio n natural del espacio llóógico de los procesos.gico de los procesos.

►►Se trivializa la Se trivializa la asignaciasignacióón n (cualquier marco (cualquier marco es igualmente bueno), y se elimina la es igualmente bueno), y se elimina la fragmentacifragmentacióón externan externa..

Page 40: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

HardwareHardware de segmentacide segmentacióón paginadan paginada

►► El desplazamiento dentro del segmento se descompone en un nEl desplazamiento dentro del segmento se descompone en un núúmero mero de pde páágina (p) y un desplazamiento dentro de gina (p) y un desplazamiento dentro de éésta (dsta (d’’).).

s dDir. lógica

CPU

STBR

MP

baselong

Tabla de segmentos

SÍ≤

TRAP

NO

m

p d’ m d’

Page 41: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ObservacionesObservaciones

►► Una tabla de segmentos por proceso, y una tabla Una tabla de segmentos por proceso, y una tabla de pde pááginas por segmento.ginas por segmento.

►► Se introduce Se introduce fragmentacifragmentacióón internan interna, en la , en la úúltima ltima ppáágina de cada segmento.gina de cada segmento.

►► Con todas las tablas en memoria, Con todas las tablas en memoria, se triplica el se triplica el tiempo efectivo de accesotiempo efectivo de acceso a la misma.a la misma.

►► En comparaciEn comparacióón con la segmentacin con la segmentacióón, aumenta el n, aumenta el espacio consumido en tablas.espacio consumido en tablas.

►► La La paginacipaginacióón segmentadan segmentada (paginaci(paginacióón n segmentando la tabla de psegmentando la tabla de pááginas) tiene poco ginas) tiene poco sentido prsentido prááctico, y apenas se usa.ctico, y apenas se usa.

Page 42: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Memoria virtualMemoria virtual

Page 43: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Memoria virtualMemoria virtual

►► Conjunto de tConjunto de téécnicas que permiten ejecutar procesos que cnicas que permiten ejecutar procesos que no se no se encuentran completamente cargados en memoriaencuentran completamente cargados en memoria..

►► Principio de cercanPrincipio de cercaníías:as: las referencias a memoria tienden a agruparse.las referencias a memoria tienden a agruparse.EjecuciEjecucióón de instrucciones en secuencia, acceso a tablas, bucles, etc.n de instrucciones en secuencia, acceso a tablas, bucles, etc.

►► Muchos programas contienen cMuchos programas contienen cóódigo para digo para opciones poco utilizadasopciones poco utilizadas, , que no hay por quque no hay por quéé tener siempre en memoria.tener siempre en memoria.

localidad(t1)

Dire

ccio

nes

acce

dida

s

tt1

Page 44: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Memoria virtualMemoria virtual

►► Las partes de un proceso que no se estLas partes de un proceso que no se estéén utilizando en un n utilizando en un momento dado pueden guardarse momento dado pueden guardarse en almacenamiento en almacenamiento secundario secundario (t(tíípicamente, en un disco duro).picamente, en un disco duro).

Se cargan y descargan partes segSe cargan y descargan partes segúún sea necesario.n sea necesario.

►► Cada proceso ocupa menos memoria Cada proceso ocupa menos memoria se puede se puede incrementar el incrementar el grado de multiprogramacigrado de multiprogramacióónn y el y el aprovechamiento de la CPUaprovechamiento de la CPU..

En teorEn teoríía, para ejecutar un proceso llega con tener en memoria a, para ejecutar un proceso llega con tener en memoria la la siguiente instruccisiguiente instruccióónn y y los datoslos datos que que éésta vaya a utilizar.sta vaya a utilizar.En la prEn la prááctica, se intenta ctica, se intenta aproximar la localidadaproximar la localidad del proceso.del proceso.Conjunto residente:Conjunto residente: parte del espacio lparte del espacio lóógico de un proceso que se gico de un proceso que se encuentra en la memoria principal.encuentra en la memoria principal.

Page 45: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Memoria virtualMemoria virtual

►► Los procesos no estLos procesos no estáán limitados por el taman limitados por el tamañño de o de la memoria principal.la memoria principal.

Antes, para ejecutar procesos muy grandes se recurrAntes, para ejecutar procesos muy grandes se recurríía a a a la programacila programacióón de n de superposiciones (superposiciones (overlaysoverlays))..►►Esta tEsta téécnica ha quedado relegada a sistemas empotrados y/o cnica ha quedado relegada a sistemas empotrados y/o

de tiempo real.de tiempo real.

►► Al no tener que cargar o intercambiar procesos Al no tener que cargar o intercambiar procesos enteros, enteros, se reduce la carga de E/Sse reduce la carga de E/S..

Page 46: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

InconvenientesInconvenientes

►►Complejidad elevada:Complejidad elevada:¿¿CCóómo repartir la memoria entre los procesos?mo repartir la memoria entre los procesos?¿¿CuCuáántos procesos pueden residir en memoria ntos procesos pueden residir en memoria simultsimultááneamente?neamente?¿¿QuQuéé partes de los procesos cargar o partes de los procesos cargar o descargar? descargar?

►►Rendimiento:Rendimiento:Los accesos a disco son un Los accesos a disco son un cuello de botellacuello de botella..

Page 47: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Esquemas de memoria virtualEsquemas de memoria virtual

►►Se puede implementar memoria virtual con Se puede implementar memoria virtual con cualquier esquema de cualquier esquema de reubicacireubicacióón dinn dináámicamicay y asignaciasignacióón no contiguan no contigua..

MMáás fs fáácil con esquemas que paginan la cil con esquemas que paginan la memoria.memoria.Los algoritmos se complican con segmentos de Los algoritmos se complican con segmentos de tamatamañño variable.o variable.

►►El esquema mEl esquema máás frecuente es la s frecuente es la paginacipaginacióón bajo demandan bajo demanda..

Page 48: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

PaginaciPaginacióón bajo n bajo demandademanda

Page 49: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

PaginaciPaginacióón bajo demandan bajo demanda

►► PaginaciPaginacióón + n + paginadorpaginador perezosoperezoso..No se carga una pNo se carga una páágina en memoria hasta que una gina en memoria hasta que una instrucciinstruccióón necesita acceder a ella.n necesita acceder a ella.

A

B

C

D

E

Proceso

A B

D E

Disco

C

MP

A

C

Memoriavirtual paginada

Page 50: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Soporte Soporte hardwarehardware

►►La traducciLa traduccióón de direcciones ln de direcciones lóógicas sigue el gicas sigue el mismo esquemamismo esquema que la paginacique la paginacióónn……

…… ssóólo que puede haber lo que puede haber mmáás bits en el campo ps bits en el campo pde la direccide la direccióón ln lóógica.gica.

►►Las pLas pááginas en memoria y las que estginas en memoria y las que estáán en n en disco se distinguen disco se distinguen con el con el bitbit de validezde validez::

1 1 ppáágina vgina váálida y cargada en memoria.lida y cargada en memoria.0 0 ppáágina invgina inváálida o vlida o váálida pero no cargada.lida pero no cargada.

Page 51: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Soporte Soporte hardwarehardware

►► Al encontrar V=0, el SO comprueba si se trata de un Al encontrar V=0, el SO comprueba si se trata de un acceso invacceso inváálidolido o o un un fallo de pfallo de pááginagina en la rutina de atencien la rutina de atencióón a la TRAP.n a la TRAP.

►► A menudo, las entradas con V=0 contienen la direcciA menudo, las entradas con V=0 contienen la direccióón de disco donde n de disco donde se almacena la pse almacena la páágina correspondiente.gina correspondiente.

A

B

C

D

E

Proceso

A B

D E

Disco

C

MP

A

C

Tabla de páginas

-0

-0

-0

-0

-0

31

-0

11

Page 52: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

TamaTamañño de la tabla de po de la tabla de pááginasginas

►► Con memoria virtual, la tabla de pCon memoria virtual, la tabla de pááginas puede volverse ginas puede volverse extremadamente grandeextremadamente grande..

Ejemplo:Ejemplo: memoria virtual de 64GB, pmemoria virtual de 64GB, pááginas de 4KB y 4 ginas de 4KB y 4 bytesbytes por por entrada entrada tablas de 64tablas de 64MB (en memoria real) por proceso.MB (en memoria real) por proceso.

►► Posibles soluciones:Posibles soluciones:PaginaciPaginacióón multinivel:n multinivel:►► SSóólo tiene que estar siempre en memoria la tabla de plo tiene que estar siempre en memoria la tabla de pááginas externa.ginas externa.►► Las tablas de pLas tablas de pááginas internas pueden alojarse en disco mientras no se ginas internas pueden alojarse en disco mientras no se

utilizan.utilizan.SegmentaciSegmentacióón paginada:n paginada:►► SSóólo tiene que estar siempre en memoria la tabla de segmentos.lo tiene que estar siempre en memoria la tabla de segmentos.►► Las tablas de pLas tablas de pááginas de cada segmento pueden alojarse en disco ginas de cada segmento pueden alojarse en disco

mientras no se utilizan.mientras no se utilizan.Tabla de pTabla de pááginas invertida:ginas invertida:►► El SO debe mantener tablas con informaciEl SO debe mantener tablas con informacióón sobre las pn sobre las pááginas que no ginas que no

estestáán en memoria.n en memoria.

Page 53: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

El fallo de pEl fallo de pááginagina

►► Ante un fallo de pAnte un fallo de páágina, hay que gina, hay que localizar la plocalizar la pááginaginasolicitada en el disco, solicitada en el disco, cargarlacargarla en memoria y en memoria y reiniciar la reiniciar la instrucciinstruccióónn..

Es un proceso de duraciEs un proceso de duracióón potencialmente muy larga y variable, n potencialmente muy larga y variable, principalmente por las operaciones de E/S.principalmente por las operaciones de E/S.

►► El repertorio de instrucciones puede plantear ciertos El repertorio de instrucciones puede plantear ciertos desafdesafííos, por la dificultad de deshacer los efectos de una os, por la dificultad de deshacer los efectos de una instrucciinstruccióón parcialmente ejecutada.n parcialmente ejecutada.

MOV (R1)+,DIR:MOV (R1)+,DIR: copiar en DIR el contenido de la posicicopiar en DIR el contenido de la posicióón de n de memoria apuntada por R1, e incrementar R1.memoria apuntada por R1, e incrementar R1.►► Si ocurre un fallo de pSi ocurre un fallo de páágina al intentar acceder a DIR, hay que gina al intentar acceder a DIR, hay que

devolver R1 a su valor anterior.devolver R1 a su valor anterior.

Page 54: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

RendimientoRendimiento

►► ttacac:: tiempo de acceso sin memoria virtual (en paginacitiempo de acceso sin memoria virtual (en paginacióón, n, doble del tiempo de acceso a una palabra de la memoria).doble del tiempo de acceso a una palabra de la memoria).

►► p:p: probabilidad de fallo de pprobabilidad de fallo de páágina.gina.►► ttfpfp:: tiempo medio de atencitiempo medio de atencióón a un fallo de pn a un fallo de páágina.gina.►► Tiempo de acceso efectivo medio:Tiempo de acceso efectivo medio:

►► Para Para ttacac=1=1μμs y s y ttfpfp=10ms, una degradaci=10ms, una degradacióónninferior al 10% requiere inferior al 10% requiere p<10p<10--55..

Un fallo de pUn fallo de páágina cada 100000 referencias.gina cada 100000 referencias.

tef=(1-p)×tac+p×(tfp+tac)

Page 55: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Soporte Soporte softwaresoftware

►► En la rutina de atenciEn la rutina de atencióón al fallo de pn al fallo de páágina gina interviene una cantidad de interviene una cantidad de softwaresoftware considerable:considerable:

Reemplazo:Reemplazo: si no hay marcos libres cuando se produce si no hay marcos libres cuando se produce un fallo de pun fallo de páágina, hay que desalojar alguna de las que gina, hay que desalojar alguna de las que residen en memoria principal.residen en memoria principal.GestiGestióón del conjunto residente:n del conjunto residente: decidir cudecidir cuáántos marcos ntos marcos se asignan a cada proceso.se asignan a cada proceso.Control de carga:Control de carga: decidir cudecidir cuáántos procesos se pueden ntos procesos se pueden mantener en memoria simultmantener en memoria simultááneamente.neamente.

Page 56: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ReemplazoReemplazo

Page 57: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

ReemplazoReemplazo

►► Se trata de seleccionar una Se trata de seleccionar una ppáágina vgina vííctimactima para para descargar de la memoria, de entre un conjunto de descargar de la memoria, de entre un conjunto de candidatas.candidatas.

Pueden ser pPueden ser pááginas del mismo proceso (ginas del mismo proceso (reemplazo reemplazo locallocal) o de cualquiera () o de cualquiera (reemplazo globalreemplazo global).).

►► Los distintos algoritmos se evalLos distintos algoritmos se evalúúan sobre an sobre cadenas cadenas de referenciasde referencias, fijando el n, fijando el núúmero de marcos mero de marcos disponibles.disponibles.

Intuitivamente, a mayor nIntuitivamente, a mayor núúmero de marcos, menor mero de marcos, menor nnúúmero de fallos de pmero de fallos de páágina.gina.

Page 58: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo FIFOAlgoritmo FIFO

►► FIFO FIFO ((FirstFirst In, In, FirstFirst Out)Out):: se reemplaza la pse reemplaza la páágina que lleva gina que lleva mmáás tiempo en memoria.s tiempo en memoria.

Ejemplo: Ejemplo: con 3 marcos disponibles,con 3 marcos disponibles, la cadena de referencias la cadena de referencias (5,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,5,0,1) produce 15 fallos de (5,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,5,0,1) produce 15 fallos de ppáágina.gina.

122222333330001111--M2

0011111222223330000-M1

55500000004442222555M0

10510212303240302105

Page 59: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo FIFOAlgoritmo FIFO

►►Ventaja:Ventaja: muy fmuy fáácil de implementar.cil de implementar.►►Inconvenientes:Inconvenientes:

El instante de carga El instante de carga no es una medida de usono es una medida de uso: : la pla páágina sacrificada podrgina sacrificada podríía volver a necesitarse a volver a necesitarse pronto.pronto.AnomalAnomalíía de a de BeladyBelady: : existen cadenas de existen cadenas de referencias tales que con referencias tales que con mm marcos se producen marcos se producen menos fallos de pmenos fallos de páágina que con gina que con m+1m+1..

Page 60: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

La anomalLa anomalíía de a de BeladyBelady

►► Con 3 marcos, la cadena Con 3 marcos, la cadena (1,2,3,4,1,2,5,1,2,3,4,5) (1,2,3,4,1,2,5,1,2,3,4,5) produce 9 fallos de pproduce 9 fallos de páágina.gina.

►► Con 4 marcos, en cambio, Con 4 marcos, en cambio, produce 10. produce 10.

►► Los algoritmos que no Los algoritmos que no exhiben este exhiben este comportamiento se comportamiento se denominan denominan algoritmos de algoritmos de pilapila..

4422222113--M2

33311111222-M1

555555444111M0

543215214321

2222333333--M2

333444444---M3

51111222222-M1

445555111111M0

543215214321

Page 61: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo Algoritmo óóptimoptimo

►► Idealmente, se deberIdealmente, se deberíía reemplazar la pa reemplazar la páágina que tardargina que tardaráámmáás tiempo en s tiempo en referenciarsereferenciarse..

El objetivo es El objetivo es retardar el fallo de pretardar el fallo de pááginagina todo cuanto sea posible.todo cuanto sea posible.En el mismo ejemplo de antes se producen 9 fallos de pEn el mismo ejemplo de antes se producen 9 fallos de páágina.gina.

111111133333333111--M2

0000000000444000000-M1

55522222222222222555M0

10510212303240302105

Page 62: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo Algoritmo óóptimoptimo

►► El algoritmo El algoritmo óóptimo garantiza ptimo garantiza la tasa de fallos de la tasa de fallos de ppáágina mgina máás baja posibles baja posible para un npara un núúmero de mero de marcos dado.marcos dado.

►► Sin embargo, es Sin embargo, es difdifíícilmente cilmente implementableimplementable, , porque requiere conocer cadenas de referencias porque requiere conocer cadenas de referencias futuras.futuras.

►► Se utiliza como Se utiliza como patrpatróónn para la evaluacipara la evaluacióón de otros n de otros algoritmos.algoritmos.

Page 63: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo LRUAlgoritmo LRU

►► LRU LRU (Least Recently Used)(Least Recently Used):: se reemplaza la pse reemplaza la páágina que gina que lleva mlleva máás tiempo sin referenciarse.s tiempo sin referenciarse.

Por el principio de cercanPor el principio de cercaníías, se toma el pasado reciente como una as, se toma el pasado reciente como una aproximaciaproximacióónn del futuro inmediato.del futuro inmediato.En el ejemplo se producen 12 fallos de pEn el ejemplo se producen 12 fallos de páágina.gina.

555222222222333111--M2

0000033333300000000-M1

11111110004442222555M0

10510212303240302105

Page 64: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo LRUAlgoritmo LRU

►► LRU es un algoritmo de pila, que suele dar una LRU es un algoritmo de pila, que suele dar una buena aproximacibuena aproximacióónn del algoritmo del algoritmo óóptimo.ptimo.

►► Inconveniente: implementaciones costosas.Inconveniente: implementaciones costosas.Contador Contador de referencias a pde referencias a páágina:gina:►►En cada referencia, el valor del contador se copia en la entradaEn cada referencia, el valor del contador se copia en la entrada

correspondiente de la tabla de pcorrespondiente de la tabla de pááginas.ginas.►►Se reemplaza siempre la pSe reemplaza siempre la páágina cuya entrada en la tabla tiene gina cuya entrada en la tabla tiene

el valor mel valor máás peques pequeñño.o.►►El desbordamiento provoca transitorios de rendimiento muy El desbordamiento provoca transitorios de rendimiento muy

pobre pobre aumentar el naumentar el núúmero de bits del contador.mero de bits del contador.PilaPila de referencias:de referencias:►►En cada referencia se extrae la pEn cada referencia se extrae la páágina correspondiente de la gina correspondiente de la

pila y se pone en la cima.pila y se pone en la cima.►►Se reemplaza siempre la pSe reemplaza siempre la páágina que estgina que estáá en la base de la pila.en la base de la pila.

Page 65: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Algoritmo de la 2Algoritmo de la 2ªª oportunidadoportunidad

►► AproximaciAproximacióón de LRU por medio de 1 solo n de LRU por medio de 1 solo bitbit..Cada vez que se referencia una pCada vez que se referencia una páágina, se pone R=1 en gina, se pone R=1 en la entrada correspondiente de la tabla de pla entrada correspondiente de la tabla de pááginas.ginas.

►► 22ªª oportunidad = FIFO + oportunidad = FIFO + bitbit R.R.Al recorrer la cola, se examina el Al recorrer la cola, se examina el bitbit R:R:►►Si Si R=0R=0, se reemplaza la p, se reemplaza la páágina.gina.►►Si Si R=1R=1, se pone R=0 y se pasa la p, se pone R=0 y se pasa la páágina al final de la cola.gina al final de la cola.

►► Si R=1 en todas las pSi R=1 en todas las pááginas, el algoritmo de la 2ginas, el algoritmo de la 2ªªoportunidad degenera en FIFO.oportunidad degenera en FIFO.

AAúún asn asíí, el rendimiento suele ser considerablemente , el rendimiento suele ser considerablemente mejor.mejor.

Page 66: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

DirtyDirty bitbit►► Se puede aSe puede aññadir un adir un bitbit M M ((dirtydirty bitbit)), que se activa cuando , que se activa cuando

se modifica el contenido de la pse modifica el contenido de la páágina correspondiente.gina correspondiente.Para valores iguales del Para valores iguales del bitbit R, es mejor sacrificar una pR, es mejor sacrificar una páágina con gina con M=0 porque M=0 porque no hay que escribirla en discono hay que escribirla en disco..

►► Algoritmo de la 2Algoritmo de la 2ªª oportunidad mejorado:oportunidad mejorado:1.1. Con FIFO como base, se selecciona para reemplazo la primera Con FIFO como base, se selecciona para reemplazo la primera

ppáágina que tenga R=0 y M=0.gina que tenga R=0 y M=0.2.2. Si no existe tal pSi no existe tal páágina, se busca la primera pgina, se busca la primera páágina con R=0 y gina con R=0 y

M=1.M=1.•• Durante la bDurante la búúsqueda, se pone R=0 en todas las entradas que se squeda, se pone R=0 en todas las entradas que se

recorren y se envrecorren y se envíían al final de la cola.an al final de la cola.3.3. Si aSi aúún no se ha encontrado vn no se ha encontrado vííctima, se repiten los pasos 1 y 2.ctima, se repiten los pasos 1 y 2.

Page 67: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

GestiGestióón del conjunto n del conjunto residente y control de cargaresidente y control de carga

Page 68: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

GestiGestióón del conjunto residente y n del conjunto residente y control de cargacontrol de carga

►► ¿¿CuCuáántos marcos asignar a un proceso?ntos marcos asignar a un proceso?El El mmíínimonimo lo determina el repertorio de instrucciones.lo determina el repertorio de instrucciones.►►E.gE.g. ADD /DIR1,/DIR2,/DIR3 puede necesitar 4 marcos:. ADD /DIR1,/DIR2,/DIR3 puede necesitar 4 marcos:

1 para la propia instrucci1 para la propia instruccióón, 1 para cada sumando y 1 para el n, 1 para cada sumando y 1 para el resultado.resultado.

El El mmááximoximo lo fija el tamalo fija el tamañño de la memoria principal.o de la memoria principal.PolPolííticas de asignaciticas de asignacióón:n:►►Fija:Fija: la asignacila asignacióón se decide en el momento de la carga.n se decide en el momento de la carga.

Requiere reemplazo local.Requiere reemplazo local.►►Variable:Variable: la asignacila asignacióón se decide dinn se decide dináámicamente.micamente.

Reemplazo local o global.Reemplazo local o global.

►► ¿¿CuCuáántos procesos mantener simultntos procesos mantener simultááneamente en neamente en memoria?memoria?

Page 69: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

HiperpaginaciHiperpaginacióónn ((thrashingthrashing))►► Si un proceso no dispone de marcos suficientes para su localidadSi un proceso no dispone de marcos suficientes para su localidad, pasa , pasa

mmáás tiempo en fallo de ps tiempo en fallo de páágina que ejecutgina que ejecutáándose ndose hiperpaginacihiperpaginacióónn..►► Con Con asignaciasignacióón fijan fija, la , la hiperpaginacihiperpaginacióónn afecta a afecta a procesos aisladosprocesos aislados..►► Con Con asignaciasignacióón variable y reemplazo globaln variable y reemplazo global, se produce , se produce a nivel de a nivel de

sistemasistema cuando la suma de las localidades de todos los procesos no cuando la suma de las localidades de todos los procesos no cabe en la memoria.cabe en la memoria.

En ese caso, la utilizaciEn ese caso, la utilizacióón de la CPU cae drn de la CPU cae dráásticamente.sticamente.

Hay que suspender procesos, descargando su conjunto residente.Hay que suspender procesos, descargando su conjunto residente.

hiperpaginación

Grado de multiprogramación

Util

izac

ión

de la

CPU

Page 70: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Modelo del conjunto de trabajoModelo del conjunto de trabajo

►► Se define el Se define el conjunto de trabajoconjunto de trabajo ((workingworking set, WS)set, WS)de un proceso como el conjunto de pde un proceso como el conjunto de pááginas en sus ginas en sus úúltimas ltimas ΔΔ referencias a memoria.referencias a memoria.

WS una WS una aproximaciaproximacióón de la localidadn de la localidad del proceso.del proceso.Se puede Se puede aproximaraproximar con interrupciones pericon interrupciones perióódicas, a dicas, a partir de los bits R de la tabla de ppartir de los bits R de la tabla de pááginas.ginas.

WS={0,1,2,3,4}

556655111661532343102

Δ Δ

WS={5,6}

Page 71: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Modelo del conjunto de trabajoModelo del conjunto de trabajo

►► GestiGestióón del conjunto residenten del conjunto residente::Supervisar el conjunto de trabajo de cada proceso y Supervisar el conjunto de trabajo de cada proceso y asignar un nasignar un núúmero suficiente de marcos.mero suficiente de marcos.Descargar las pDescargar las pááginas que dejen de pertenecer al ginas que dejen de pertenecer al conjunto de trabajo.conjunto de trabajo.

►► Control de cargaControl de carga::Si la demanda total de marcos (Si la demanda total de marcos (ΣΣ WSWSii) supera el ) supera el nnúúmero de marcos de la memoria, se suspenden mero de marcos de la memoria, se suspenden procesos.procesos.En caso contrario, se pueden cargar procesos nuevos.En caso contrario, se pueden cargar procesos nuevos.

Page 72: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

Frecuencia de fallos de pFrecuencia de fallos de pááginagina

►► SoluciSolucióón mn máás directas directa a la a la hiperpaginacihiperpaginacióónn..►► En vez de supervisar el conjunto de trabajo, se En vez de supervisar el conjunto de trabajo, se

observa la observa la frecuencia de fallos de pfrecuencia de fallos de pááginagina (FFP)(FFP)de cada proceso.de cada proceso.

►► GestiGestióón del conjunto residenten del conjunto residente::Si la FFP excede un umbral superior, se asignan mSi la FFP excede un umbral superior, se asignan máás s marcos al proceso.marcos al proceso.Si la FFP se reduce por debajo de un umbral inferior, se Si la FFP se reduce por debajo de un umbral inferior, se le quitan marcos al proceso.le quitan marcos al proceso.

►► Control de carga:Control de carga: íídem, sdem, sóólo que a partir de la FFP lo que a partir de la FFP global.global.

Page 73: Sistemas operativosidtv.det.uvigo.es/~jgd/SO/diapositivas/7.pdfSistemas operativos Tema 7: Gestión de memoria La memoria principal La memoria es el componente central en la arquitectura

FinFin