La paginación por demanda es una forma de memoria virtual, en la que se paginará una página de memoria si un programa intenta acceder a ella y la página aún no está en la memoria principal. Por lo tanto, la paginación por demanda solo carga páginas que deben llevarse a la memoria real durante el proceso de ejecución, no necesita intercambiar toda la memoria por un proceso desde la memoria secundaria a la memoria principal durante el inicio del programa.
La ventaja de este proceso es que solo se cargan las páginas que se necesitan durante el proceso de ejecución, por lo que hay más espacio en la memoria principal y por lo tanto se pueden cargar más procesos, lo que reduce el tiempo de cambio de contexto, que normalmente consume una gran cantidad de recursos de memoria. Sin embargo, la paginación por demanda significa que los programas pueden enfrentar una latencia adicional cuando intentan acceder a una página por primera vez; este proceso también puede ser vulnerable a posibles riesgos de seguridad, como ataques de tiempo.
Proceso de búsqueda de demanda;
1. El programa intenta encontrar una página.
2. Si la página se encuentra en la memoria principal, el programa se ejecuta normalmente.
3.Si no se puede localizar la página, se produce lo que se conoce como trampa de error de página.
Luego, se verifica la referencia de memoria para determinar que es una referencia válida a una ubicación en la memoria secundaria, si lo es, entonces la página tendrá que ser paginada.
5. La página deseada está programada para leerse en la memoria principal.
6. Esta operación se reinicia en el punto antes de que ocurra la trampa de fallas de página. (Pasos 1 y 2).
7. El programa ahora puede acceder a la página deseada en la memoria principal.