La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ICC243 Sistemas Operativos

Presentaciones similares


Presentación del tema: "ICC243 Sistemas Operativos"— Transcripción de la presentación:

1 ICC243 Sistemas Operativos
P06: Memoria Slide: 1 Prof. Jonathan Makuc

2 Temario :// Sistemas Operativos: Manejo de Memoria 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 – ICC [ 2 ] Prof. Jonathan Makuc

3 Controladores de disp en ROM
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 Programa de Usuario SO en RAM 0xFFF… Programa de Usuario SO en ROM 0xFFF… Programa de Usuario SO en RAM Controladores de disp en ROM 0xFFF… Sistemas Operativos – ICC [ 3 ] Prof. Jonathan Makuc

4 Administración de Memoria Básica ://
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 Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k Sistemas Operativos – ICC [ 4 ] Prof. Jonathan Makuc

5 Administración de Memoria Básica ://
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. Partición 4 Partición 3 Partición 2 Partición 1 Sistema Operativo 800k 700k 400k 200k 100k 100 Procedimiento que se encuentra en la dirección 100 relativa del programa = 400k = byte Sistemas Operativos – ICC [ 5 ] Prof. Jonathan Makuc

6 Administración de Memoria Básica ://
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 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 – ICC [ 6 ] Prof. Jonathan Makuc

7 Intercambio :// A A B A B C B C B C D C D A
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. S.O. A S.O. A B S.O. A B C S.O. B C S.O. B C D S.O. C D A Memoria disponible Sistemas Operativos – ICC [ 7 ] Prof. Jonathan Makuc

8 Intercambio :// Sistemas Operativos: Manejo de Memoria 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 – ICC [ 8 ] Prof. Jonathan Makuc

9 Intercambio :// C C B B D D Sistemas Operativos: Manejo de Memoria
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. S.O. B C D S.O. B C D Sistemas Operativos – ICC [ 9 ] Prof. Jonathan Makuc

10 Intercambio :// B A Sistemas Operativos: Manejo de Memoria
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. Programa de B Heap de B Stack de B Espacio libre propio de B S.O. A B Sistemas Operativos – ICC [ 10 ] Prof. Jonathan Makuc

11 Intercambio :// A B D C A B C Sistemas Operativos: Manejo de Memoria
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. S.O. Memoria RAM A B D C S.O. Memoria RAM A B C Sistemas Operativos – ICC [ 11 ] Prof. Jonathan Makuc

12 Intercambio :// A B D C A B D C Sistemas Operativos: Manejo de Memoria
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. S.O. Memoria RAM A B D C E S.O. Memoria RAM A B D C E Sistemas Operativos – ICC [ 12 ] Prof. Jonathan Makuc

13 Intercambio :// A B D C A B D C Sistemas Operativos: Manejo de Memoria
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. F S.O. Memoria RAM A B D C E S.O. Memoria RAM A B D C E F Sistemas Operativos – ICC [ 13 ] Prof. Jonathan Makuc

14 Intercambio :// A B D C A B D C Sistemas Operativos: Manejo de Memoria
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. F S.O. Memoria RAM A B D C E S.O. Memoria RAM A B D C E F Sistemas Operativos – ICC [ 14 ] Prof. Jonathan Makuc

15 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
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). CPU MMU RAM Discos CPU envía direcciones virtuales a la MMU MMU envía direcciones físicas a la memoria Sistemas Operativos – ICC [ 15 ] Prof. Jonathan Makuc

16 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria 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 Proceso A RAM Página Marco de Sistemas Operativos – ICC [ 16 ] Prof. Jonathan Makuc

17 Espacio De Direcciones Virtual
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 X 2 3 7 5 6 4 1 (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) k – 0k Espacio De Direcciones Virtual 4k – 0k Memoria RAM Tabla de Páginas Marco de Página Página Sistemas Operativos – ICC [ 17 ] Prof. Jonathan Makuc

