La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its.

Presentaciones similares


Presentación del tema: "La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its."— Transcripción de la presentación:

1 La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its there and you cant see it - its transparent If its not there and you can´t see it - you erased it! IBM poster explaining virtual memory, circa 1978 La memoria virtual

2 Sistemas Operativos Diapo. No. 2 Características memoria virtual programa 1M computadora 512K en RAM Programas muy grandes no caben en memoria disponible: solución: dividir programa en partes (capas) capa 0: se ejecuta primero termina se llama la capa 1 Capas se mantienen en disco (zona de swap) y se intercambian con la memoria por medio del sistema operativo

3 La memoria virtualSistemas Operativos Diapo. No. 3 Aspectos a tomar en cuenta Responsabilidades: –Intercambio capas disco/memoria: sist. operativo –Dividir programa: programador Originalidad –división programa responsabilidad del sistema –método diseñado por Fotheringham (1961) –método conocido como memoria virtual Principio –Sistema operativo mantiene en memoria aquellas partes del programa que se usen (referencien) y el resto permanece en disco –direcciones generadas dentro de un programa mediante índices, registros base, de segmento y otros, se denominan espacio direcciones virtuales –las direcciones de la memoria disponible (memoria física) se conocen con el nombre de direcciones físicas

4 La memoria virtualSistemas Operativos Diapo. No. 4 –si no hay memoria virtual: la dirección virtual es la dirección física –con memoria virtual es necesario saber que dirección física le corresponde a la dirección virtual Métodos –paginación –segmentación

5 La memoria virtualSistemas Operativos Diapo. No. 5

6 La memoria virtualSistemas Operativos Diapo. No. 6 La paginación - Espacio direcciones virtuales se divide en unidades llamadas páginas. - Las unidades correspondientes en memoria física se llaman marcos para páginas - Las páginas y los marcos tienen siempre el mismo tamaño. - Fallo de página: pagina no asociada con algún marco

7 La memoria virtualSistemas Operativos Diapo. No. 7 pag 0 pag 2 pag 1 pag n memoria virtual mapa de memoria memoria física disco

8 La memoria virtualSistemas Operativos Diapo. No. 8 A B C D E F G H 0 memoria lógica i v i v i i v i marca válido no - válido tabla de páginas A memoria física (RAM) disco AB DEC F C F 8 9

9 La memoria virtualSistemas Operativos Diapo. No programa A programa B disco memoria RAM

10 La memoria virtualSistemas Operativos Diapo. No. 10 H cargar M J M memoria lógica para el usuario 1 D C B A memoria lógica para el usuario v v v i bit de validez / no validez marco Tabla de páginas para el usuario v v v i bit de validez / no validez marco Tabla de páginas para el usuario 1 monitor H D J A E cargar M memoria física B M

11 La memoria virtualSistemas Operativos Diapo. No fv i bit de validez / no validez marco tabla de páginas 24 cambiar a no válido restablece r la tabla por la nueva página f víctima memoria física 13 Intercambiar a disco la página víctima Inter cambiar a la memoria la página adecuada

12 La memoria virtualSistemas Operativos Diapo. No k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K 32K-36K 36K-40K 40K-44K 44K-48K 48K-52K 52K-56K 56K-60K 60K-64K x x x 5 x 7 x x x x 0- 4k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K } 28K-32K Marco para página Página virtual Direcciones en la memoria fisica Espacio de direcciones virtuales } Ejemplo paginación

13 La memoria virtualSistemas Operativos Diapo. No Tabla de páginas El ajuste de 12 bits se copia en forma directa de la entrada a la salida Bit presente/ausente Página virtual = 2 se utiliza como un índice en la tabla de páginas. Dirección física de salida (24580) Dirección física de salida (24580) Dirección física de salida (15 bits) (24580) Dirección virtual de entrada (16 bits) (8196) 16 páginas de 4K

