Paginación de demanda - Demand paging

En los sistemas operativos de computadoras , la paginación por demanda (a diferencia de la paginación anticipada ) es un método de administración de memoria virtual . En un sistema que usa la paginación por demanda, el sistema operativo copia una página de disco en la memoria física solo si se intenta acceder a ella y esa página no está ya en la memoria ( es decir , si ocurre un error de página ). De ello se deduce que un proceso comienza la ejecución sin ninguna de sus páginas en la memoria física, y se producirán muchos fallos de página hasta que la mayor parte del conjunto de páginas de trabajo de un proceso se encuentre en la memoria física. Este es un ejemplo de una técnica de carga diferida .

Concepto basico

La paginación de demanda sigue que las páginas solo deben llevarse a la memoria si el proceso de ejecución las exige. Esto a menudo se conoce como evaluación diferida, ya que solo las páginas solicitadas por el proceso se intercambian del almacenamiento secundario a la memoria principal . Compare esto con el intercambio puro, donde toda la memoria de un proceso se intercambia del almacenamiento secundario a la memoria principal durante el inicio del proceso.

Comúnmente, para lograr este proceso se utiliza una implementación de tabla de páginas . La tabla de páginas asigna la memoria lógica a la memoria física . La tabla de páginas utiliza un operador bit a bit para marcar si una página es válida o no. Una página válida es aquella que reside actualmente en la memoria principal. Una página no válida es aquella que reside actualmente en la memoria secundaria. Cuando un proceso intenta acceder a una página, generalmente se siguen los siguientes pasos:

  • Intente acceder a la página.
  • Si la página es válida (en la memoria), continúe procesando la instrucción normalmente.
  • Si la página no es válida, se produce una trampa de error de página .
  • Compruebe si la referencia de memoria es una referencia válida a una ubicación en la memoria secundaria. De lo contrario, el proceso finaliza ( acceso ilegal a la memoria ). De lo contrario, tenemos que paginar la página requerida.
  • Programe la operación del disco para leer la página deseada en la memoria principal.
  • Reinicie la instrucción que fue interrumpida por la trampa del sistema operativo.

Ventajas

Exigir paginación, en lugar de cargar todas las páginas inmediatamente:

  • Solo carga páginas que son demandadas por el proceso de ejecución.
  • Como hay más espacio en la memoria principal, se pueden cargar más procesos, lo que reduce el tiempo de cambio de contexto , que utiliza grandes cantidades de recursos.
  • Se produce una menor latencia de carga al iniciar el programa, ya que se accede a menos información desde el almacenamiento secundario y se lleva menos información a la memoria principal.
  • Como la memoria principal es cara en comparación con la memoria secundaria, esta técnica ayuda a reducir significativamente el costo de la lista de materiales (BOM) en los teléfonos inteligentes, por ejemplo. Symbian OS tenía esta característica.

Desventajas

  • Los programas individuales enfrentan una latencia adicional cuando acceden a una página por primera vez.
  • Es posible que los sistemas integrados de bajo costo y bajo consumo no tengan una unidad de administración de memoria que admita el reemplazo de páginas.
  • La gestión de la memoria con algoritmos de sustitución de páginas se vuelve un poco más compleja.
  • Posibles riesgos de seguridad, incluida la vulnerabilidad a los ataques de tiempo ; véase Percival, Colin (13 de mayo de 2005). "Caché que falta por diversión y ganancias" (PDF) . BSDCan 2005 . (específicamente el ataque a la memoria virtual en la sección 2).
  • Golpes que pueden ocurrir debido a fallas repetidas en la página.

Ver también

Referencias

  • Tanenbaum, Andrew S. Sistemas operativos: diseño e implementación (segunda edición) . Nueva Jersey: Prentice-Hall 1997.