18 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
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 = / 4096 (DIV ENTERA) = 8 Marco de la página 8 = 0 Desplazamiento = – (8 * 4096) = 4009 Dirección Física (paddr) = 0 * = 4009 36864 (Pág. 8) 32768 4096 desplazamiento 4009 paddr 36777 vaddr Sistemas Operativos – ICC [ 18 ] Prof. Jonathan Makuc

19 Espacio De Direcciones Virtual
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. X 2 3 1 32k – 28k 28k – 24k 24k – 20k 20k – 16k 16k – 12k 12k – 8k 8k – 4k 4k – 0k Espacio De Direcciones Virtual Memoria RAM Sistemas Operativos – ICC [ 19 ] Prof. Jonathan Makuc

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

21 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
Estructura de la tabla de Páginas bit cache Indica al sistema operativo si realiza cache de la página. Útil cuando la página contiene estados de dispositivos. 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) Número De Marco Página 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. Sistemas Operativos – ICC [ 21 ] Prof. Jonathan Makuc

22 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
Tabla de Páginas dentro de la MMU Dirección Física (paddr) 1 Pág Virtual Marco Validez 15 001 1 14 13 101 12 111 11 10 100 9 011 8 7 6 110 5 4 010 3 2 000 Memoria de 32kb (15bits necesarios) Espacio de direcciones virtual de 16bits (64kb) 0110x0 = 6 Dirección Virtual (vaddr) 1 N° de Página Desplazamiento Sistemas Operativos – ICC [ 22 ] Prof. Jonathan Makuc

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

24 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
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 – ICC [ 24 ] Prof. Jonathan Makuc

25 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
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 Página Marco Sistemas Operativos – ICC [ 25 ] Prof. Jonathan Makuc

26 Memoria Virtual :// Sistemas Operativos: Manejo de Memoria
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 – ICC [ 26 ] Prof. Jonathan Makuc

27 ? Algoritmos de Reemplazo de Páginas ://
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 RAM ? Eliminacion Sistemas Operativos – ICC [ 27 ] Prof. Jonathan Makuc

28 Algoritmos de Reemplazo de Páginas ://
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 – ICC [ 28 ] Prof. Jonathan Makuc

29 Algoritmos de Reemplazo de Páginas ://
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. Página 1 Tiempos de referencia: 123, 1002, 2099, 4009, 10000 Página 5 Tiempos de referencia: 123, 1002, 2099, 4009, 10000 Página 2 Tiempos de referencia: 11, 20000, 22444, 22443 Página 3 Tiempos de referencia: 1000, 1001, 1002, 1003 A desalojar Página Entrante Página 4 Tiempos de referencia: 500, 11000, 11001, 23000 Sistemas Operativos – ICC [ 29 ] Prof. Jonathan Makuc

30 Algoritmos de Reemplazo de Páginas ://
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 – ICC [ 30 ] Prof. Jonathan Makuc

31 Algoritmos de Reemplazo de Páginas ://
Sistemas Operativos: Manejo de Memoria Algoritmos de Reemplazo de Páginas :// NRU: Not Recently Used – No usadas recientemente Pag Bit R Bit M 1 2 3 Quantum Pag Bit R Bit M 1 2 3 Estado de la tabla de páginas en t0 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 t1 El SO apaga todos los bits R para poder determinar cuales de las páginas han sido ocupadas Será desalojada Quantum Pag Bit R Bit M 1 2 3 Pag Bit R Bit M 1 2 3 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 – ICC [ 31 ] Prof. Jonathan Makuc

32 t0 t1 t2 t3 t4 t5 t6 t7 Algoritmos de Reemplazo de Páginas ://
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 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 6 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 Sistemas Operativos – ICC [ 32 ] Prof. Jonathan Makuc

33 Algoritmos de Reemplazo de Páginas ://
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 – ICC [ 33 ] Prof. Jonathan Makuc

34 Algoritmos de Reemplazo de Páginas ://
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 Pág 1 1 Pág 2 1 Pág 3 Pág 4 Pág 5 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 Pág 2 1 Pág 3 Pág 4 Pág 5 Pág 1 Idem al caso anterior Pág 3 Pág 4 Pág 5 Pág 1 Pág 2 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 – ICC [ 34 ] Prof. Jonathan Makuc

