Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hace que esta operacin sea transparente Permite que un proceso sea mayor que la cantidad de memoria disponible En memoria estn las partes del programa que se estn utilizando, el resto en disco
MP
Disco
En multiprogramacin:
Cuando un programa est a la espera de que se cargue en memoria una porcin del mismo, est esperando una E/S y se puede seguir con otro programa Es usual utilizar paginacin
Direccin virtual: direccin generada por un programa. Espacio de direcciones virtuales: direcciones que puede generar un programa.
Se divide en unidades llamadas pginas Las unidades correspondientes en memoria fsica se llaman marcos de pgina (512bytes, 1K, 2K, 4K) Las pginas y los marcos tienen idntico tamao. La transferencia entre memoria y disco se realizan siempre en unidades de pginas.
Si no hay memoria virtual, las direcciones generadas por un programa son direcciones fsicas Con memoria virtual, las direcciones se mandan a la unidad de gestin de memoria (MMU)
Dispositivo que se encarga de traducir dinmicamente las direcciones virtuales en fsicas
Procesador MMU Bus Memoria
0 1 2 3 4 5 6 7 32-36K 8 9 10 11 12 13 14 60-64K 15
0 1 2 3 4 5 6 7
28-32K
0-4095 => 8192-12287 20500 (byte 20 de la pgina 5) => 12288+20 32780 (byte 12 de la pgina 8) => ?
0
1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0
0 010 1 001 2 110 3 000 4 100 5 011 6 x 7 x 8 x 9 101 10 x 11111 12 x 13 x 14x 15x
Bit de presente/ausente
La tabla de pginas puede ser muy grande (cada proceso cuenta con su propia tabla de pginas)
si dir. de 32 bits y pginas de 4K
1M de pginas (232 /212 = 220)
Vector de registros rpidos en hardware Tabla de pginas en memoria Tablas de pginas de varios niveles Memoria asociativa
Una entrada por pgina virtual Al iniciar el proceso se carga la tabla de pginas del proceso en estos registros Durante la asociacin no hay que acceder a memoria Costosa en recursos si la tabla de pginas es grande (1 registro por pgina) Costosa en tiempo
En el cambio de contexto habra que cargar la tabla de pginas
En hardware slo se necesita un registro que apunte al inicio de la tabla de pginas El cambio de contexto:
modifica un registro
Desventaja:
Hay que hacer una o ms referencias a memoria por cada instruccin para acceder a la tabla de pginas
0 1
1023
0 1
1023
Permite acelerar la traduccin Se basa en la observacin de que la mayora de los programas hacen un gran nmero de referencias a un pequeo nmero de pginas Se equipa a la mquina con un dispositivo hardware que permite asociar direcciones virtuales con fsicas: la memoria asociativa
parte de la MMU nmero pequeo de entradas Bsqueda en todas las entradas en paralelo
Para la traduccin
Se comprueba si est la informacin en la memoria asociativa Si est: ya se puede hacer la traduccin En c.c.: bsqueda normal
Proporcin de encuentros: proporcin de referencias a memoria que pueden ser satisfechas a partir de la memoria asociativa
Cuanto mayor, mayor el rendimiento
Cuando se produce un fallo de pgina: el SO debe decidir qu pgina que est en memoria debe pasar a disco para traer a memoria la pgina requerida. Si la pgina que sale ha sido modificada: se reescribe en disco. Se puede elegir aleatoriamente, pero es ms eficiente sacar una que no se vaya a utilizar pronto.
Buscar de todas las pginas de memoria aquella a la que se tardar ms en hacer una referencia a ella. Retarda todo lo posible el fallo de pgina. Irrealizable: no se dispone de esta informacin
Cuando se carga en memoria: ambos a 0 Con cada interrrupcin: se pone el bit R a 0 Con el fallo de pgina:
R M
0 0 1 1
0 1 0 1
Se toma aleatoriamente una pgina del grupo 0, si no hay del grupo 1, . Es mejor sustituir una pgina que no se haya usado recientemente aunque haya sido modificada, que una que se haya usado en el ltimo pulso de reloj, ya que tiene mucha probabilidad de usarse de nuevo. Ventaja:
Implementacin:
Lista de todas las pginas en memoria
Al principio: la usada ms recientemente Al final: la que lleve ms tiempo sin usarse Se actualiza con cada referencia a memoria. Se busca la pgina y se lleva al principio
Es costosa
Contador de 64 bits
Se incrementa despus de cada instruccin
Lleva ms tiempo sin utilizarse la pgina correspondiente a la fila de menor valor binario. Para: 0 1 2 3 2 1 0 3 2 3
1 2 3 2
0 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
0 1 0 0
0 0 0 0
1 1 0 0
1 1 0 0
0 1 1 0
0 0 1 0
0 0 0 0
1 1 1 0
0 1 1 1
0 0 1 1
0 0 0 1
0 0 0 0
0 1 1 1
0 0 1 1
0 0 0 0
0 0 1 0
con valor inicial 0 Con cada interrupcin de reloj se suma al contador el bit R lleva la cuenta del n de pulsos en los que se ha hecho referencia
Puede ser que al principio de un programa se utilicen algunas pginas muy frecuentemente y luego ya no se utilicen.
Bit R 1 0 0 1
Contador 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
si 0 0 1 0 0 0 0 0 y 0 0 1 0 1 0 0 0 0
Ya no es NFU
Como son contadores finitos, no es capaz de distinguir entre una pgina que se referenci hace 9 pulsos o una que hace 300 si 0 0 1 0 0 1 1 1 y 0 0 1 1 0 0 0 0
Conjunto operativo Polticas de asignacin global frente a local Tamao de pgina Aspectos de implementacin
Instrucciones reiniciables Inmovilizacin de pginas en memoria Pginas compartidas Demonios de paginacin
Prepaginacin: carga de pginas antes de empezar El S.O. se encarga de que el conjunto operativo quepa en memoria reduciendo el ndice de multiprogramacin si hace falta El S.O. lleva la cuenta de los conjuntos operativos
Local
Global
Se busca la pgina a ser sustituida entre las del proceso Se asigna una cantidad fija de memoria Si el conjunto operativo disminuye, se desperdicia memoria
Se busca la pgina a ser sustituida entre todas Se debe decidir cuanto asignar a cada proceso
Conjunto operativo Asignacin por frecuencia de fallos (PFF)
Se intenta mantener entre unos lmites mnimo y mximo
Si grandes
Se desperdicia en promedio la mitad de una pgina por proceso, por fragmentacin interna Ms espacio se desperdicia Ms porcin de programa en memoria sin utilizar
Si pequeas
Tablas de pginas ms grandes Se tarda prcticamente lo mismo en transferir
Cuando se accede a una pgina que no est en memoria, se genera un trap El S.O. carga esta pgina y la instruccin debe comenzar de nuevo Se debe saber dnde empieza la instruccin Puede haber problemas con el autoincremento y autodecremento
La E/S puede plantear problemas Ej: un proceso pide E/S del terminal
Solucin
Se queda bloqueado esperando Se produce fallo de pgina Se puede sustituir la pgina que contiene el buffer de E/S Los datos se leen o escriben en la pgina recin cargada Inmovilizar las pginas en memoria Realizar E/S en buffers del ncleo
Si hay ms de un usuario ejecutando el mismo programa es ms eficiente compartir pginas No todas las pginas se pueden compartir Si A se saca de memoria, no es eficiente expulsar todas las pginas si las est compartiendo con B, ya que se produciran muchos fallos de pginas Igual si A termina, sera fatal para B eliminar todas las pginas de A del disco
Mejora el tiempo en cargar una nueva pgina El contenido de las pginas no se elimina
16 procesos Tabla de segmentos Pginas de 4K 0 1024 pginas por proceso Proceso 0 espacio de direcciones 63 virtuales del proceso de 4M Espacio de direcciones virtuales total de 64 M Entrada en la tabla de segmentos Longitud ProteccinP. A tabla de Pginas 64 segmentos por proceso 16 pginas por segmento 64 K por segmento 0
15
Proceso N de segmento N de pgina Posicin dentro de la pgina Para cambiar de proceso se cambia el registro