14 La memoria virtualSistemas Operativos Diapo. No. 14 PT 2 PT 1 Offset Bits PT 1 Tabla de páginas de nivel superior Hacia las páginas Tabla de páginas para los 4 M supe- riores de la memoria (a) (b) (a) Una dirección de 32 bits con dos campos para la tabla de páginas. (b) Tablas de páginas de dos niveles Tabla de páginas de segundo nivel Tabla superior: c/entrada = 4M => se tienen 4G de direcciones virtuales 2 32 = 4,294,967,296 = 4G

15 La memoria virtualSistemas Operativos Diapo. No. 15 Ejemplo direccionamiento Espacio direcciones virtuales: 2 32 = 4,294,967,296 = 4G Ejemplo dirección virtual: 0x = =>PT1 = 1 PT2 = 3 Offset = 4 PT2 = 3 4M 8M tabla 1 tabla 1023 PT1 = M -1 tabla 0 x (dir. abs 4,206,592) a (dir. abs 4, 210,687) : x contiene el número de marco de la página con dirección 0x

16 La memoria virtualSistemas Operativos Diapo. No. 16 Compartiendo páginas - Posibilidad de compartir código en común - Importante en tiempo compartido ed1 ed2 ed3 datos1 Contexto del proceso p Tabla Páginas de p 1 datos 1 ed1 datos 3 ed2 datos2 ed3 ed1 ed2 ed3 datos2 Contexto del proceso p Tabla Páginas de p 2 ed1 ed2 ed3 datos3 Contexto del proceso p Tabla Páginas de p

17 La memoria virtualSistemas Operativos Diapo. No. 17 Desempeño paginación por demanda Paginación por demanda puede tener un efecto importante sobre el desempeño de un sistema Necesario calcular el tiempo de acceso efectivo Tiempo acceso memoria (am) varía entre 10 y 200 nanosegundos Si no hay fallos: tiempo acceso efectivo es el mismo que el tiempo de acceso a memoria Si ocurre un fallo hay que leer del disco la página y luego acceder a la palabra deseada Entonces: –si p es la probabilidad de que ocurra un fallo, –cabe esperar que esta probabilidad es cercana a 0 – el tiempo efectivo de acceso (tea) es: Para calcular lo anterior necesitamos saber cuánto tiempo toma resolver un fallo de página

18 La memoria virtualSistemas Operativos Diapo. No. 18 Secuencia fallo de página 1. Notificación al sistema operativo 2. Guardar los registros del usuario y estado del proceso 3. Determinar que la interrupción fue un fallo de página 4. Verificar que la referencia a la página fue válida y determinar la posición de la página en disco 5. Leer del disco a un marco libre a. Esperar en la fila de espera de este dispositivo, hasta que se atienda la solicitud de lectura b. Esperar durante el tiempo de búsqueda y/o latencia del dispositivo c. Iniciar la transferencia de la página a un marco libre 6. Durante la espera asignar la CPU a algún otro usuario 7. Interrupción del disco (E/S terminada) 8. Guardar los registros y el estado de proceso del otro usuario (si se llevó a cabo el paso 6) 9. Determinar que la interrupción vino del disco 10. Corregir la tabla de páginas y las demás tablas de modo que indiquen que la página ya esta en memoria 11. Esperar que la CPU se asigne otra vez a este proceso 12. Restaurar los registros de usuario, el estado de proceso y la nueva tabla de páginas y reanudar la ejecución interrumpida

19 La memoria virtualSistemas Operativos Diapo. No. 19 Tiempo servicio fallo página Tiene tres componentes –Atender la interrupción de fallo de página –Traer la página a la memoria –Reiniciar los procesos Primera y última tarea podrían tomar entre 1 y 100 microsegundos cada una Tiempo intercambio: –promedio latencia disco duro:15 microsgs –tiempo de búsqueda: 8 milisgs –tiempo de transferencia: 1 milisg –total:24 milisgs Tiempo total paginación: aprox. 25 milisgs Solo se considera tiempo de servicio –si hay una cola de procesos hay que considerar el tiempo de espera para que el dispositivo este libre Si tiempo acceso memoria es de 100 nanosegs, el tiempo de acceso efectivo es: tae =(1-p) x (100) + p ( 25 milisegs) (1-p) x p x 25,000, , 999,900 x p

