Your SlideShare is downloading. ×
C7 memoria virtual_ssoo_mododecompatibilidad_
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

C7 memoria virtual_ssoo_mododecompatibilidad_

92
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
92
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sistemas Operativos Organización de la Memoria Memoria Real Memoria Virtual Sistemas Operativos Profesor: Your picture here Un solo Multiprogramación Ciclo 2012-1 Diaz Muñante Jorge proceso Multiprogramación Particiones Particiones fijas variables Segmentada Administración de la Memoria Virtual 1 Colas Varias colas Paginada Segmentada + Paginada Antecedentes Actividad de los procesos Particiones Particiones Manejo de errores Fijas Variables Fragmentación Fragmentación :: :: :: :: :: :: :: :: :: :: Interna Externa E1 E2 E3 E4 E5 E1 E2 E3 E4 E5 Tamaño del Tamaño del E6 E7 E8 E9 E10 E6 E7 E8 E9 E10 proceso limitado proceso limitado por el tamaño de por el tamaño de E11 E12 E13 :: :: E11 E12 E13 :: :: la partición la memoria real :: :: :: :: :: :: :: :: :: :: Asignación de Memoria En la practica rara vez se presentan todos los Tamaño total del proceso errores en una misma ejecución. 4 Actividad de los procesos Actividad de los procesos Manejo de tablas, vectores u otra estructura de datos Software base: Editor de texto :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: V1 V2 V3 V4 V5 V1 V2 V3 V4 V5 Conversión de V6 V7 V8 V9 V10 V6 V7 V8 V9 V10 Minusculas a V11 V12 V13 V14V15 V11 V12 V13 V14V15 Mayusculas :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: En la practica solo usamos pocos elementos de las En la practica usamos rara vez esta opción estructuras de datos. Ejm: Vector (100x100) y usamos solo (10x10) 5 6Diaz Muñante Jorge 1
  • 2. Sistemas Operativos Principio de localidad Premisa Referencias repetidas No se requiere que un proceso este almacenado en la memoria principal initializacion Inicio del Fin del en forma completa Cod. 1 Cod. 2 datos datos codigo codigo Ventajas Saltos esporadicos – No hay limite para el tamaño de los procesos working set: Fase inicial del Fase final del Fase Principal proceso proceso del proceso – Aumenta el numero de procesos en memoria – Disminución de las Operaciones e/s Dening – Principio de localidad – Las referencias de los procesos tienden agruparse en zonas pequeñas del espacio direccionable. Estas zonas ademas tienden a cambiar en forma intermitente. 7 8 Memoria Virtual Jerarquía de Memoria Es la separación de la memoria lógica del usuario de la memoria física Memoria Cache: Memoria real Memoria Virtual Ilusion de una Costo razonable Ilusion de una memoria memoria muy pero velocidad de gran tamaño rapida intermedia • Una gran memoria virtual cuando solo se dispone de una Virtual memory memoria física mas pequeña Main memory Cache Registers Words Lines (transferred Pages explicitly (transferred via load/store) automatically (transferred upon cache miss) automatically upon page fault) 9 10 La memoria virtual La paginación La ilusión de la memoria infinita - Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas. ∞ TLB Proceso A Proceso A Tabla Pagina Memoria Disco Memoria 500GB - Los marcos de página son la correspondencia de una página en la Fisica Virtual 1 GB memoria física, es decir, el espacio en la RAM donde realmente esta 4 GB la página, teniendo ambos el mismo tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la RAM se hacen en el tamaño de una página. Paginada Segmentada Segmentada Marco de + Paginada Página Proceso A RAM PáginaDiaz Muñante Jorge 2
  • 3. Sistemas Operativos Memoria Virtual con paginas Configuracion de la memoria virtual Continuidad Artificial Pag 0 Marco 0 Pag 1 Marco 1 Pag 2 Marco 2 Memoria Memoria real Virtual Pag 3 Marco 3 Pag 4 Marco 4 Pag 5 Marco 5 Pag 6 Espacio de direcciones Pag 7 4k reales Espacio de direccionamiento lógico 13 14 Memoria Virtual Estatica / Dinamica Tabla de Paginas Memoria Secundaria Principal (Disco Duro) Memoria Virtual de Sistema Operativo Proceso P Tabla de Página 0 Páginas de P Memoria Física Página 1 Página 0 Marco 2 Principal (RAM) 0 1 2 3 Página 2 Página 1 Marco 0 Página 3 Página 2 Sistema No está Operativo 4 5 6 7 … Página 3 No está P0 P1 P2 Página 4 Marco 6 Marco 0 Página 1 (direcciones lógicas) 8 9 10 11 … No Marco 1 Libre están Marco 2 Página 0 P3 P4 P5 P6 (direcciones Físicas) Marco 3 Libre Página n- Marco 5 . 1 Marco 4 Página n . Página n Marco 4 Marco 5 Página n-1 . Lista de Marco 6 Página 4 32 33 34 35 Marcos Libres … Libres Pn-1 Pn Marco 1 . Marco 3 Marco m Libre . Marco 7 . … … D-1 D Página n … Marco m 15 16 Fallo o falta de pagina Falla o falta de Pagina La pagina esta en El proceso trata de usar una pagina que no esta en memoria real. Sistema 3 memoria auxiliar Pasos: operativo – 1. Referencia a una pagina, verifica su bit de 2 Trampa validez (esta invalida = i) Cargar 1 Referencia Memoria – 2. Ocurre una trampa M Física – 3. SO busca un marco libre i – 4. Lleva la pagina del disco a la memoria 6 Reinicia la libre – 5. Actualiza la tabla de paginas instrucción Tabla de paginas 4 Carga la – 6. Reinicia la operación pagina 5 Restablece 17 tabla de pag. 18Diaz Muñante Jorge 3
  • 4. Sistemas Operativos Estructura tabla de páginas Compartiendo paginas Direcion Virtual # Pag Offset r w x v re m s c su pid g gd other otros Marco # (Proceso A): PageTablePtrA pag #0 V,R r Read (lectura) s Shared-compartida pag #1 V,R w Write (escritura) c caching page #2 pag V,R,W x Execute su super-pagina pag #3 V,R,W Pagina (ejecucion) v valida pid process id pag #4 N compartida re referenciada g (extended) guard pag #5 V,R,W m modificada gd guard data PageTablePtrB pag #0 V,R pag #1 N caching: páginas asociadas a registros de dispositivos pag #2 V,R,W Esta pagina fisica referenciada: 1 cuando se hace una referencia a una página pag #3 N aparece en los 2 procesos para leer o escribir page #4 pag V,R V,R modificada: recuperación marco, si página no ha sido pag #5 V,R,W modificada no se escribe a disco Valida o : 1 entrada valida y puede ser utilizada Direccion Virtual: # Pag Offset Process B presente/ausente 0 página no cargada en memoria 20 Traduccion de Direcciones Traduccion de direcciones Memoria Real Pagina # Memoria Real 0 1 2 3 4 5 6 7 Desplazamiento “d” 2k d DR instruccion Direccion Real = (5,10) Instruccion DV Memoria Virtual ¿? 0 1 2 3 4 5 6 7 d Direccion Virtual = (3,10) Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d) 21 22 Traduccion de direcciones Traduccion de direcciones Registro base Tab.Pag Dirección virtual a Pagina p Desplazamiento Dirección virtual d Page # d marco # d a + a a p + p d marco a+p + b+d b b Dirección Tabla de real Tabla de paginas Programa paginas Memoria física 23 paginación 24Diaz Muñante Jorge 4
  • 5. Sistemas Operativos Tablas de 02 Niveles Tabla de 2 niveles Direccion Marco 10 bits 10 bits 12 bits fisica: Page # Offset Direccion P1 index P2 index Offset virtual: Dirección virtual 4KB p1 p2 d PageTablePtr Dirección real 4 bytes m d Arbol de tablas Tablas tam. fijo (1024 entradas) m Tabla de 1er nivel Tablas de 2do nivel 4 bytes 25 26 Memoria asociativa Traduccion de direcciones Memoria especial - TLB – (Translation Look-aside Buffers) Dirección lógica – acceso rápido: . 10-20% del tiempo de acceso a memoria p d – pequeño tamaño: 64-1024 entradas pagina marco – solo contiene parte de la Tabla de Páginas acierto m d Memoria de acceso por contenido – Se compara con todas las páginas disponibles a la vez Dirección TLB real – Si la página buscada no está hay que buscarla en la Tabla de Páginas en memoria principal falla m – Después del fallo se refresca la memoria asociativa – El método es válido en función del porcentaje de éxito • se basa en que casi siempre los programas acceden a direcciones Tabla de consecutivas 27 paginas 28 Estrategias de Administración Estrategias de Administración Estrategia de Obtencion: Determinan cuándo se debe cargar una página Estrategia de Colocacion: en memoria Determinan en donde se debe cargar una página en memoria – Paginación por demanda • Se trae una página sólo cuando se hace referencia a ella • El principio de cercanía reduce los fallos. – Paginación previa • Se traen a memoria varias páginas contiguas • Mayor eficiencia de carga desde dispositivo secundario 29 30Diaz Muñante Jorge 5
  • 6. Sistemas Operativos Estrategias de Administración Reemplazo de Pagina Estrategia de Reemplazo: ¿ Qué página se reemplaza en memoria principal cuando marco b.validz M.Real Sacar la pagina victima se debe cargar otra y no hay espacio para ella? Cambiar a invalido 2 1 m0 / vi / m m v victima nueva 4 Cambiar la tabla 3 Tabla de para la nueva paginas pagina Introducir la pagina deseada 31 32 Algoritmo Optimo Algoritmo optimo Cada página se va a etiquetar con: Número de instrucciones antes de hacer la 1a. referencia a dicha página p3 p1 p2 Principio algoritmo: eliminar página con la máxima etiqueta. 5 inst 10 inst. 30 inst. Página 1 Página 2 Página 3 Etiqueta: 10 Etiqueta: 30 Etiqueta: 5 Ejecución reemplazo 34 Algoritmo Optimo Algoritmo pésimo ¿cuál pagina involucra la peor decisión de reemplazo? 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 7 7 7 2 7 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 4 0 4 4 0 4 0 0 0 0 0 Marcos de página 1 1 1 3 1 3 3 3 3 3 3 3 3 1 1 1 7 1 0 4 3 8 fallos de página 35 36Diaz Muñante Jorge 6
  • 7. Sistemas Operativos Algoritmo FIFO Algoritmo FIFO Principio: Los primeros en entrar, son los primeros en salir. S.O. tiene una lista de todas las páginas en memoria, siendo p3 p4 p1 p2 la primera página la más antigua y la última la más reciente. FIFO Optimo En un fallo de página se elimina la primera página y se Pasado mas lejano Futuro mas lejano añade la nueva al final de la lista. FIFO es muy pocas veces usada en su forma más pura. Ejecución reemplazo 37 Algoritmo FIFO Algoritmo FIFO 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 primera P1 P2 P3 P4 P5 P6 7 7 7 2 7 2 2 2 4 2 4 4 0 4 0 0 0 0 0 última P3 0 0 0 0 3 0 3 3 2 3 2 2 2 2 1 2 1 1 Marcos de página P4 1 1 1 1 0 1 0 0 3 0 3 3 3 3 2 3 2 siguiente P5 P6 P1 7 0 1 2 3 0 4 2 3 P2 12 fallos de página 40 Algoritmo FIFO No paginado Por que podría ser bueno? – Quizás la página que entró a memoria primero ahora no se necesita Por que podría ser malo? – Quizás página esta en uso • Las primeras paginas en llegar son del sistema operativo • Los programas asignan los valores al inicio. – Podría exponer anomalía de Belady 42Diaz Muñante Jorge 7
  • 8. Sistemas Operativos Algoritmo de la Segunda Oportunidad FIFO/3 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 Modificación simple de FIFO Marcos 0 1 evita deshacerse de una página de uso frecuente 2 inspeccionando el bit R de la página más antigua. FIFO/4 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 si (R = 0) => página antigua y no utilizada marcos 0 se reemplaza en forma inmediata 1 2 si (R=1) => el bit se limpia 3 la página se coloca al final de la lista, su tiempo de carga se actualiza 43 Algoritmo de la Segunda Oportunidad Algoritmo de Reemplazo de Reloj En FIFO la Mantener páginas en una lista circular con forma de reloj. Página 1 saldría Una manecilla apunta hacia la página más antigua. Orden de entrada a la memoria 0 A Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 L B Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da K C otra oportunidad. Se setea en cero R, y se pasa a la cola 0 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 J D Idem al caso anterior I E Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 Pág 2 0 H F G Al encontrarse una página con el bit en cero, se escoge para desalojo. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla. En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo Si bit R = 0 => página se retira de memoria, se inserta nueva página en degrada en FIFO. su lugar en el reloj manecilla avanza una posición Esto continua hasta encontar una página con R = 0. Ejemplo de uso: Solaris Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj Estado del buffer justo antes n 0 Estado del buffer justo antes n 0 de un reemplazo de un reemplazo Pag 9 Pag 19 1 Pag 9 Pag 19 1 uso = 1 uso = 1 uso = 1 uso = 1 Pag 1 Pag 1 . uso = 0 . uso = 0 . 2 . 2 Puntero al Pag 45 Puntero al Pag 45 marco siguiente uso = 1 marco siguiente uso = 0 . . Pag Pag Pag 222 Pag 191 727 Pag 222 Pag 191 727 uso = 0 uso = 1 3 uso = 0 uso = 1 3 8 8 Pag 33 Pag 556 Pag 33 Pag 556 uso = 1 uso = 0 uso = 1 uso = 0 Pag 67 Pag 13 4 Pag 67 Pag 13 4 7 7 uso = 1 uso = 0 uso = 1 uso = 0 6 5 6 5Diaz Muñante Jorge 8
  • 9. Sistemas Operativos Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj Estado del buffer justo antes n 0 Estado del buffer n 0 de un reemplazo después del reemplazo Pag 9 Pag 19 1 Pag 9 Pag 19 1 uso = 1 uso = 1 uso = 1 uso= 1 Pag 1 Pag 1 . uso = 0 . uso = 0 . 2 . 2 Puntero al Pag 45 Puntero al Pag 45 marco siguiente uso = 0 marco siguiente uso = 0 . . Pag Pag 222 Pag 191 727 Pag 222 Pag 191 uso = 0 uso = 0 3 uso = 0 uso = 0 3 8 8 Pag 33 Pag 556 Pag 33 Pag 727 uso = 1 uso = 0 uso = 1 uso = 1 Pag 67 Pag 13 4 Pag 67 Pag 13 4 7 7 uso = 1 uso = 0 uso = 1 uso = 0 6 5 6 5 Algoritmo del Reloj Algoritmo del reloj 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 Ejemplo: Cadena de referencia 0 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 7 7 7 2 7 2 2 2 4 4 4 4 3 3 3 3 0 7 7 7 2 7 2 2 2 4 4 4 4 3 3 3 3 0 0 0 0 0 Marcos de página 2 0 0 0 2 2 2 2 1 1 1 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 3 1 3 3 3 3 0 0 0 0 2 2 Marcos de página 1 1 1 1 3 3 3 3 3 0 0 0 0 2 2 7 1 2 0 3 4 2 0 3 7 1 2 0 3 4 2 0 3 R R R R R 7 1 7 0 7 0 7 0 2 1 R 0 1 0 1 0 1 0 0 0 0 0 0 12 fallos de página 1 1 1 1 1 1 1 1 1 0 1 0 2 1 51 52 Algoritmo según el uso no tan reciente NRU - Ejemplo - En este método cada página contiene 2 bits que permite decidir cual página desalojar: - R (bit solicitado): Se enciende cuando se realiza un acceso a esta página - M (bit modificado): Se enciende cuando se escribe en la página. - Se establecen así 4 clases de acuerdo al valor de los bits: (0,0) (1,0) (0,1) (1,0) Clase 0 = {a7,d5,a8,b4,d8} - Clase 0: No solicitado, No Modificado a7 c2 d2 b3 - Clase 1: No solicitado, Modificado Clase 1 = {d2,a3,c6} - Clase 2: Solicitado, No Modificado (1,1) (0,0) (1,0) (1,1) - Clase 3: Solicitado, Modificado b1 d5 a2 c4 Clase 2 = {c2,b3,a2,d7} - El algoritmo escoge una página partiendo desde las con clase menor. (0,0) (0,1) (0,0) (1,1) Clase 3 = {b1,c4,d9,a5} a8 a3 b4 d7 - El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales páginas son accedidas constantemente durante el quantum. (1,1) (1,0) (0,1) (0,0) a5 d9 c6 d8 54Diaz Muñante Jorge 9
  • 10. Sistemas Operativos Ejemplo NRU Algoritmo LRU Pag Bit R Bit M Pag Bit R Bit M 0 0 0 0 1 1 Quantum 1 0 0 1 1 0 2 0 0 2 0 0 3 0 0 Durante el quantum se 3 1 1 acceden las páginas 0, 1 Estado de la tabla de páginas en t1 p3 p4 p3 p4 p1 p2 Estado de la tabla de páginas en t0 y 3; y se escribe en las 0 y3 El SO apaga todos los bits R para poder determinar cuales de las Será desalojada páginas han sido FIFO LRU Optimo ocupadas Quantum Pasado mas Pasado mas Futuro mas Pag Bit R Bit M Pag Bit R Bit M 0 1 1 0 0 1 lejano reciente lejano 1 1 0 1 0 0 2 0 0 Durante el siguiente cuantum 2 0 0 Ejecución 3 0 1 se hacen accesos a las 3 0 1 páginas 0 y 1, luego se pide reemplazo Estado de la tabla de páginas en t3 la página 4 que no esta Estado de la tabla de páginas en t2 presente y se provoca un Page Fault. 56 Algoritmo de la menor uso reciente (LRU) Algoritmo LRU Páginas uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes. Es probable que las páginas que no hayan sido utilizadas durante mucho tiempo Cadena de referencia permanezcan sin uso por bastante tiempo. Esto induce al siguiente algoritmo: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 al ocurrir un fallo de página se elimina la página que no haya sido utilizada durante 2 0 el tiempo más grande. LRU: realizable en teoría, no es barato. 7 7 7 2 7 2 2 2 4 2 4 4 4 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 3 0 3 3 3 3 3 3 0 Implementación: necesario mantener una lista de todas las páginas en memoria, en donde Marcos de página la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final. 1 1 1 3 1 3 3 2 3 2 2 2 2 2 2 2 Dificultad: la lista debe actualizarse en cada referencia a 7 1 2 3 0 4 0 3 la memoria. Busqueda de la página en la lista, su eliminación y posterior traslado al frente de la misma NO puede ser una operación muy lenta. 11 fallos de página 58 1a. Solución: caso más sencillo Ejemplo solución Requiere de un contador de 64 bits, C, en hardware. Valor inicial cont = 0; se incrementa en forma automática después de cada instrucción. P0 P1 P2 P3 cont = 1; 1 0 0 0 Cada entrada en tabla de páginas debe contener espacio necesario para almacenar el contador. P0 P1 P2 P3 cont = 2; 1 2 0 0 Después de cada referencia el valor actual de C se almacena en la entrada de la tabla de páginas correspondiente a la página a la P0 P1 P2 P3 cont = 3; que se hizo referencia. 1 2 0 3 Fallo de página: P0 P1 P2 P3 cont = 4; => S.O. examina todos los contadores de la tabla 1 4 0 3 de páginas y elige el mínimo, (i.e. página de uso más reciente). Página más recientemente usada: P1, (cont = 4) Página menos usada: P2 , (cont = 0)Diaz Muñante Jorge 10
  • 11. Sistemas Operativos 2a. Solución: caso más sencillo Ejemplo de LRU con uso de una matriz Máquina con cuatro márcos, con referencias a las páginas en el orden: Máquina con n márcos para página, 0, 1, 2, 3, 2, 1, 0, 3, 2, 3 hardware LRU puede matriz de n x n, Después hacer referencia a la página 0 tenemos la situación siguiente: matriz inicializada en cero. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 Referencia al marco k 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 2 0 0 0 0 2 0 0 0 0 2 1 1 0 1 2 1 1 0 0 hardware primero activa todos los bits del renglón k 3 0 0 (a) 0 0 3 0 0 (b) 0 0 3 0 0 (d) 0 0 3 1 1 1 (d) 0 desactiva después todos los bits de la columna k. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 En cualquier instante: 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 renglón con valor binario mínimo es de uso menos 2 1 1 0 1 2 1 0 0 1 2 0 0 0 1 2 0 0 0 0 frecuente, renglón con el siguiente valor más pequeño 3 1 1 0 (d) 0 3 1 0 0 0 (f) 3 0 0 0 0 (g) 3 1 1 1 (h) 0 es el segundo de uso menos reciente, etc. 0 1 2 3 0 1 2 3 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 2 1 1 0 1 2 1 1 0 0 3 1 1 0 0 (i) 3 1 1 1 0 (j) Bancos libres en memoria Modelo del conjunto de trabajo • Se basa en la localidad Banco (pool) de marcos libres para poder leer inmediatamente las paginas fallidas, antes de haber escrito a • Formado por las páginas recientemente accedidas disco la victima. • Las páginas en uso se encuentran en el CdT Sustitución y mantenimiento de páginas limpias • El conjunto de trabajo varía con el tiempo – Cuando el disco está inactivo Número de páginas del almacenamiento Se sustituyen las páginas limpias que no hay que escribir en primario asignadas al proceso disco. – Periódicamente se buscan páginas para limpiar Utilizado en VAX-VMS como complemento al método FIFO. Linux desaloja paginas victimas antes de que se llene la Tiempo memoria real. 63 64 Modelo de conjunto de trabajo ¿Cómo determinar el CdT? Evolución del conjunto de trabajo Inicio nueva fase Inicio nueva fase • El verdadero CdT lo forman las páginas que Estabilización Estabilización deben estar en el almacenamiento primario para nº de páginas en conjunto trabajo Arranque en frío la ejecución eficaz del proceso Estabilización w Tiempo de ejecución t-w t de un proceso Las páginas referenciadas por el proceso durante este intervalo constituye el conjunto de trabajos W(t,w), del proceso t • W = tamaño de la ventana del CdT Olvido de páginas de Olvido de páginas de • ¿Cómo afecta el tamaño de W? fase anterior fase anterior 66Diaz Muñante Jorge 11
  • 12. Sistemas Operativos Ejemplo Asignación global vs local Ventana de 10 referencias Reemplazo global – Tamaño de conjunto de trabajo = 4 – el marco a reemplazar se selecciona entre todo el conjunto de marcos Reemplazo local 215777775162937 WS(t1,10) = {1, 2, 5, 7} – el marco a reemplazar se selecciona solo de su propio conjunto del proceso. 67 68 Desventajas global vs local Asignación de marcos Reemplazo global ¿cómo asignamos una cantidad fija de – un proceso no puede controlar su propia tasa de marcos a los distintos procesos? fallos de paginas. Se dispone de 93 marcos y llegan 02 – No depende solo del comportamiento del proceso sino de todos. procesos Reemplazo local –¿cuántos marcos obtiene cada proceso? – impide a un proceso tener acceso a otras paginas no usadas. Por lo general el global brinda una mayor productividad. 69 70 Algoritmos de asignación de marcos Algoritmos de asignación de marcos … cont Asignación equitativa Asignación proporcional – 93 marcos libres y llegan 05 procesos – px = tamaño del proceso x – cada proceso recibira 18 marcos. Los 03 – S = ∑ px sobrantes son deposito de libres. – ml = numero de marcos libres – formula mpx=px / S * ml – 62 marcos libres, p1 = 10k y p2 = 127k – mp1 = 10 / 137 * 62 = 4 aprox. – Mp2 = 127 / 137 * 62 = 57 aprox. 71 72Diaz Muñante Jorge 12
  • 13. Sistemas Operativos Algoritmos por prioridades Algoritmos de asignación de marcos En un esquema de asignacion proporcional por “tamaño” nos podríamos Consideraciones basar en la “prioridad”. – en ambas técnicas puede variar dependiendo del Permitir que un proceso de alta prioridad reemplace paginas de otro proceso de baja prioridad. nivel de multiprogramacion – El numero de marcos de un proceso de alta – Si aumenta el nivel, cada proceso perdera algunos prioridad aumentaría en perjuicio de otro de baja marcos para proporcionar a los nuevos. prioridad. – Si disminuye el nivel, los marcos liberados se distribuye entre los restantes. 73 74 Procesador Tamaño Niveles Espacio Paginas Pequeñas de página de paginación de usuario Ej: Proceso de 25kb Alpha 8 kb 3 4 Tb ARM 26 bit 16 ó 32 Kb 2 Hasta 26 MB Tabla de Paginas Pagina = 2kb Pagina = 1kb Pagina = 4kb ARM 32 bit 4 Kb 2 3 GB IA64 4, 8, 16 ó 64Kb 3 10Exab M68000 4 Kb 3 224MB M68000 SUN3 8 Kb 2 3,75 Mb MIPS 4 Kb 2 2 Gb MIPS64 4 Kb 3 1 Petab T. Pag = 7 entradas T. Pag = 13 entradas T. Pag = 25 entradas Linux PARISC 4 Kb 2 ó 3 3 Gb Fragmentación interna PowerPC 4 Kb 2 2 Gb S390 4 Kb 2 2 Gb 13 Páginas de 2Kb 25 Páginas de 1Kb 7 Páginas de 4Kb SH 4 Kb 2 1,984 Mb Sparc 4 Kb 3 3,75 Mb Sparc SUN4 8 kb 3 3,75 Mb Sparc 64 8 kb 3 16 Exab-16Gb X86 4 Kb 2 ó 3 3 Gb Desperdicio: 3kb Desperdicio: 1kb Desperdicio: 0kb 76 Hiperpaginacion Hiperpaginación La tasa de fallos de página es tan alta que el proceso pierde más tiempo cargando páginas que ejecutando. Si se produce vapuleo en todos los procesos el sistema queda parado. M.Real Sacar la pagina Solución victima – no superar cierto grado de multiprogramación. 1 – proporcionar a cada proceso las páginas que m necesita en cada momento. victima nueva Es muy 2 intensa Introducir la pagina deseada 77 78Diaz Muñante Jorge 13
  • 14. Sistemas Operativos Hiperpaginacion %Utilización de CPU o Productividad (reqs/segs) La segmentación - Paginación = espacio direcciones unidimensional, (0..max) - Dotar máquina de varios espacios independientes de Qué ocurre direcciones, desde 0 hasta cierto máximo. aquí? - Los distintos segmentos pueden tener longitudes distintas. - La longitud de cada segmento puede ser distinta - La longitud de un segmento puede variar durante su ejecución - Acceso se hace en dos partes: número de segmento y una dirección dentro de este - Un segmento puede tener la protección adecuada para el Numero de procesos activos tipo de objeto almacenado Nivel de multiprogramación 79 Espacio de direcciones virtuales Proceso Tabla de La t.simbolos simbolos choco contra la Seg0 Seg1 Seg2 Seg3 Seg4 texto fuente 0k 0k 0k 0k 0k Texto fuente Cons- 4k 4k 4k tan- 4k 4k tes Tabla de constantes Txt 8k 8k 8k 8k pila fuente Arbol árbol léxico 12k Tab. 12K 12K lexic. 12K Simb 16k 16k 16k 16k Llamadas a la pila 20k 20k En un espacio unidimensional de direcciones con tablas crecientes, una tabla 24k Una mem. Segmentada permite a cada tabla puede encimarse con otra crecer o encogerse con independencia 81 82 Ejemplo de segmentacion Compartiendo Segmentos Direccion virtual Fragmentacio Editor Tabla Segmentos P1 Segment # Offset n limite base Seg 1 segmento 0 0 25286 43062 43062 (cod.) Externa 1 4425 68348 Seg 2 Memoria datos 1 (datos) segmento 1 Seg 3 Fisica editor Como pagina: (pila) Espacio direcciones 68348 valida, Seg 3 virtuales de P1 Memoria virtual modific., (pila) datos 1 72773 proteccion, MMU Tab etc. de Seg 1 Editor Bas Limi Otros Segmento (cod.) Tabla Segmentos P2 offset < 90003 e t segmento 0 no limite ? STBR limite base datos 2 datos 2 STLR 0 25286 43062 Si Seg 2 segmento 1 98553 Fallo acceso 1 8550 90003 A la mem (datos) Segmento Base + Offset Espacio direcciones Dirección física virtuales de P2 0x00 Memoria VirtualDiaz Muñante Jorge 14
  • 15. Sistemas Operativos Proceso Segmentada + 0k Seg0 0k Seg1 0k Seg2 0k Seg3 0k Seg4 Paginada 4k 4k 4k 4k 4k 8k 8k 8k 8k 12k 12K 12K 12K 16k 16k 16k 16k 20k 20k 24k Segmentada + Paginada 86 Caso de estudio: Linux Niveles de tablas en Linux Nivel 1 Nivel2 Nivel3 Desplazamiento p0 p1 Segmento 0 Página 40k Tabla de Tabla de física Tabla de páginas páginas páginas Proceso Segmento 1 p0 p1 120k 10k #Página #Página #Página p0 p1 Segmento 2 70k PGD 87 88 Caso de estudio: Linux Caso de estudio: Linux task_struct vm_area_struct Memoria Memoria mem_map_t mem_map_t free_are vm_end virtual física a Marco Libre vm_start del proceso count count 4 map vm_flags 0 Marco mm vm_inode age age 3 1 Marco vm_ops Datos 2 2 Marco map_nr= 70 map_nr= 4 mm_struct vm_next open ( ) 3 Marco close ( ) 1 Libre count mem_map_t 4 Marco pgd vm_area_struct count 0 5 Libre Marco vm_end vm_start swapout () swapin ( ) age Marco Libre 6 mmap vm_flags vm_inode Marco Libre 7 Operaciones de Código vm_ops memoria virtual map_nr= 0 8 vm_next 89 90Diaz Muñante Jorge 15
  • 16. Sistemas Operativos Caso de estudio: Linux Caso de estudio: Linux Apertura y proyección del programa sobre Gestión del área de intercambio: las áreas de memoria virtual del proceso – Un demonio de intercambio (kswapd) se encarga de mantener suficientes marcos libres Fallo de página – kswapd se ejecuta como un hilo del núcleo activándose en Paginación No el arranque del sistema ¿Dirección legal? bajo Acceso ilegal. demanda Enviar señal – kswapd cada segundo comprueba si el número de marcos No SIGSEV al libres es demasiado bajo. Si es así, busca marcos que ¿Acceso legal? proceso puedan ser descartados o sustituidos Sí Fallo de página legal – Algoritmo implementado en el demonio: algoritmo de Traer página Traer página aproximación al LRU con envejecimiento desde el desde el área de No Sí archivo en ¿Entrada vacía en la TP? intercambio disco 91 92 Caso de estudio: Linux Caso de estudio: Linux Técnica de envejecimiento de páginas: – Si una página modificada se lleva a disco: – Al asignar un marco de página se le asocia por defecto su entrada en la tabla de páginas se marca como inválida edad 3 se incluye la información para su recuperación posterior y se libera, añadiéndola en la free_area – Las páginas rejuvenecen al acceder a ellas (edad+3 hasta un máximo de 20) – Las páginas no modificadas no se sustituyen: se descarta su contenido – Cada vez que se ejecuta kswapd envejece las páginas en 1 si no se usan se marcan como libres, añadiéndolas en la free_area – Las páginas víctimas para los intercambios se eligen de – Si se recuperan suficientes páginas del proceso seleccionado, el demonio dormirá de nuevo entre las páginas viejas (edad 0) y modificadas – En función de la operación vm_ops->swapout de la región – Si no se liberan suficientes páginas del proceso actual, se continúa con el siguiente proceso de memoria (vm_area_struct), la página víctima se lleva a disco. – El demonio empezará en la página siguiente en una nueva activación 93 94 Caso de estudio: Linux Caso de estudio: Linux ֠ kswapd Edad de los marcos de página Tabla de páginas A 0 1 2 3 4 Proceso A Tabla de páginas A Proceso A BV BR BM BV BR BM 7 9 0 3 0 Página 0 Página 0 1 0 1 Memoria física 1 0 1 Memoria física Página 1 Página 1 free_area 1 1 2 Marco 0 0 1 x Página 2 Página 3 Página 2 Página 3 2 0 0 0 0 Página 3 Página 0 Marco 1 Página 3 Página 0 1 1 0 0 Marco 2 1 0 0 0 2 4 Página 1 Página 1 Marco 3 Proceso B Tabla de páginas B Página 1 Proceso B Tabla de páginas B Página 1 BV BR BM Marco 4 BV BR BM Página 0 Página 0 0 0 Página 2 Marco 5 0 0 swap Página 1 Página 1 1 0 3 1 0 3 1 Página 2 Página 2 x 1 0 4 0 0 95 96Diaz Muñante Jorge 16
  • 17. Sistemas Operativos Caso de estudio: W2K / XP Caso de estudio: W2K / XP El gestor de memoria virtual de W2k utiliza un algoritmo de reemplazo de Al crearse un proceso se le asigna un tamaño mínimo del páginas local tipo FIFO y paginación por demanda WS La política de reemplazo sustituye la página más antigua del conjunto de El gestor varía el tamaño de los WS de los procesos según páginas del proceso que causó el fallo los requirimientos de memoria: Conjunto de trabajo (WS): número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando – Incrementa la memoria libre del sistema (recorte automático del WS) de un proceso si su tamaño es mayor que el mínimo – Incrementa el tamaño del WS hasta un máximo si el proceso genera fallos de página y la memoria no está demasiado llena Páginas nuevas Páginas antiguas Conjunto – Si el proceso requiere más páginas, se eliminan páginas de su WS empleando el algoritmo FIFO de trabajo 97 98 Caso de estudio: W2K / XP Caso de estudio: W2K / XP Fallo de Las páginas eliminadas del WS pueden volver a él página Lectura de página del disco o núcleo rápidamente sin realizar lectura del disco cero Lista de marcos Permanecen en memoria en uno de estos estados: Standby – Standby: el proceso utiliza el marco de página pero ha sido Fallos eliminado del WS WS de Escritor Lista Hilo Lista de marcos de de marco página de – Modificado: = Standby pero el proceso ha escrito en la de “soft” modific. marcos Cero marcos página sin actualización de disco libres Cero proceso Lista de s marcos Modific. lista de páginas Sustitución en standby o en el WS Lista de marcos modificadas erróneos Finaliza el proceso Conjunto de trabajo 99 100Diaz Muñante Jorge 17

×