35 Algoritmos de Reemplazo de Páginas ://
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. Pág 1 1 Pág 2 Pág 3 Pág 4 Bit R = 1, se apaga y se sigue con el siguiente Pág 1 Pág 2 Pág 3 Pág 4 Bit R = 0 Se desaloja la página Sistemas Operativos – ICC [ 35 ] Prof. Jonathan Makuc

36 Algoritmos de Reemplazo de Páginas ://
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. 2 1 4 3 2 1 4 3 100 120 40 60 2 1 4 3 100 150 120 40 60 Acceso página 1 En t=150 Acceso página 1 2 4 3 1 2 1 4 3 100 150 120 40 60 Acceso página 5  fallo de página Acceso página 5 En t=160 2 4 3 1 Página a desalojar Página a desalojar Sistemas Operativos – ICC [ 36 ] Prof. Jonathan Makuc

37 Algoritmos de Reemplazo de Páginas ://
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 – ICC [ 37 ] Prof. Jonathan Makuc

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

39 Modelamiento del reemplazo de páginas ://
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. Secuencia de acceso 1 2 3 4 Mas reciente Mas antigua P 9 Page Faults Secuencia de acceso 1 2 3 4 Mas reciente Mas antigua P 10 Page Faults Sistemas Operativos – ICC [ 39 ] Prof. Jonathan Makuc

40 Modelamiento del reemplazo de páginas ://
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 Cadena de ref. 2 1 3 5 4 Paginas En Memoria Páginas Swap P Cadena de ref. 2 1 3 5 4 Paginas En Memoria Páginas En Swap P M Sistemas Operativos – ICC [ 40 ] Prof. Jonathan Makuc

41 Modelamiento del reemplazo de páginas ://
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 C1 = 0 Cadena de Distancias C2 = 0 C3 = 1 C4 = 1 C5 = 0 C6 = 0 C∞ = 6 Cadena de ref. 2 1 3 5 4 Paginas En Memoria Páginas Swap Sistemas Operativos – ICC [ 41 ] Prof. Jonathan Makuc

42 Fallos de página con 2 marcos
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∞ F1 = 17 F2 = 13 F3 = 11 F4 = 8 F5 = 8 F6 = 6 F∞ = 6 Fallos de página con 2 marcos C1 = 4 C2 = 4 C3 = 2 C4 = 3 C5 = 0 C6 = 2 C∞ = 6 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 – ICC [ 42 ] Prof. Jonathan Makuc

43 Aspectos de diseño de sistemas con paginación ://
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 A2 A0 A1 B1 B0 50 40 15 60 Pág Ult Uso B4 B2 B3 C1 C0 30 70 25 Grafico análisis PPF Marcos de Página asignados Fallos de página Nivel Máximo Nivel Mínimo Seleccionada usando política local Seleccionada usando política global Sistemas Operativos – ICC [ 43 ] Prof. Jonathan Makuc

44 Aspectos de diseño de sistemas con paginación ://
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 – ICC [ 44 ] Prof. Jonathan Makuc

45 Aspectos de diseño de sistemas con paginación ://
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 – ICC [ 45 ] Prof. Jonathan Makuc

46 Aspectos de diseño de sistemas con paginación ://
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 – ICC [ 46 ] Prof. Jonathan Makuc

47 Aspectos de diseño de sistemas con paginación ://
Sistemas Operativos: Manejo de Memoria Aspectos de diseño de sistemas con paginación :// Páginas Compartidas Proceso Hijo de A 2 1 4 3 6 7 Pág Marco R Proceso A 2 1 4 3 6 7 Pág Marco R Proceso A 2 1 4 3 6 7 Pág Marco R fork Proceso Hijo de A 2 1 4 3 6 10 7 Pág Marco R 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 – ICC [ 47 ] Prof. Jonathan Makuc

48 IET110 Sistemas Operativos
P06: Memoria Slide: 48 Prof. Jonathan Makuc


Descargar ppt "ICC243 Sistemas Operativos"

Presentaciones similares


Anuncios Google