20 La memoria virtualSistemas Operativos Diapo. No. 20 Entonces ??? Tiempo de acceso efectivo es directamente proporcional a la frecuencia de los fallos de página Si un acceso de cada 1000 causa un fallo de página, el tiempo de acceso efectivo será de 25 microsegs ¡¡¡ Desempeño se reduce en un factor de 250 a causa de la paginación por demanda !!! Si se desea una degradación de menos del 10%, se necesita que: 110 > ,000,000 x p 10 > 25,000,000 x p p > Para mantener en un nivel razonable la reducción del desempeño sólo se puede permitir fallos de página en menos de uno de cada 2,500,000 accesos a memoria Es importante mantener baja la frecuencia de fallos de página, de lo contrario el tiempo de acceso aumentará y frenará la ejecución de procesos, Ejemplos: disco fragmentado y poca RAM en Windows 95 vs área de swap en Linux

21 La memoria virtualSistemas Operativos Diapo. No. 21 El reemplazo de páginas Adoptan el enfoque: si no hay marcos libres, se busca uno ocupado pero que no se este usando y lo liberamos Un marco se libera escribiendo su contenido en el espacio de intercambio y modificando la tabla de páginas (y todas las demás) de tal forma que indiquen que la página ya no esta en la memoria La rutina de atención de fallos de página se modifica de la siguiente forma: 1. Encontrar la página deseada en el disco 2. Hallar un marco libre a. Si hay un marco libre usarlo b. Si no, usar un algoritmo de reemplazo de páginas para escoger un marco víctima c. Escribir la página víctima en el disco; modificar de manera acorde las tablas de páginas y de marcos 3. Leer la página deseada y colocarla en el marco recién liberado; modificar las tablas de páginas y de marcos 4. Reiniciar el proceso usuario interrumpido Si no hay marcos libres, se requieren dos transferencias de página (hacia afuera y hacia adentro), lo que duplica el tiempo de servicio –solución: usar un bit de modificación o bit sucio

22 La memoria virtualSistemas Operativos Diapo. No. 22 Estructura tabla de páginas Número de marco de página Caching desactivado Modificado Referenciado Protección Presente/ ausente caching: páginas asociadas a registros de dispositivos referenciado: 1 cuando se hace una referencia a una página para leer o escribir modificado: recuperación marco, si página no ha sido modificada no se escribe a disco protección: tipo acceso permitido, (0 lec/esc, 1 solo lectura) presente/ausente: 1: entrada valida y puede ser utilizada 0: página no cargada en memoria

23 La memoria virtualSistemas Operativos Diapo. No. 23 Algoritmos de reemplazo de páginas y algoritmos de asignación de marco Dos aspectos a cuidar en la implementación de la paginación por demanda: –desarrollar un algoritmo de asignación de marco –desarrollar un algoritmo de reemplazo de páginas En el primero, si se tienen varios procesos en memoria, hay que decidir cuántos marcos se asignarán a cada uno En el último, si hay que reemplazar páginas hay que seleccionar cuales se reemplazarán

24 La memoria virtualSistemas Operativos Diapo. No. 24 Algoritmos de reemplazo de páginas ¿Cómo escoger un algoritmo de reemplazo específico? –En general lo que se busca es el algoritmo con la frecuencia de fallos de página más baja Evaluación: –Se ejecuta con una serie específica de referencias a memoria y se calcula el número de fallos de página –serie específica: serie de referencias –serie se puede generar en forma aleatoria o a partir del rastreo de un sistema dado –también se necesita saber el número de marcos que se dispone –a medida que aumenta el número de marcos, el número de fallos disminuye, –la adición de memoria física incrementa el número de marcos

