Sistema operativo: memoria virtual
Una computadora puede utilizar más memoria que la cantidad instalada físicamente en el sistema. Esta memoria extra en realidad se llamavirtual memory y es una sección de un disco duro que está configurado para emular la RAM de la computadora.
La principal ventaja visible de este esquema es que los programas pueden ser más grandes que la memoria física. La memoria virtual tiene dos propósitos. Primero, nos permite extender el uso de la memoria física usando el disco. En segundo lugar, nos permite tener protección de memoria, porque cada dirección virtual se traduce a una dirección física.
A continuación se muestran las situaciones en las que no es necesario cargar el programa completo en la memoria principal.
Las rutinas de manejo de errores escritas por el usuario se utilizan solo cuando ocurre un error en los datos o en el cálculo.
Es posible que algunas opciones y funciones de un programa se utilicen con poca frecuencia.
A muchas tablas se les asigna una cantidad fija de espacio de direcciones, aunque solo se usa una pequeña cantidad de la tabla.
La capacidad de ejecutar un programa que está solo parcialmente en la memoria contrarrestaría muchos beneficios.
Se necesitaría menos cantidad de E / S para cargar o intercambiar cada programa de usuario en la memoria.
Un programa ya no estaría limitado por la cantidad de memoria física disponible.
Cada programa de usuario podría ocupar menos memoria física, se podrían ejecutar más programas al mismo tiempo, con el correspondiente aumento en la utilización y el rendimiento de la CPU.
Los microprocesadores modernos diseñados para uso general, una unidad de administración de memoria o MMU, están integrados en el hardware. El trabajo de la MMU es traducir direcciones virtuales en direcciones físicas. A continuación se ofrece un ejemplo básico:
La memoria virtual se implementa comúnmente mediante paginación por demanda. También se puede implementar en un sistema de segmentación. La segmentación de demanda también se puede utilizar para proporcionar memoria virtual.
Paginación de demanda
Un sistema de paginación por demanda es bastante similar a un sistema de paginación con intercambio en el que los procesos residen en la memoria secundaria y las páginas se cargan solo bajo demanda, no por adelantado. Cuando se produce un cambio de contexto, el sistema operativo no copia ninguna de las páginas del programa anterior al disco ni ninguna de las páginas del nuevo programa a la memoria principal. En cambio, simplemente comienza a ejecutar el nuevo programa después de cargar la primera página y recupera esa las páginas del programa según se hace referencia a ellas.
Mientras se ejecuta un programa, si el programa hace referencia a una página que no está disponible en la memoria principal porque fue intercambiada hace un tiempo, el procesador trata esta referencia de memoria no válida como una page fault y transfiere el control del programa al sistema operativo para exigir que la página vuelva a la memoria.
Ventajas
A continuación se muestran las ventajas de la localización por demanda:
- Gran memoria virtual.
- Uso más eficiente de la memoria.
- No hay límite en el grado de multiprogramación.
Desventajas
El número de tablas y la cantidad de sobrecarga del procesador para manejar las interrupciones de página son mayores que en el caso de las técnicas de administración paginada simples.
Algoritmo de reemplazo de página
Los algoritmos de reemplazo de página son las técnicas mediante las cuales un sistema operativo decide qué páginas de memoria intercambiar y escribir en el disco cuando es necesario asignar una página de memoria. La paginación ocurre cada vez que ocurre una falla en la página y una página libre no se puede usar para la contabilidad de propósitos de asignación para razonar que las páginas no están disponibles o que el número de páginas libres es menor que las páginas requeridas.
Cuando se vuelve a consultar la página que se seleccionó para reemplazar y se paginó, se debe leer desde el disco, y esto requiere que se complete la E / S. Este proceso determina la calidad del algoritmo de reemplazo de página: cuanto menor sea el tiempo de espera para las entradas de página, mejor será el algoritmo.
Un algoritmo de reemplazo de página analiza la información limitada sobre el acceso a las páginas proporcionada por el hardware e intenta seleccionar qué páginas deben reemplazarse para minimizar el número total de páginas perdidas, mientras lo equilibra con los costos del almacenamiento primario y el tiempo de procesamiento del algoritmo. sí mismo. Hay muchos algoritmos de sustitución de páginas diferentes. Evaluamos un algoritmo ejecutándolo en una cadena particular de referencia de memoria y calculando el número de fallas de página,
Cadena de referencia
La cadena de referencias de memoria se llama cadena de referencia. Las cadenas de referencia se generan artificialmente o rastreando un sistema dado y registrando la dirección de cada referencia de memoria. La última opción produce una gran cantidad de datos, donde notamos dos cosas.
Para un tamaño de página determinado, debemos considerar solo el número de página, no la dirección completa.
Si tenemos una referencia a una página p, luego cualquier referencia inmediatamente siguiente a la página pnunca causará una falla en la página. La página p estará en la memoria después de la primera referencia; las referencias inmediatamente siguientes no fallarán.
Por ejemplo, considere la siguiente secuencia de direcciones: 123,215,600,1234,76,96
Si el tamaño de la página es 100, la cadena de referencia es 1,2,6,12,0,0
Algoritmo primero en entrar, primero en salir (FIFO)
La página más antigua de la memoria principal es la que se seleccionará para su reemplazo.
Fácil de implementar, mantenga una lista, reemplace las páginas de la cola y agregue nuevas páginas en la cabecera.
Algoritmo de página óptima
Un algoritmo de reemplazo de página óptimo tiene la tasa de fallas de página más baja de todos los algoritmos. Existe un algoritmo de reemplazo de página óptimo y se ha denominado OPT o MIN.
Reemplace la página que no se utilizará durante un período de tiempo más largo. Utilice el tiempo en que se utilizará una página.
Algoritmo de uso menos reciente (LRU)
La página que no se ha utilizado durante más tiempo en la memoria principal es la que se seleccionará para su reemplazo.
Fácil de implementar, mantenga una lista, reemplace las páginas mirando hacia atrás en el tiempo.
Algoritmo de almacenamiento en búfer de página
- Para que un proceso comience rápidamente, mantenga un grupo de marcos libres.
- En caso de error de página, seleccione una página para reemplazarla.
- Escriba la nueva página en el marco del grupo gratuito, marque la tabla de páginas y reinicie el proceso.
- Ahora escriba la página sucia fuera del disco y coloque el marco que contiene la página reemplazada en el grupo libre.
Algoritmo de uso menos frecuente (LFU)
La página con el recuento más pequeño es la que se seleccionará para su reemplazo.
Este algoritmo sufre la situación en la que una página se usa mucho durante la fase inicial de un proceso, pero luego nunca se vuelve a usar.
Algoritmo de uso más frecuente (MFU)
Este algoritmo se basa en el argumento de que la página con el recuento más pequeño probablemente acaba de aparecer y aún no se ha utilizado.