Академический Документы
Профессиональный Документы
Культура Документы
Memoria Virtual
()
1 / 58
Contenidos I
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Algoritmos cl asicos de reemplazo de p agina Aproximaciones LRU Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
() Sistemas operativos. Memoria Virtual April 30, 2012 2 / 58
Introducci on
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
3 / 58
Introducci on
Memoria Virtual
Es la posibilidad de ejecutar un programa que no est a totalmente en memoria Tiene sentido pues hay zonas del programa que puede que no sean referenciadas nunca
condiciones de error poco frecuentes opciones poco usadas variables sobredimensionadas
()
4 / 58
Introducci on
Memoria Virtual
La forma mas usual de implementarla es con paginaci on bajo demanda Puede implementarse con segmentaci on bajo demanda pero puede requerir hacer compactaciones (IBM OS/2 hasta 1.3 lo hac a)
()
5 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
6 / 58
Es un sistema paginado con intercambio en donde se intercambia p aginas cuando no son necesarias El HARDWARE debe suministrar una tabla de p aginas con un bit que indique la presencia (o no) de la p agina en memoria de manera que
Se referencia una p agina cuya entrada en la tabla de p aginas tiene el bit de presencia a 1: se accede normalmente Se referencia una p agina cuya entrada en la tabla de p aginas tiene el bit de presencia a 0: se produce una excepci on
()
7 / 58
Si no se referencian p aginas que no est an en memoria el proceso se ejecuta normalmente.. Cuando se produce la excepci on el control se transere a S.O.
El S.O. salva el estado de la CPU Determina que la excepci on es un fallo de p agina Asigna un marco libre, localiza la p agina en disco e inicia la transferencia Cuando la transferencia se completa, el S.O. actualiza la tabla de p aginas del proceso Cuando se reanuda el proceso, reintenta la instrucci on que produjo el fallo de p agina (pues no se lleg o a ejecutar)
()
8 / 58
Se pueden ejecutar programas m as grandes que la memoria f sica a costa de una merma en la velocidad Dado que a menudo hay que traer p aginas a memoria, surge el problema de cuales reemplazar Adema s de los distintos algoritmos hay que considerar si se hace reemplazo local o global Otro aspecto a tener en cuenta son los criterios de asignaci on de marcos a los procesos
() Sistemas operativos. Memoria Virtual April 30, 2012 9 / 58
b Transferencia de la p agina
Esperar en cola de dispositivo Esperar tiempo de b usqueda y latencia Transferir p agina al marco Actualizar tabla de p aginas
c Reanudar proceso
Restablecer estado de proceso Reanudar ejecuci on
()
10 / 58
()
11 / 58
()
12 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
13 / 58
Reemplazo de p aginas
En la gesti on de la memoria virtual, toma gran importancia lo que se denomina pol tica de reemplazo, que es la que decide que p agina de las presentes en memoria es la que va a ser sustituida En esta pol tica se encuentran involucrados varios conceptos, que aunque distintos, est an fuertemente interrelacionados
a La cantidad de memoria (n umero de marcos) f sica asignada a cada proceso en el sistema b Si el conjunto de p aginas a tener en cuenta a la hora de ser reemplazadas incluye solamente a las del proceso que ha provocado el fallo de p agina o a todas las residentes en memoria (de los distintos procesos) c De entre las p aginas consideradas, cual es la que debe seleccionarse para ser reemplazada
()
14 / 58
El punto a) plantea lo que se conoce como el problema de la asignaci on de marcos. Las soluciones a este problema pasan por intentar asignar a cada proceso un n umero de marcos variable que se adapta a la localidad del proceso (es decir a sus necesidades de memoria en las distintas fases de su ejecuci on) El punto b) plantea lo que se conoce como reemplazo local o reemplazo global El punto c) es lo que es normalmente referido como pol tica de reemplazo o algoritmos de reemplazo de p aginas
()
15 / 58
Reemplazo y asignaci on
()
16 / 58
Reemplazo y asignaci on
No todas las combinaciones son posibles: por ejemplo no puede haber reemplazo global con una t enica de asignaci on ja La soluci on mas utilizada actualmente es asignaci on variable con reemplazo global
Muy sencilla de implementar Se combina con la existencia de pool de marcos libres
()
17 / 58
La mayor a de los sistemas cuenta con un dep osito (pool) de marcos libres Si hay que hacer reemplazo
Se trae la p agina nueva a uno de los marcos libres La p agina reemplazada pasa a ser marcada como libre y a nadida al pool de marcos libres
No hay que esperar para traer la p agina nueva a memoria Ante un nuevo fallo, es posible que la p agina que ha provocado este nuevo fallo est e en memoria en el pool de marcos libres y no hay que traerla de disco
()
18 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
19 / 58
Lo mas usual es que el hardware proporcione un bit de referencia y uno de modicada (dirty bit) para cada p agina. Con esta ayuda, los algoritmos mas usuales son
FIFO con segunda oprtunidad No Usada Recientemente Ni Usada Ni Modicada Recientemente otras aproximaciones LRU . . .
()
20 / 58
()
21 / 58
Algoritmo FIFO
Se reemplaza la primera p agina en entrar (FIRST IN FIRST OUT) Implementaci on muy sencilla Presenta la anomal a de Belady: para ciertos ejemplos concretos de cadenas de referencias a memoria es posible que al aumentar el n umero de marcos aumente el n umero de fallos de p agina
Probar la cadena de referencias 1 2 3 4 1 2 5 1 2 3 4 5 para tres y cuatro marcos
()
22 / 58
()
23 / 58
Algoritmo Optimo
Es el que produce menos fallos de p agina para cualquier cantidad de marcos Se reemplaza la p agina que va a tardar mas tiempo en ser referenciada No puede implementarse pues implicar a conocer de antemano las p aginas que va a referenciar el proceso Aunque no puede implementarse se utiliza como referencia para los dem as algoritmos
()
24 / 58
()
25 / 58
Algoritmo LRU
Reemplaza la p agina menos recientemente usada (Least Recently Used) Es como el optimo pero con la cadena de referencias invertida en el tiempo Produce buenos resultados puesto que por el principio de localidad temporal, p aginas referenciadas recientemente es probable que sean referenciadas proximamente Se adapta muy bien a la localidad del programa
()
26 / 58
Algoritmo LRU
Ninguna de las implementaciones es factible por la carga que supondr a manejar los contadores (o la lista) con cada referencia a memoria
()
27 / 58
()
28 / 58
Aproximaciones LRU
()
29 / 58
Aproximaciones LRU
El algoritmo LRU produce unos resultados razonablemente buenos pero no puede implementarse. En los sistemas con paginaci on bajo demanda el hardware tipicamente proporciona un bit de referencia y un bit de modicaci on (dirty bit) Con estas ayudas se suelen implementar algoritmos que se aproximan al LRU con la idea de adaptarse a la localidad del proceso Los mas usuales son los de segunda oprtunidad, reloj, empleo de bits de referencia adicionales . . .
()
30 / 58
Aproximaciones LRU
Es basicamente un FIFO en el que andem as se tiene en cuenta el bit de referencia Implementaci on muy sencilla: cola circular con las p aginas en la que se almacena tambien el bit de referencia Cuando hay que reemplazar se mira el ndice que indica la p agina siguiente a reemplazar
Si el bit de referencia est a a 0 se reemplaza Si el bit de referencia esta a 1, se pone a 0 y se avanza el ndice a la siguiente. . .
()
31 / 58
Aproximaciones LRU
()
32 / 58
Aproximaciones LRU
()
33 / 58
Aproximaciones LRU
()
34 / 58
Aproximaciones LRU
Hiperpaginaci on
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
36 / 58
Hiperpaginaci on
Hiperpaginaci on (Thrashing)
Se produce hiperpaginaci on cuando un sistema pasa m as tiempo paginando que ejecutando Un proceso que tiene asignados menos marcos que los que est a usando activamente fallar a continuamente de p agina ya que cada fallo reemplazar a una p agina tambien usada Si el reemplazo es global (un proceso puede reemplazar p aginas de otros) puede contagiar el problema Para evitar la hiperpaginaci on se intenta asignar a cada proceso un n umero de marcos suciente. Dos modelos principales
modelo del working set modelo de la frecuencia del fallo de p agina
()
37 / 58
Principio de localidad
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
38 / 58
Principio de localidad
Localidad de un programa
Este principio arma que a medida que un programa se ejecuta pasa de una localidad a otra Una localidad es un conjunto de p aginas que se referencian activa y conjuntamente Un programa en general se compone de varias localidades, que se pueden solapar Dicho de otra manera: los conjuntos de p aginas referenciadas por un proceso durante su ejecuci on estan agrupados en el espacio (localidad espacial) y en el tiempo (localidad temporal)
()
39 / 58
Principio de localidad
Localidad espacial: Si se referencia una direcci on de memoria es probable que se referencie una localizaci on cercana
arrays y estructuras ejecuci on secuencial variables relaccionadas suelen declararse juntas
()
40 / 58
Principio de localidad
Localidad de un programa
()
41 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
42 / 58
Working Set
Se basa el el principio de localidad Para un proceso se dene el working set de ventana en un instante t , W (t , ) como el conjunto de p aginas referenciadas entre los instantes t y t Se trata de las p aginas referenciadas en los u ltimos instantes Si se escoge adecuadamente puede adaptarse a la localidad del programa. Si es demasiado peque no, no abarcar a todo el conjunto de trabajo; si es demasiado grande, puede solapar varias localidades La idea es que asignarle a cada proceso el n umero de marcos necesario para que pueda contener su conjunto de trabajo Se implementan aproximaciones puesto que el modelo ideal implicar a trabajar en cada referencia a memoria.
()
43 / 58
Working Set
El Working Set de un proceso va cambiando a lo largo de su ejecuci on Durante algunas etapas de la ejecuci on de un proceso permanece estable Entre etapas estables hay periodos transitorios El S:O: debe llevar contabilidad de los WS de todos los procesos de manera que la memoria f sica utilizada se corresponda con la suma de los WS de los procesos en ejecuci on
Si a un proceso no puede asignarle su Workin Set suspender a su ejecuci on hasta que quede m as memoria disponible
()
44 / 58
()
45 / 58
()
46 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
47 / 58
Es un m etodo efectivo para controlar la hiperpaginaci on Se establece un l mite de tiempo, Cuando se produce un fallo de p agina se compara el tiempo trascurrido desde el u ltimo fallo con el l mite
Si es menor que el l mite, la nueva p agina se ANADE al conjunto de p aginas residentes del proceso (se aumenta el n umero de marcos asignados al proceso) En caso contrario, todas las p aginas que no han sido referenciadas desde el u ltimo fallo de p agina se descartan, disminuyendo as el n umero de marcos asignados al proceso
()
48 / 58
Puede implementarse tambien con dos l mites, en este caso el tiempo trascurrido desde el u ltimo fallo con el l mite
Si es menor que el l mite inferior la nueva p agina se ANADE al conjunto de p aginas residentes del proceso (se aumenta el n umero de marcos asignados al proceso) Si es mayor que el l mite superior, todas las p aginas que no han sido referenciadas desde el u ltimo fallo de p agina se descartan, disminuyendo as el n umero de marcos asignados al proceso Si est a comprendido entre los dos l mites se reemplaza una p agina del proceso
()
49 / 58
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
50 / 58
EL Intel 286 tenia hardware de segmentaci on pero no de paginaci on: IBM OS/2, hasta la versi on 1.3, porporcionaba memoria virtual con segmentaci on bajo demanda
()
51 / 58
Los algoritmos de reemplazo son similares a los de l a paginaci on bajo demanda. Veamos como lo hac a OS/2 El sistema mantenia una lista de los segmentos en memoria. Periodicamente el sistema
Colocaba los segmentos accedidos la nal de la lista Limpiaba los bits de acceso
Cuando habia que reemplazar un segmento se reemplazaba, en caso de ser necesario, el primero (o los primeros) de la lista: se trata de una aproximanci on a LRU pues la lista est a ordenada por tiempo de acceso
()
52 / 58
El mecanismo de reemplazo es un poco distinto del de la paginaci on bajo demanda, pues los distintos segmentos tienen distinto tama no. Veamos como lo hac a OS/2 Al producirse un fallo de segmento
1 Se mira si ha espacio suciente en memoria, y si lo hay se hace una compactaci on 2 Si no hay espacio en memoria se coge el primer segmento de la lista y si es necesario lo escribe en el intercambio
Si ahora hay espacio suciente, se carga el segmento en memoria, se actualiza la tabla de segmentos y se pone al nal de la lista Si no hay espacio se vuelve al paso 1
()
53 / 58
Otras consideraciones
Introducci on Paginaci on bajo demanda Reemplazo de p aginas y asignaci on de marcos Algoritmos de reemplazo de p agina Hiperpaginaci on Principio de localidad Modelo del Working Set Frecuencia del fallo de p agina Segmentaci on bajo demanda Otras consideraciones
()
54 / 58
Otras consideraciones
Otras consideraciones
Hasta ahora hemos visto los siguientes elementos que inuyen en el rendimiento de la p aginaci on bajo demanda
El algoritmo de reemplazo de p aginas El tipo de reemplazo: local o global La asignaci on de marcos a un proceso: ja o variable
()
55 / 58
Otras consideraciones
Otras consideraciones
#include <stdlib.h> #define NCOLS 1024*16 #define NFILAS 1024*16 main() { int **a; unsigned
i, j;
a=(int**) malloc (NFILAS * sizeof (int*)); for (i=0; i<NFILAS;i++) a[i]=(int *) malloc (NCOLS*sizeof(int));
Otras consideraciones
#include <stdlib.h> #define NCOLS 1024*16 #define NFILAS 1024*16 main() { int **a; unsigned
i, j;
a=(int**) malloc (NFILAS * sizeof (int*)); for (i=0; i<NFILAS;i++) a[i]=(int *) malloc (NCOLS*sizeof(int)); for (j=0; j<NCOLS; j++) for (i=0; i<NFILAS; i++) a[i][j]=23; }
() Sistemas operativos. Memoria Virtual April 30, 2012 58 / 58