25 La memoria virtualSistemas Operativos Diapo. No. 25 Algoritmo Optimo Cuando ocurre fallo página cierto conjunto de páginas se encuentran en memoria En la siguiente instrucción se hará referencia a una de estas páginas (la página que contenga la dirección de uno de los operandos de la instrucción) Otras páginas no se usarán hasta 20, 200 o 1500 instrucciones más adelante Cada página se va a etiquetar con: - Número de instrucciones a ejecutar antes de hacer la primera referencia a dicha página Principio algoritmo: - Eliminar página con la máxima etiqueta - Si una instrucción no va a ejecutarse durante 8 millones de instrucciones y otra página se usará hasta dentro de 6 millones: eliminar primera retrasa el fallo de página lo más posible - Eliminar la página que más se va a tardar en ser referenciada Página 1 Etiqueta: 10 Página 2 Etiqueta: 30 Página 3 Etiqueta: 5

26 La memoria virtualSistemas Operativos Diapo. No. 26 Algoritmo según el uso no tan reciente (NRU) Computadoras tiene dos bits de estado asociados a cada página: R: se activa si se hace referencia a la página M: se activa cuando se escribe en la página Bits actualizados en cada referencia a memoria. Si tales bits no existen en hardware se pueden simular en software. Principio Algoritmo: - Al iniciar un proceso el S.O. asigna 0 a R y M de todas las páginas - En forma periódica se limpia el bit R, (para distinguir páginas que no tengan referencia de las que sí). - Fallo de página: S.O. inspecciona todas las páginas y las divide en cuatro categorías, (según valores R y M ): * caso 0: no referenciada, no modificada * caso 1: no referenciada, pero ha sido modificada * caso 2: se ha hecho referencia, pero no modificada * caso 3: se ha hecho referencia y ha sido modificada

27 La memoria virtualSistemas Operativos Diapo. No. 27 Algoritmo NRU elimina página de la primera clase no vacía con el número más pequeño, (número de clase). Si todas tienen el mismo nivel se elimina el que llego primero Hipótesis implícita: Es mejor eliminar una página modificada sin referencia en al menos un intervalo de reloj, que una página en blanco de uso frecuente. Ventajas +Fácil de comprender +Implantación eficiente +Rendimiento que, aún sin ser el óptimo, sí es adecuado con mucha frecuencia. Algoritmo NRU (cont)

28 La memoria virtualSistemas Operativos Diapo. No. 28 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 la primera página la más antigua y la última la más reciente. En un fallo de página se elimina la primera página y se añade la nueva al final de la lista. FIFO es muy pocas veces usada en su forma más pura. página que se cargó en 1er. lugar (1a. página en salir) ABCDEFH página de carga más reciente (última página en salir)

29 La memoria virtualSistemas Operativos Diapo. No. 29 página que se cargó en 1er. lugar Algoritmo de la Segunda Oportunidad Modificación simple de FIFO evita deshacerse de una página de uso frecuente inspeccionando el bit R de la página más antigua. si (R = 0) =>página antigua y no utilizada se reemplaza en forma inmediata si (R=1) =>el bit se limpia la página se coloca al final de la lista su tiempo de carga se actualiza ABCDEFG BCDEFGA página de carga más reciente Una variante del algoritmo es usar dos bits M y R para decidir si se da una segunda oportunidad

30 La memoria virtualSistemas Operativos Diapo. No. 30 Algoritmo de Reemplazo de Reloj Mantener páginas en una lista circular con forma de reloj. Una manecilla apunta hacia la página más antigua. B C D E F G A H I K J L Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla. Si bit R = 0 => página se retira de memoria se inserta nueva página en su lugar en el reloj manecilla avanza una posición si no se busca una página con R = 0. Difiere del anterior sólo por la implementación

