1 / 48

ICC243 Sistemas Operativos

ICC243 Sistemas Operativos. P06: Memoria. Slide: 1. Prof. Jonathan Makuc. Sistemas Operativos: Manejo de Memoria. Temario ://. Introducción Administración de Memoria Básica Intercambio Memoria Virtual Algoritmo de Reemplazo de Páginas

Download Presentation

ICC243 Sistemas Operativos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ICC243Sistemas Operativos P06: Memoria Slide: 1 Prof. Jonathan Makuc

  2. Sistemas Operativos: Manejo de Memoria Temario :// • Introducción • Administración de Memoria Básica • Intercambio • Memoria Virtual • Algoritmo de Reemplazo de Páginas • Modelado de Algoritmos de Reemplazo de Páginas Sistemas Operativos – ICC243 [ 2 ] Prof. Jonathan Makuc

  3. 0xFFF… 0 0xFFF… 0 Programa de Usuario SO en ROM 0xFFF… 0 Controladoresde disp en ROM Programa de Usuario Programa de Usuario SO en RAM SO en RAM Sistemas Operativos: Manejo de Memoria Administración de Memoria Básica :// • Monoprogramación sin intercambio ni paginación • Solo 1 programa a la vez en la memoria • Cuando termina el programa puede ejecutarse el siguiente Sistemas Operativos – ICC243 [ 3 ] Prof. Jonathan Makuc

  4. 800k 700k 400k 200k 100k 0 800k 700k 400k 200k 100k 0 Partición 4 Partición 4 Partición 3 Partición 3 Partición 2 Partición 2 Partición 1 Partición 1 Sistema Operativo Sistema Operativo Sistemas Operativos: Manejo de Memoria Administración de Memoria Básica :// • Multiprogramación con Particiones Fijas • La RAM se divide en varios espacios de tamaños variables para poder contener procesos de largos distintos • Particiones pequeñas pueden ser utilizadas pro procesos interactivos dependientes del Input del usuario • Particiones más grandes son utilizadas por procesos mas intensivos en CPU Sistemas Operativos – ICC243 [ 4 ] Prof. Jonathan Makuc

  5. 800k 700k 400k 200k 100k 0 Partición 4 Partición 3 100 0 Procedimiento que se encuentra en la dirección 100 relativa del programa 100 + 409.600 = 409.700 400k = byte 409.600 Partición 2 Partición 1 Sistema Operativo Sistemas Operativos: Manejo de Memoria Administración de Memoria Básica :// • Reubicación • Cuando se utiliza el esquema de multiprogramación, se debe resolver el problema de resolver la dirección real de la instrucción que se está ejecutando. • Cada programa al enlazarse produce direcciones relativas dentro del código. Estas deben resolverse a direcciones absolutas dentro de la memoria tomando en cuenta la partición en que se encuentra. Esto se conoce como reubicación. Sistemas Operativos – ICC243 [ 5 ] Prof. Jonathan Makuc

  6. Sistemas Operativos: Manejo de Memoria Administración de Memoria Básica :// • Protección • Al tener multiprogramación se genera el problema de poder asegurar que los programas de usuario no puedan tener acceso a los datos o código de otros procesos. Este es el problema de protección. 800k 700k 400k 200k 100k 0 Partición 4 Al hacer un acceso a memoria, el SO toma el valor del registro base y lo suma a la dirección solicitada. paddr = vaddr + regBase Si el resultado no excede el valor del registro límite, entonces se permite el acceso. paddr = dirección física (real) vaddr = dirección virtual Registro Límite Partición 3 Registro Base Partición 2 Partición 1 Sistema Operativo Sistemas Operativos – ICC243 [ 6 ] Prof. Jonathan Makuc

  7. C C C C B B B B A A A A D D S.O. S.O. S.O. S.O. S.O. S.O. Memoria disponible Sistemas Operativos: Manejo de Memoria Intercambio :// Cuando los procesos que se están activos en un sistema sobrepasan en tamaño a la memoria disponible, los excedentes deben mantenerse en disco y traerse a la memoria en forma dinámica para que se ejecuten. El intercambio consiste en mover procesos completos desde la memoria a disco y viceversa. El proceso se trae a memoria principal, se ejecuta por un periodo de tiempo y luego se guarda en disco hasta que sea su turno nuevamente. Sistemas Operativos – ICC243 [ 7 ] Prof. Jonathan Makuc

  8. Sistemas Operativos: Manejo de Memoria Intercambio :// • Problemas: • Los procesos en este esquema son de tamaño fijo • Deja espacios entre procesos que son pueden ser utilizados. Este fenómeno se conoce como fragmentación externa, dado que se producen fragmentos de memoria inútiles afuera de los procesos. • Dado que los programas se mueven de posición en el tiempo, el SO debe poder manejar un esquema de reubicación y protección más complejo que los modelos anteriores. Sistemas Operativos – ICC243 [ 8 ] Prof. Jonathan Makuc

  9. C C B B D D S.O. S.O. Sistemas Operativos: Manejo de Memoria Intercambio :// • Compactación • Consiste en mover los procesos hacia la parte baja de la memoria, agrupando los espacios libres de memoria. Así se logra poder colocar más procesos. • El problema es que el proceso de compactación toma MUCHO tiempo. Sistemas Operativos – ICC243 [ 9 ] Prof. Jonathan Makuc

  10. Stack de B B Espacio libre propio de B Heap de B A Programa de B S.O. Sistemas Operativos: Manejo de Memoria Intercambio :// • Asignación de memoria con procesos de tamaño variable • Al tener procesos cuyo segmento de datos puede crecer el problema de la asignación de memoria se complejiza, pues el SO debe cuidar de dejar espacio para la expansión, de lo contrario se gastará mucho tiempo liberando espacio cada vez que se quiera más memoria. • El heap es el espacio de datos de un proceso que puede ir creciendo a medida que se ejecuta. El SO debe asignar algún espacio para que este pueda crecer, el cual no es ocupado de inmediato. Este efecto de desperdiciar memoria al interior del proceso se conoce como fragmentación interna. Sistemas Operativos – ICC243 [ 10 ] Prof. Jonathan Makuc

  11. C Memoria RAM S.O. A B D 0 100 300 600 800 Memoria RAM S.O. A B C 0 100 300 600 800 Sistemas Operativos: Manejo de Memoria Intercambio :// • Ubicación de un proceso dentro de la memoria • Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. • Método del primer ajuste • El proceso se coloca en el primer lugar disponible de la memoria partiendo de la parte baja de la misma. Sistemas Operativos – ICC243 [ 11 ] Prof. Jonathan Makuc

  12. E Memoria RAM S.O. A B C D 0 100 300 600 800 Memoria RAM S.O. A B E C D 0 100 300 600 800 Sistemas Operativos: Manejo de Memoria Intercambio :// • Ubicación de un proceso dentro de la memoria • Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. • Siguiente del primer ajuste • El proceso se coloca en la siguiente posición disponible donde el proceso quepa, desde la última ubicación que realizó. Si llega al final, comienza de nuevo en el cero. Sistemas Operativos – ICC243 [ 12 ] Prof. Jonathan Makuc

  13. F Memoria RAM S.O. A C B E D 0 100 300 600 800 Memoria RAM F S.O. A C B E D 0 100 300 600 800 Sistemas Operativos: Manejo de Memoria Intercambio :// • Ubicación de un proceso dentro de la memoria • Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. • Mejor Ajuste • El proceso se coloca en el espacio libre que más se ajuste al tamaño. Sistemas Operativos – ICC243 [ 13 ] Prof. Jonathan Makuc

  14. F Memoria RAM S.O. A B E C D 0 100 300 600 800 Memoria RAM S.O. A B E C D F 0 100 300 600 800 Sistemas Operativos: Manejo de Memoria Intercambio :// • Ubicación de un proceso dentro de la memoria • Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará. • Peor Ajuste • El proceso se coloca en el espacio libre más grande disponible. Sistemas Operativos – ICC243 [ 14 ] Prof. Jonathan Makuc

  15. CPU envía direcciones virtuales a la MMU CPU RAM Discos MMU MMU envía direcciones físicas a la memoria Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Introducción • Los programas realizan accesos a la memoria indicando direcciones virtuales (lugar donde creen esta el dato que requieren) a las cuales desean acceder. Estas direcciones conforman el espacio de direcciones virtuales del proceso, que es el conjunto de memoria que conceptualmente esta asociado al proceso. • Las direcciones virtuales no pueden ser enviadas directamente a la memoria pues no corresponden a la verdadera posición. Estas son convertidas en direcciones físicas (posición real dentro del chip de RAM) por la MMU (Memory Management Unit - Unidad de Manejo de Memoria). Sistemas Operativos – ICC243 [ 15 ] Prof. Jonathan Makuc

  16. RAM Marco de Página Proceso A Página Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Paginación • Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas. • Los marcos de página son la correspondencia de una página en la memoria física, es decir, el espacio en la RAM donde realmente esta 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. Proceso A Proceso A Sistemas Operativos – ICC243 [ 16 ] Prof. Jonathan Makuc

  17. Tabla de Páginas (pagina 15) 60k – 64k 56k – 60k 52k – 56k 52k – 48k 48k – 44k 44k – 40k 40k – 36k 36k – 32k 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k (página 0) 4k – 0k X 2 3 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k X 7 X X Memoria RAM 0 7 5 Espacio De Direcciones Virtual 6 X 5 X 4 6 3 4 2 Marco de Página X 1 1 0 X Página Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Tabla de Páginas • La relación entre las paginas (espacio de direcciones virtual) y los marcos de páginas (memoria física) está dada por la Tabla de páginas. Esta se encuentra almacenada en la memoria RAM Sistemas Operativos – ICC243 [ 17 ] Prof. Jonathan Makuc

  18. 36777 vaddr 4009 paddr 36864 (Pág. 8) 32768 4096 0 0 0 desplazamiento Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Conversión de direcciones • Al momento que un proceso realiza un acceso a memoria, se debe convertir la dirección virtual entrante en la dirección física, consultando la tabla de páginas. Para convertir se debe: • Ubicar la página a la que pertenece la dirección virtual: vaddr / Tamaño Página (DIV ENTERA) • Ubicar el marco de página al que corresponde • Calcular el desplazamiento: vaddr – (N°Pag * Tamaño Página) • Sumar el desplazamiento a la dirección base del marco de página Ejemplo: Dirección virtual (vaddr): 36777 Tamaño de página: 4096b Página = 36777 / 4096 (DIV ENTERA) = 8 Marco de la página 8 = 0 Desplazamiento = 36777 – (8 * 4096) = 4009 Dirección Física (paddr) = 0 * 4096 + 4009 = 4009 Sistemas Operativos – ICC243 [ 18 ] Prof. Jonathan Makuc

  19. 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k 0 X 16k – 12k 12k – 8k 8k – 4k 4k – 0k 3 X 2 2 Memoria RAM Espacio De Direcciones Virtual 1 3 0 X 1 X Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Fallos de página • En la tabla de páginas existe un bit de validez por cada página, que indica si esta está presente en la memoria principal o no. • Un fallo de página ocurre cuando se solicita una página del espacio de direcciones virtual y esta no tiene marco de página asignado, es decir, no tiene correspondencia en la memoria física. • Al ocurrir un fallo de página, la MMU emite una interrupción “Page Fault” provocando trap al sistema para poder manejar la situación • El sistema operativo toma el control, cargando la página desde el disco duro a la memoria reanudando el proceso luego de eso. Si no hay memoria disponible, se debe llevar uno o más marcos de páginas al disco para liberar espacio. Sistemas Operativos – ICC243 [ 19 ] Prof. Jonathan Makuc

  20. 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k 0 X 16k – 12k 12k – 8k 8k – 4k 4k – 0k 3 X 2 2 Memoria RAM Espacio De Direcciones Virtual 1 3 0 X 1 X Sistemas Operativos: Manejo de Memoria Memoria Virtual :// Acceso dirección 27688 Proceso continua X Hay marcos Libres? 0 si TRAP AL SISTEMA OPERATIVO Se carga la página a memoria 3 X 2 2 1 3 0 X no 1 Se lleva una o más páginas a disco X Sistemas Operativos – ICC243 [ 20 ] Prof. Jonathan Makuc

  21. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// Estructura de la tabla de Páginas Indica al sistema operativo si realiza cache de la página. Útil cuando la página contiene estados de dispositivos. bit cache Tabla de Páginas bit solicitada Indica si la página ha sido usada. Útil para ayudar al SO a elegir cuales páginas le conviene mandar a disco. Bit modificada Indica si la página ha sido modificada desde que entró a la memoria. Ayuda al SO a determinar si debe guardarla al sacarla de la RAM. Bits protección Indica los permisos que se tienen sobre la página. 3 bits: R = permiso de lectura W = permiso de escritura X = permiso de ejecución Bit validez Indica si la página tiene un márco de página valido (esta en RAM) Contiene el numero del marco de página donde está esta página. El valor no tiene importancia si el bit de validez esta en cero. Número De Marco De Página Sistemas Operativos – ICC243 [ 21 ] Prof. Jonathan Makuc

  22. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// Tabla de Páginas dentro de la MMU Dirección Física (paddr) Memoria de 32kb (15bits necesarios) Espacio de direcciones virtual de 16bits (64kb) 0110x0 = 6 Dirección Virtual (vaddr) N° de Página Desplazamiento Sistemas Operativos – ICC243 [ 22 ] Prof. Jonathan Makuc

  23. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// Tablas de Páginas Multinivel Páginas de 4kb 32bits A páginas (vaddr) 10bits 10bits 12bits Tabla de página de primer nivel (…) 1023 0 Tabla de página de segundo nivel Sistemas Operativos – ICC243 [ 23 ] Prof. Jonathan Makuc

  24. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • TLB: Translation Lookaside buffer • El Búfer de consulta para traducción (TLB), contiene la misma estructura de la tabla de páginas. Contiene muy pocas entradas (8 – 64) con la información de las últimas páginas solicitadas. • Acelera las consultas considerablemente pues busca simultáneamente en todas las entradas de la TLB la página solicitada. Si se encuentra, se reemplaza el numero de marco directamente. Si no esta, se produce una consulta ordinaria a la tabla de página, agregando la información a la TLB. MMU CPU TLB Encontrado en TLB vaddr FalloTLB paddr Consulta a la Tabla de páginas Sistemas Operativos – ICC243 [ 24 ] Prof. Jonathan Makuc

  25. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Tablas de páginas Invertidas • Solución en los sistemas de 64bits donde el espacio de direcciones virtual es 264, • Ej: con páginas de 4kb (212) se requieren de 252 posiciones • si cada entrada de la tabla de páginas requiere 8 bytes: • 23 * 252 = 255 = 3,6 * 1016 bytes • Consiste en tener una entrada por cada marco de memoria real en lugar de una por cada página del espacio de direcciones virtual. Tabla de páginas tradicional con las 264 entradas Tabla de hash indexada por hash sobre pag viartual 256Mb en páginas de 4kb = 216 posiciones 216-1 0 Sistemas Operativos – ICC243 [ 25 ] Prof. Jonathan Makuc

  26. Sistemas Operativos: Manejo de Memoria Memoria Virtual :// • Tablas de páginas Invertidas: Consideraciones • Al estar ahora indexada por número de marco, no es posible buscar usando los bits superiores de la vaddr. • Al buscar el marco al que corresponde la página se debe ir a mirar la memoria donde esta almacenada la Tabla de Páginas. • Es necesario el uso de la TLB para poder agilizar el proceso. Sistemas Operativos – ICC243 [ 26 ] Prof. Jonathan Makuc

  27. RAM Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Generalidades • Al ocurrir un fallo de página, el sistema operativo debe cargar a memoria la página que contiene la dirección de memoria solicitada. Si no existe lugar disponible en la memoria, entonces se deberá desalojar algunas para hacer espacio. • Desalojar páginas poco usadas es mas conveniente que desalojar otras más populares, pues es muy probable que se deban traer de vuelta las más utilizadas. • Se debe tener el cuidado sobre que hacer con las páginas de acuerdo a si han sido modificadas o no. Una página no modificada se puede acceder desde su ubicación inicial en el disco. Una página modificada debe ser escrita a disco para no perderla. Swap ? Eliminacion Sistemas Operativos – ICC243 [ 27 ] Prof. Jonathan Makuc

  28. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Casos de desalojo de páginas • Páginas No Modificadas, Solo Lectura: se eliminan pues pueden ser re-leídas desde su posición original en el disco. (Ej: segmento de codigo) • Páginas Modificadas, que no han salido a swap: se escriben al swap para no perderlas (Ej: stack) • Páginas No Modificadas, que han salido a swap: se verifica si la ubicación en swap es válida, si lo es, no elimina. • Páginas Modificadas: se escriben a swap. Sistemas Operativos – ICC243 [ 28 ] Prof. Jonathan Makuc

  29. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Algoritmo Óptimo • Caso utópico en el cual se selecciona para desalojo la página que se referenciará más lejos en el tiempo, postergando así el fallo de página hasta el máximo. • Imposible de Implementar pues supone el conocimiento de que páginas serán solicitadas por el proceso, a priori. A desalojar Página Entrante Sistemas Operativos – ICC243 [ 29 ] Prof. Jonathan Makuc

  30. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • NRU: Not Recently Used – No usadas recientemente • 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: • Clase 0: No solicitado, No Modificado • Clase 1: No solicitado, Modificado • Clase 2: Solicitado, No Modificado • Clase 3: Solicitado, Modificado • El algoritmo escoje una página partiendo desde las con clase menor. • 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. Sistemas Operativos – ICC243 [ 30 ] Prof. Jonathan Makuc

  31. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • NRU: Not Recently Used – No usadas recientemente Quantum Durante el quantum se acceden las páginas 0, 1 y 3; y se escribe en las 0 y 3 Estado de la tabla de páginas en t0 Estado de la tabla de páginas en t1 El SO apaga todos los bits R para poder determinar cuales de las páginas han sido ocupadas Será desalojada Quantum Durante el siguiente cuantum se hacen accesos a las páginas 0 y 1, luego se pide la página 4 que no esta presente y se provoca un Page Fault. Estado de la tabla de páginas en t2 Estado de la tabla de páginas en t3 Sistemas Operativos – ICC243 [ 31 ] Prof. Jonathan Makuc

  32. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • FIFO: First In First Out • Simplemente se escoge para desalojo la página que entró primero a la memoria. • Al ser un método mecánico sin mayor análisis, puede desalojar páginas muy utilizadas. Memoria de 5 marcos t0 t1 t2 t3 t4 t5 t6 t7 Pág 1 Pág 2 Pág 1 Pág 2 Pág 3 Pág 1 Pág 2 Pág 3 Pág 4 Pág 1 Pág 2 Pág 3 Pág 4 Pág 5 Pág 1 Pág 2 Pág 3 Pág 4 Pág 5 Pág 6 Pág 7 Pág 3 Pág 4 Pág 5 Pág 6 Pág 7 Pág 8 Pág 4 Pág 5 Pág 6 Sistemas Operativos – ICC243 [ 32 ] Prof. Jonathan Makuc

  33. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Second Chance – Segunda Oportunidad • Modificación de FIFO que permite evitar el problema de desalojar una página que sea muy utilizada. • Las páginas se mantienen ordenadas en el orden en que llegaron a la memoria, en una lista enlazada por ejemplo. • Cada vez que se elige una página como candidato para desalojar, se mira su bit de uso (R). • Si esta en 1, se apaga, se coloca la página al final y se sigue con la siguiente (dándole así una segunda oportunidad). • Si esta en 0, se escoge esa página para el desalojo. • A diferencia de NRU, el SO solo resetea el bit a cero cuando esta buscando una página para desalojar, y no en cada interrupción de reloj. Sistemas Operativos – ICC243 [ 33 ] Prof. Jonathan Makuc

  34. 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 Pág 5 Pág 4 Pág 1 Pág 2 Pág 3 Pág 4 Pág 2 Pág 1 Pág 3 Pág 3 Pág 5 Pág 1 Pág 2 Pág 4 Pág 5 Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// Second Chance – Segunda Oportunidad En FIFO la Página 1 saldría Orden de entrada a la memoria 0 Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da otra oportunidad. Se setea en cero R, y se pasa a la cola 0 Idem al caso anterior Al encontrarse una página con el bit en cero, se escoge para desalojo. En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo degrada en FIFO. Sistemas Operativos – ICC243 [ 34 ] Prof. Jonathan Makuc

  35. 0 0 0 0 1 0 0 0 Pág 4 Pág 2 Pág 4 Pág 3 Pág 2 Pág 3 Pág 1 Pág 1 Bit R = 1, se apaga y se sigue con el siguiente Bit R = 0 Se desaloja la página Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Tipo Reloj (Clock) • Muy similar a Second Chance, también utiliza el bit de uso para entregar una segunda oportunidad a las páginas antes de desalojarlas. • Las páginas son colocadas en una lista enlazada circular que el sistema operativo va revisando secuencialmente como la manecilla de un reloj. • Si la página tiene bit R = 1, lo apaga y sigue con la página siguiente. • Si la página tiene bit R = 0, la desaloja. Sistemas Operativos – ICC243 [ 35 ] Prof. Jonathan Makuc

  36. 0 0 0 100 100 100 1 1 1 150 0 150 2 2 2 0 0 0 4 4 1 4 3 3 3 1 1 2 2 2 120 120 120 3 3 3 40 40 40 4 4 4 60 60 60 Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • LRU: Least Recentely Used – Menos Recientemente Usada • Algoritmo que busca desalojar la página que lleva mas tiempo sin usarse, tomando como base que las más usadas, seguirán siendo solicitadas en el futuro. • Se puede implementar a través de: • Lista enlazada: el sistema mantiene una lista de las páginas en memoria. Cada vez que se referencia una página, se mueve el nodo al final de la lista. Al momento de ocurrir un fallo de página se escoge la primera página de la lista. • Contador: El sistema mantiene un contador por página que se aumenta en cada interrupción de reloj. Al ocurrir un fallo de página se escoge la página con el contador con el menor valor. Acceso página 1 En t=150 Acceso página 1 Acceso página 5  fallo de página Acceso página 5 En t=160 Página a desalojar Página a desalojar Sistemas Operativos – ICC243 [ 36 ] Prof. Jonathan Makuc

  37. Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Working Set – Set de trabajo • Empíricamente los procesos al ejecutarse no hacen referencia a todas sus páginas constantemente. Sucede que en cualquier fase de la ejecución el proceso exhibe una localidad de referencia, es decir, accede a un subconjunto pequeño de la totalidad de sus páginas • Formalmente se denomina Conjunto de Trabajo al conjunto de páginas que está utilizando en un momento dado. Este no es fijo, y cambia periódicamente a medida que el proceso se ejecuta. • Si no existe memoria disponible en el sistema para contener el conjunto de trabajo de un proceso, este generará muchos fallos de páginas en un número reducido de instrucciones. A este fenómeno se le denomina Thrasing o Hiperpaginación. • El algoritmo Working Set se basa en lograr mantener en memoria las páginas que se consideran dentro del conjunto de trabajo para así reducir al máximo la cantidad de Page Faults. • Para establecer el conjunto se puede usar uno de los siguientes métodos: • Páginas referenciadas en los k últimos accesos a memoria, aquellas que no están en el conjunto pueden ser desalojadas • k últimas páginas referenciadas, idem caso anterior • Usar el tiempo virtual de ejecución (tiempo real que ha ocupado el proceso en CPU) para determinar la edad de la página. Aquellas que sobrepasan una edad máxima T se consideran fuera del conjunto y pueden ser desalojadas. (RECOMENDADO) • Se asume se tiene hardware que enciende los bits R y M adecuadamente. • El bit R se apara en cada interrupción de reloj, actualizando el tiempo de acceso a aquellas páginas cuyo bit R es 1. Sistemas Operativos – ICC243 [ 37 ] Prof. Jonathan Makuc

  38. Pág Pág Pág Ult Uso Ult Uso Ult Uso R R R 0 0 0 50 50 50 0 0 0 1 1 1 50 110 50 0 1 0 2 2 2 110 60 60 1 0 0 tVirtual = 80 tVirtual = 110 3 3 3 15 15 15 0 0 0 0 1 0 4 4 4 60 60 110 tVirtual = 110 WS = {0, 1, 2, 4} WS = {0, 1, 2, 4} WS = {1, 2, 4} Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// • Working Set – Set de trabajo • Usando un set de trabajo con T = 50 Accesos a páginas 1,2,4 durante quantum Páginas que pueden ser desalojadas Sistemas Operativos – ICC243 [ 38 ] Prof. Jonathan Makuc

  39. Sistemas Operativos: Manejo de Memoria Modelamiento del reemplazo de páginas :// • Anomalía de Belady • Caso donde agregar marcos a la memoria de un proceso aumenta la cantidad de fallos de página, en lugar de disminuirlos. • Ej: sean 2 sistemas con reemplazo de páginas por FIFO con 3 y 4 marcos respectivamente, con los accesos a páginas: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4. Sistemas Operativos – ICC243 [ 39 ] Prof. Jonathan Makuc

  40. Sistemas Operativos: Manejo de Memoria Modelamiento del reemplazo de páginas :// • Algoritmos de pila • Se denomina cadena de referencias a la secuencia de páginas que solicita un proceso durante su ejecución. • Se llaman algoritmos de pila aquellos cuya cadena de referencia de páginas que están en memoria para un numero m de marcos de memoria, es subconjunto de m + 1, es decir, en usando m + 1 marcos tenemos las misma páginas que con m más una adicional, considerando un arreglo M con tantas posiciones como páginas tiene el proceso. Un marco más M Sistemas Operativos – ICC243 [ 40 ] Prof. Jonathan Makuc

  41. Cadena de Distancias C1 = 0 C2 = 0 C3 = 1 C4 = 1 C5 = 0 C6 = 0 C∞ = 6 Sistemas Operativos: Manejo de Memoria Modelamiento del reemplazo de páginas :// • Cadena de distancias • En el caso de los algoritmos de pila, la referencia a una página puede abstraerse como la distancia desde la parte superior de la pila donde se colocó la página. • La cadena de distancias lleva el conteo de la cantidad de veces que se ha accedido a páginas en cada una de las posibles distancias, considerando que Ahora la página 3 estaba en la 3 posición antes de su referencia. Distancia = 3 Página 1 estaba en la 4 posicion cuando fue referenciada. Distancia = 4 Página 3 no esta presente, por lo tanto su distancia es Infinita Sistemas Operativos – ICC243 [ 41 ] Prof. Jonathan Makuc

  42. F1 = 17 C1 = 4 F2 = 13 C2 = 4 F3 = 11 C3 = 2 F4 = 8 C4 = 3 F5 = 8 C5 = 0 F6 = 6 C6 = 2 F∞ = 6 C∞ = 6 Sistemas Operativos: Manejo de Memoria Modelamiento del reemplazo de páginas :// • Predicción de la tasa de fallos de página • La cadena de distancias permite apreciar claramente la cantidad de fallos de página que habrán con una determinada cadena de referencias usando una cantidad de marcos de memoria. Utilizando la siguiente fórmula se puede obtener el vector F, que contiene la cantidad de fallos de página con las condiciones dadas: m = marcos de página n = número de páginas del proceso Ej: Cadena de Distancias C2 + C3 + C4 + C5 + C6 + C∞ Fallos de página con 2 marcos C3 + C4 + C5 + C6 + C∞ C4 + C5 + C6 + C∞ C5 + C6 + C∞ En este caso aumentar un marco no aporta a la disminución de fallos de página C6 + C∞ C∞ Sistemas Operativos – ICC243 [ 42 ] Prof. Jonathan Makuc

  43. Pág Ult Uso Nivel Máximo A0 50 A1 50 Fallos de página A2 40 Nivel Mínimo B0 15 B1 60 B2 30 B3 70 B4 60 Marcos de Página asignados C0 25 C1 25 Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// • Asignación local v/s global • Cuando existen múltiples procesos ejecutándose, entonces nace el problema sobre si aplicar el algoritmo de reemplazo de páginas localmente sobre el conjunto de marcos asignados al proceso que genera el fallo de páginas, o globalmente sobre el total de los marcos de memoria. • El método local no permite que el conjunto de trabajo crezca, pudiendo fácilmente producir thrashing. • El método global permite ajustar el tamaño del working set. Introduce el uso de un nuevo algoritmo de reemplazo de páginas: PPF: Page Fault Frequency. • El algoritmo de Frecuencia de Fallos de Página analiza la cantidad de fallos de página por proceso, entregando más marcos a aquellos con altas tasas de Page Fault, y quitando a aquellos con bajo número de fallos. Ej:A requiere un marco adicional Grafico análisis PPF Seleccionada usando política local Seleccionada usando política global Sistemas Operativos – ICC243 [ 43 ] Prof. Jonathan Makuc

  44. Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// • Tamaño de la página • Es elegido por el sistema operativo, aun cuando el hardware pueda estar diseñado para trabajar con otro tamaño. Ej: SO con páginas de 1Kb, HW con páginas de 512b, el SO trabajará siempre con 2 páginas de HW por cada de software. • Reducir el tamaño de la página, reduce la fragmentación interna pues se desperdicia menos memoria en la última página; sin embargo esto aumenta el tamaño de la tabla de páginas haciendo más engorro el trabajo con esta. Ej: Proceso de 25kb 25 Páginas de 1Kb 13 Páginas de 2Kb 7 Páginas de 4Kb Desperdicio: 0kb Desperdicio: 1kb Desperdicio: 3kb Sistemas Operativos – ICC243 [ 44 ] Prof. Jonathan Makuc

  45. Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// • Tamaño de la página • La memoria en juego corresponde al tamaño de la tabla de páginas y al desperdiciado en la última página del proceso. • Asumiendo que en promedio se pierde la mitad de la última página, se puede modelar la cantidad esta cantidad de memoria a través de la siguiente fórmula: • Podemos minimizar entonces la cantidad de memoria en juego con el tamaño de página como parámetro derivando e igualando a cero, dado que la segunda derivada es negativa para cualquier valor de p entero positivo. Siendo: s = el tamaño promedio de los procesos e = el tamaño de 1 entrada de la tabla de páginas p = el tamaño de 1 página Sistemas Operativos – ICC243 [ 45 ] Prof. Jonathan Makuc

  46. Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// • Páginas Compartidas • Si se ejecuta varias veces el mismo proceso en memoria, es muy conveniente compartir las páginas de este, en lugar de duplicarlas. • El problema más complejo es cuando se comparten páginas de datos, dado que 2 procesos de un mismo programa pueden tener datos diferentes por lo que se debe permitir esta distinción. • El mecanismo utilizado por los sistemas *nix (unix, linux, bsd, etc) es el copy on write o copiar al escribir. Cuando se realiza la syscall fork para crear un proceso hijo: • El SO crea una nueva tabla de páginas para este, pero no copia ninguna página, sino que apunta a las páginas del proceso padre. • A continuación se marcan todas las páginas de ambas tablas con read-only. • Al intentar uno de los procesos de modificar una página, se produce un trap al SO que duplica la página para que ambos procesos puedan trabajar de forma independiente, se quita el read-onlyy se continúa la ejecución. Sistemas Operativos – ICC243 [ 46 ] Prof. Jonathan Makuc

  47. Proceso A Proceso A Pág Pág Pág Pág Marco Marco Marco Marco R R R R 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 3 3 3 3 0 0 0 0 2 2 2 2 6 6 6 6 1 0 0 0 3 3 3 3 2 2 10 2 1 1 0 0 0 0 0 1 4 4 4 4 7 7 7 7 Proceso Hijo de A Proceso Hijo de A Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// • Páginas Compartidas fork El proceso hijo de A intenta de escribir en la página 3. El SO duplica la página en otro marco y permite la modificación Sistemas Operativos – ICC243 [ 47 ] Prof. Jonathan Makuc

  48. IET110Sistemas Operativos P06: Memoria Slide: 48 Prof. Jonathan Makuc

More Related