La Memoria Virtual es cuando un sistema permite a los procesos utilizar más memoria que la disponible en RAM, a través de memoria secundaria (discos duros u otros dispositivos) para almacenar parte de la memoria en RAM, esto con el objetivo de dejar en memoria principal los fragmentos de los procesos que se estén utilizando y mejorar el rendimiento del sistema y la productividad del CPU.
Es importante mencionar que se debe buscar un balance entre la usabilidad y rendimiento y también saber del riesgo que se tendría si se escogen mal los fragmentos en memoria principal ya que esto ocasionaría el recurrente acceso a memoria secundaria.
Esquema general:
Paginación por Demanda
Es una técnica para implementar memoria virtual, se combina la paginación con intercambio (swap: grabar en disco memoria que estaba en RAM y viceversa).
Si no tenemos todas las páginas en memoria es necesario tener un “bit de validez” el cual nos indicará si la página es válida o no, es decir: si está en memoria principal o solo en el disco, esto se indica en la tabla de páginas.
La localidad de los programas hace que el rendimiento de la paginación por demanda sea razonable.
Ventajas:
· Los programadores disponen de un espacio de memoria mayor que las disponibilidades de memoria real del sistema
· Mejora el rendimiento general del sistema
o Uso de memoria
o Grado de multiprogramación
o Capacidad de planificación del sistema operativo
Fallo de página:
Es el evento que se da cuando un proceso accede a una página que no está en memoria y se tiene que buscar en el disco duro (provocar un intercambio), el fallo de página provoca que el sistema operativo recupere del disco la página requerida, se actualiza la tabla de páginas y se ejecuta nuevamente la instrucción que generó el fallo de página, esta vez el hardware ya no generará la excepción debido a que ya se encuentra la página requerida.
Es importante mantener baja la frecuencia de fallos de página ya que de lo contrario, el tiempo aumentará y frenará la ejecución de los procesos.
Diagrama de Gestión de un Fallo de Página
Hiperpaginación:
Exceso de fallos de página.
Desperdicio:
Es cuando el proceso pasa más tiempo decidiendo qué páginas intercambiar y esperando respuesta del disco, se dice que es una consecuencia directa de la hiperpaginación.
Localidad temporal y espacial:
Localidad temporal: la probabilidad condicional de que suceda de nuevo un evento dado que sucedió hace poco tiempo, es inversamente proporcional al tiempo transcurrido.
Localidad espacial: la probabilidad condicional de que suceda de nuevo un evento dado que sucedió cerca, es inversamente proporcional al espacio recorrido.
Localidad espacial: la probabilidad condicional de que suceda de nuevo un evento dado que sucedió cerca, es inversamente proporcional al espacio recorrido.
Componentes del manejo de la memoria virtual
- Estrategia de reposición: Es la política para decidir qué página en RAM es elegida para bajar a disco cuando sea necesario subir una página de disco. Es decir, se produjo un fallo de página y es necesario hacer un intercambio.
- Estrategia de búsqueda: Es la política que decide cuándo subir a RAM páginas que están en disco.
- Estrategia de alcance: Es la política que indica el grupo de páginas que se considerarán al momento de una reposición o intercambio.
Estrategias de reposición
Esta estrategia se ocupa de decidir qué página se debe reemplazar cuando se necesite subir una página a memoria y no hay memoria libre.
Principio de optimización: Debe reemplazarse la página que no se va a utilizar durante el tiempo más largo, es decir el que tiene la menor tasa de fallas de páginas de todos los algoritmos.
Objetivos: Minimizar la hiperpaginación del procesador
FIFO
- Se reemplaza la página más vieja en memoria (La que se subió primero).
- Se asume que las más antiguas serán las menos usadas en el futuro.
- Ventajas:
- Simple de implementar
- Eficiente en el proceso de decisión
- Desventajas:
- Desfavorecer a páginas de uso constante
- Anomalía de Belady
- Secuencia de páginas: X, Y, Z, K, X, Y, J, X, Y, Z, K, J
- Hay más fallas de página con 4 marcos de página que con 3
Segunda oportunidad
- Proceso:
- Modificación de FIFO
- Se maneja un bit de referencia
- Si la primera de la fila es tiene el bit de referencia (bit R) en 1, éste se cambia a 0, se pasa al final de la cola y se examina la siguiente página
- Ventajas:
- Similar a FIFO en simplicidad y eficiencia
- Elimina la anomalía Belady
- Optimización:
- algoritmo de reloj en una lista circular de página con la "manecilla" apuntando a la página más antigua, así si R=0, reemplaza la página, si R=1 cambia el R a 0, y en todo caso avanza a la siguiente página
- Proceso:
- En cada acceso se actualiza en la página su marcas de tiempo
- Reemplazar la página que no ha sido accedida por más tiempo
- Ventaja:
- Utiliza mejor el concepto de localidad temporal
- Desventajas:
- Implica una revisión de todas las páginas para decidir la que se reemplazará
- Necesita mucha ayuda del equipo
- Optimizaciones
- Pilas
- Listas ordenadas
- Contadores
- Propuesta de Tannenbaum: matriz de bits
- matriz de bits de n * n para n marcos de página
- cuando se referencia un página i, se ponen en 1 todos los bits de la fila i y en 0 todos los bits de la columna i
- se reemplaza la página cuya fila tenga el menor valor
- Ejemplo: 4 marcos de página y la secuencia de páginas 1 2 3 4 1 2 5 1 2 3 4 5
Menos frecuentemente usado
- Proceso:
- Interesa la intensidad de uso
- En cada acceso se incrementa un contador
- Se reemplaza la página cuyo contador de acceso tiene el menor valor
- Ventajas:
- Utiliza el concepto de localidad
- Desventajas:
- Implica un recorrido sobre todas las páginas en el proceso de elección.
- Limitante: existe un número finito de bits en los contadores
- No olvida nada: si una página fue utilizada mucho antes se conservará bastante tiempo en memoria
- Necesita un hardware especial
- Optimizaciones:
- Listas ordenadas por valor del contador
- Bit de referencia que incrementa un contador por pulso, reseteando el bit R o bit de referencia que desplaza a la derecha el contador: periódicamente se corre a la derecha el contador de la página
No usado recientemente
- Proceso:
- Se reemplazan las páginas que no han tenido uso reciente
- Se maneja un bit R (de referenciado) y un bit M (de modificado)
- Eliminación períodica del bit R
- Se forman 4 clases de páginas: (R,M) à (0,0) (0,1) (1,0) (1,1)
- Se reemplaza una de las clases de página de menor valor
- Ventajas:
- No se tiene que recorrer todas las páginas para elegir una. En promedio se recorrerá 1/4 de las páginas
- Desventajas:
- No hay certeza de utilización de la localidad
- Necesita hardware especial
Estrategias de búsquedas
Se ocupa de cuándo subir a RAM una página
Por demanda
- Es la más simple, ya que se busca una página cada vez que se produce un fallo de página
- No siempre se puede sincronizar el tamaño de la página con el tamaño de bloque de disco óptimo.
- No está utilizando ninguno de los conceptos de localización.
Anticipada
Se sube a memoria un conjunto de páginas que el proceso muy probablemente utilizará
Conjuntos de trabajo o área activa
Conjunto de trabajo: conjunto de páginas que un proceso accedió en un determinado período de tiempo (los que tengan encendido el bit R)
- Se examinan las X referencias a páginas más recientes de un proceso, las cuales componen su conjunto de trabajo
- Implementación por medio del bit R, interrupciones períodicas que limpien este bit. De esta forma las páginas de un proceso que estén con R=1 son las que pertenecen al conjunto de trabajo.
- Se trata de mantener en memoria el conjunto de trabajo de todos los procesos:
Prepaginación
- Al inicio se ponen en los marcos de página la memoria que el proceso solicite dentro de ciertos límites predeterminados, al suspender un procesos, por cualquier razón, se conserva la información de cuál es su conjunto de trabajo y al despertarse, se sube también su conjunto de trabajo
Estrategia de alcance:
Define la forma en que se asignarán marcos de páginas a los procesos, y la definición del conjunto de páginas candidatas a intercambio, cuando se necesite.
Alcance local: Se asigna a cada proceso un conjunto de marcos de páginas, en el que trabajará. Cuando un proceso produce un fallo de página, la página a ser reemplazada es elegida entre las páginas en los marcos asignados al proceso.
El número de páginas a asignar a cada proceso (m marcos y n procesos) puede ser de dos formas:
- Uniforme: a cada proceso se le asignan m/n marcos de página
- Proporcional: a cada proceso se le asignan marcos de página en proporción al tamaño de la imagen del ejecutable
Alcance global: Los procesos no tienen asignados un número determinado de marcos de página, y al momento de provocar un fallo, el sistema puede elegir reemplazar una página que pertenece a un proceso diferente al que provocó el fallo de página.
Puede provocar que la hiperpaginación de un proceso, lleve a otros procesos a elevar su tasa de fallos de página.
Puede provocar que la hiperpaginación de un proceso, lleve a otros procesos a elevar su tasa de fallos de página.
Control de la hiperpaginación
Por conjunto de trabajo
- Si se tienen el tamaño del conjunto de trabajo CJi para un proceso i, entonces Demanda=SUM (CJi).
- Si la Demanda llega a ser mayor que el número de páginas disponibles, entonces se producirá hiperpaginación, por lo que se elige un proceso y se suspenden, y sus marcos de páginas son asignadas a otros procesos
Frecuencia de fallas de páginas
- Se establecen límites inferior y superior para la tasa de fallas de páginas
- Si la tasa de fallas de página es menor del límite inferior, entonces el proceso tiene muchos marcos asignados, por lo que se le quita uno y se asigna al proceso con mayor tasa de fallas de página
No hay comentarios:
Publicar un comentario