31 La memoria virtualSistemas Operativos Diapo. No. 31 Algoritmo de la menor uso reciente (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 permanezcan sin uso por bastante tiempo. Esto induce al siguiente algoritmo: al ocurrir un fallo de página se elimina la página que no haya sido utilizada durante el tiempo más grande. Nombre estrategia: LRU LRU: realizable en teoría, no es barato. Implementación: necesario mantener una lista de todas las páginas en memoria, en donde la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final. Dificultad: la lista debe actualizarse en cada referencia a la memoria. Búsqueda 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.

32 La memoria virtualSistemas Operativos Diapo. No. 32 1a. Solución: caso más sencillo Requiere de un contador de 64 bits, C, en hardware. se incrementa en forma automática después de cada instrucción. Cada entrada en tabla de páginas debe contener espacio necesario para almacenar el contador. 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 que se hizo referencia. Fallo de página: => S.O. examina todos los contadores de la tabla de páginas y elige el mínimo, (i.e. página de uso más reciente).

33 La memoria virtualSistemas Operativos Diapo. No. 33 Ejemplo solución Valor inicial cont = 0; P0P0 P1P1 P2P2 P3P P0P0 P1P1 P2P2 P3P P0P0 P1P1 P2P2 P3P P0P0 P1P1 P2P2 P3P Página más recientemente usada: P 1, (cont = 6) Página menos usada: P 2, (cont = 0) cont = 1; cont = 2; cont = 3; cont = 4; Referencias: P 0, P 1, P 3, P 1 (4+2)

34 La memoria virtualSistemas Operativos Diapo. No. 34 2a. Solución: caso más sencillo Máquina con n marcos para página, hardware LRU puede matriz de n x n, matriz inicializada en cero. Referencia al marco k hardware primero activa todos los bits del renglón k desactiva después todos los bits de la columna k. En cualquier instante: renglón con valor binario mínimo es de uso menos frecuente, renglón con el siguiente valor más pequeño es el segundo de uso menos reciente, etc.

35 La memoria virtualSistemas Operativos Diapo. No. 35 Ejemplo de LRU con uso de una matriz (a)(b)(d) (d)(f)(g)(h) (i)(j) Máquina con cuatro marcos, con referencias a las páginas en el orden : 0, 1, 2, 3, 2, 1, 0, 3, 2, 3 Después hacer referencia a la página 0 tenemos la situación siguiente:

36 La memoria virtualSistemas Operativos Diapo. No. 36 Simulación LRU en software LRU utiliza hardware especial. Si no existe tal hardware >>> solución implantar en software Posibilidad usar algoritmo de uso no frecuente o NFU necesita un contador en software asociado a c/página valor inicial = 0; En cada interrupción de reloj, el S.O. examina todas las páginas de la memoria: el bit R (0 o 1) se suma al contador (contadores son un intento por llevar un registro de la frecuencia de referencia de la página ). Principal problema NFU: nunca olvida.

37 La memoria virtualSistemas Operativos Diapo. No. 37 Implementación LRU con pila Mantener una pila de números de página Cuando se hace referencia a una página se saca de la pila y se coloca arriba De este modo, en el tope de la pila siempre esta la página más recientemente utilizada Ya que es necesario sacar entradas de en medio de la pila, la mejor forma de implementar la pila es con una lista doblemente encadenada y con apuntadores al principio y al final Cada actualización es costosa, pero no hay que buscar la página a reemplazar, uno de los apuntadores señala la página LRU Implementación en software o microcódigo Ejemplo: serie referencias: a b pila antes de apila después de b

38 La memoria virtualSistemas Operativos Diapo. No. 38 Se podría mantener un contador del número de referencias que se han hecho a cada página Se tienen dos esquemas: LFU y MFU Algoritmo LFU –Eliminar páginas menos frecuentemente usadas (no confundir LFU con LRU) –exige reemplazar la página con la cuenta más baja –una página que se ha usado activamente debe tener una cuenta de referencias grande –algoritmo castiga a páginas que se usaron mucho durante la fase inicial y luego no se vuelven a usar Algoritmo MFU –eliminar páginas más frecuentemente usadas –se basa en el argumento de que la página con la cuenta más baja probablemente se acaba de traer a la memoria y todavía no se usa Ni el algoritmo MFU ni el LFU son comunes La implementación de estos algoritmos es relativamente costosa Algoritmos de conteo

39 La memoria virtualSistemas Operativos Diapo. No. 39 Muchos sistemas mantienen una reserva de marcos libres Cuando ocurre un fallo de página, se escoge un marco víctima igual que antes –sin embargo la página deseada se coloca en un marco libre de la reserva antes de escribir la víctima en el disco –este procedimiento permite al proceso reiniciarse lo más pronto posible, sin esperar a que la página víctima se escriba en el disco –cuando la víctima termina de escribirse en el disco, su marco se añade a la reserva de marcos libres Una variante es mantener una lista de páginas modificadas –siempre que dispositivo de paginación este ocioso, se escoge una página modificada y se escribe en el disco –después de lo cual se apaga su bit de modificación –esquema aumenta probabilidad de que una página este limpia cuando se le escoja para ser reemplazada, y no tenga que reescribirse Algoritmo colocación páginas en buffers

40 La memoria virtualSistemas Operativos Diapo. No. 40 Otra variantes es mantener una reserva de marcos libres, pero recordar cuál página estaba en cada marco –el contenido de un marco no se modifica cuando la página que contiene se escribe en el disco –entonces es posible reutilizar la página vieja directamente de la reserva de marcos libres si llega a necesitarse antes de que vuelva a usarse ese marco –en tal caso, no habrá que efectuar E/S –cuando ocurre un fallo de página, primero se determina si la página deseada está en la reserva de marcos libres –so no es así, se escoge un marco libre y se coloca en él la nueva página

41 La memoria virtualSistemas Operativos Diapo. No. 41 Algoritmo de maduración Bits R para las páginas 0-5, en la marca de reloj Bits R para las páginas 0-5, en la marca de reloj Página Bits R para las páginas 0-5, en la marca de reloj Bits R para las páginas 0-5, en la marca de reloj Bits R para las páginas 0-5, en la marca de reloj (a)(b)(c)(d)(e)

42 La memoria virtualSistemas Operativos Diapo. No. 42 Asignación de marcos Como repartir la cantidad fija de memoria libre entre los distintos procesos Si se tienen 93 marcos libres y dos procesos ¿cuantos marcos recibe cada proceso? Caso más sencillo: monousuario –memoria 128K y páginas de 1K –sistema operativo ocupa 35K => 93 marcos libres –93 marcos se colocan en lista de marcos libres –proceso inicia y va a recibir los 93 marcos, cuando requiera un 94, se aplica un algoritmo de reemplazo –al final proceso regresa los 93 marcos –otras opciones: si sistema operativo no usa su espacio de buffers y tablas estos podrían apoyar la paginación de usuarios –resumiendo estrategia: se asigna cualquier marco libre al proceso del usuario

43 La memoria virtualSistemas Operativos Diapo. No. 43 Número mínimo de marcos No es posible asignar más del total de marcos disponibles (a menos que se compartan las páginas) Existe un número mínimo de marcos que se pueden asignar –número definido por la arquitectura del conjunto de instrucciones –contener páginas a las que una sola instrucción pueda hacer referencia (evitar reiniciar instrucción) –situación grave: arquitecturas que permiten múltiples niveles de indirección –instrucción carga sencilla puede hacer referencia a una dirección indirecta (en otra página) que también puede hacer referencia a una dirección indirecta (en otra página) –solución indirecciones: limitar los niveles de indirección, a través de un contador, Número mínimo de marcos por proceso esta definido por la arquitectura, mientras que el número máximo esta definido por la cantidad de memoria física disponible Menos marcos => más fallos de página

44 La memoria virtualSistemas Operativos Diapo. No. 44 Algoritmos de asignación Asignación equitativa: –La forma más fácil de dividir m marcos entre n procesos es dar a cada proceso una porción de m/n marcos –Por ejemplo 93 marcos y cinco procesos: cada proceso recibirá 18 marcos, los tres marcos restantes pueden usarse como reserva Asignación proporcional –diferentes procesos requieren diferentes cantidades de memoria –si un proceso (p1) requiere 10K y otro (p2) 127K y hay 62 marcos no es lógico asignar 31 marcos a cada uno –se asigna memoria disponible a cada proceso según su tamaño, entonces:

45 La memoria virtualSistemas Operativos Diapo. No. 45 Se debe ajustar a i de modo que sea un entero mayor que el número mínimo de marcos requeridos por el conjunto de instrucciones y que la sumatoria no exceda m En el ejemplo anterior: 10/137 x 62 = 4 (p1 tendrá 4 marcos) 127/137 x 62 = 57 (p2 tendrá 10 marcos) Los procesos comparen recursos de acuerdo a su necesidad Tanto en asignación equitativa como en proporcional la asignación a cada proceso puede variar según el nivel de multiprogramación –si el nivel se incrementa cada procesos perderá algunos marcos para proporcionar al nuevo proceso –si el nivel disminuye los marcos que se habían asignado al proceso que salió se pueden repartir Tanto en asignación equitativa como proporcional un proceso de alta prioridad se trata igual que uno de baja prioridad Para dar prioridad es posible emplear esquema asignación proporcional en el que la asignación de marcos no dependa de tamaños relativos de los procesos si no de su nivel de prioridad

46 La memoria virtualSistemas Operativos Diapo. No. 46 Asignación global o local Otro factor importante de como se asignan los marcos es el reemplazo de páginas Si hay varios procesos compitiendo por los marcos, es posible clasificar algoritmos de reemplazo en reemplazo global y reemplazo local Reemplazo global –permite a un proceso seleccionar un marco de reemplazo del conjunto de todos los marcos, –incluso si ese marco esta asignado a otro proceso, un proceso puede arrebatarle un marco a otro –por ejemplo, procesos con más prioridad –problema: un proceso no puede controlar su propia frecuencia de fallos de página (proceso sólo selecciona marcos asignados a otros procesos) Reemplazo local –el número de marcos asignado a un proceso no cambia –el conjunto de páginas de un proceso que están en la memoria sólo depende del comportamiento de paginación de ese proceso –podría obstaculizar ejecución de un proceso por no dejar que aproveche otras páginas de memoria de poco uso Reemplazo global generalmente aumenta el rendimiento de un sistema, y es el más usado

47 La memoria virtualSistemas Operativos Diapo. No. 47 La segmentación - Paginación = espacio direcciones unidimensional, (0..max) - Dotar máquina de varios espacios independientes de direcciones, desde 0 hasta cierto máximo. - 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 tipo de objeto almacenado

48 La memoria virtualSistemas Operativos Diapo. No. 48 Espacio de direcciones virtuales Espacio de direcciones utilizado en este momento por la tabla de constantes Tabla de símbolos Texto fuente Llamadas a la pila La tabla de símbolos se ha encimado en la tabla del texto fuente Espacio de direcciones asignado a la tabla de constantes Tabla de constantes árbol léxico Libre En un espacio unidimensional de direcciones con tablas crecientes, una tabla puede encimarse con otra.

49 La memoria virtualSistemas Operativos Diapo. No K8 K 12 K16 K O 20 K Tabla desímbolos Segmento 0 4 K8 K 12 K O Textofuente Segmento Constantes 0 4 K8 K 12 K16 K O árbol léxico 4 K8 K 12 K O Llamadas a la pila Una memoria segmentada permite que cada tabla crezca o se reduzca en forma independiente de las demás

50 La memoria virtualSistemas Operativos Diapo. No. 50 CPU( s, d) limite base s Tabla de Segmentos d < limite base+d si no trap, error direccionamiento Memoria Principal La tabla de segmentos

51 La memoria virtualSistemas Operativos Diapo. No. 51 Ejemplo segmentación subrutina stack tabla de simbolos main() del programa principal sqrt() segmento 0 segmento 3 segmento 2 segmento 4 segmento 1 Memoria Principal limite base Tabla de Segmentos Espacio direcciones virtuales segmento 0 segmento 2 segmento 3 segmento 4 segmento 1

52 La memoria virtualSistemas Operativos Diapo. No. 52 Compartiendo Segmentos Espacio direcciones virtuales de P 1 Editor segmento 0 datos 1 segmento 1 Espacio direcciones virtuales de P 2 Editor segmento 0 datos 2 segmento 1 limite base Tabla Segmentos P 2 limite base Tabla Segmentos P Memoria Virtual editor datos 1 datos 2

53 La memoria virtualSistemas Operativos Diapo. No. 53 Combinando paginación y segmentación dirección virtual STBR + s d s d longitud base segmento tabla-páginas d < (long. seg.) p d no trap (base tabla) + p Memoria Principal Tabla de páginas para segmento s dirección física f f d

54 La memoria virtualSistemas Operativos Diapo. No. 54 Esquema MULTICS - Direcciones virtuales: 18 bits de número de segmento 16 bits de offset - Necesarias igual número de entradas en tabla segmentos y segmentos (no debe de haber entradas vacías) - Segmentos: palabras de 64K - Paginar los segmentos: cualquier marco vacío puede ser usado para una determinada página Direcciones en memoria princi- pal de la tabla de paginación Longitud del seg- mento (en páginas) bits diversos bits protección Tamaño página: 0: 1024 palabras 1: 64 palabras 0: segmento esta paginado 1: segmento no paginado Número de segmento Número de página Ajuste dentro de la página Descriptor del segmento: Dirección virtual 34 bits:

55 La memoria virtualSistemas Operativos Diapo. No. 55 Interpretación de una dirección en MULTICS Dirección lógica s1s1 s2s2 d1d1 d2d2 s1s1 s2s2 d1d1 d2d2 tabla de páginas de la tabla de segmentos página de la tabla de segmentos tabla de páginas del segmentos página del segmento

56 La memoria virtualSistemas Operativos Diapo. No. 56 Comparación paginación segmentación Considerando Paginación Segmentación ¿Necesita saber el programador si estáNOSI utilizando esta técnica? ¿Cuántos espacios lineales de direcciones1Muchos existen? ¿Puede el espacio total de direcciones SISI exceder el tamaño de la memoria física? ¿Pueden distinguirse los procedimientos y los datos, además de protegerse en NOSI forma independiente? ¿Pueden adecuarse con facilidad las NOSI tablas con tamaños fluctantes? ¿Se facilita el uso de procedimientosNO SI compartidos entre los usuarios? Motorola 68000: paginación Intel 8086: segmentación

57 La memoria virtualSistemas Operativos Diapo. No. 57 ~~ ~~ Memoria para páginas Núcleo de UNIX 4.3BSD Indice de la siguiente entrada Indice de la entrada superior Número de bloque en disco Número del dispositivo en disco Código del orden del bloque Indice en la tabla de procesos Texto / datos / pila Ajuste dentro del segmento Libre En tránsito Solicitando Cerrado en un bit de memoria Entradas del mapa central, uno por cada marco de página Entrada del mapa central Memoria principal ~~~~


Descargar ppt "La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its."

Presentaciones similares


Anuncios Google