Para responder a esta pregunta, visitaré algunos requisitos previos de comprensión. La paginación de demanda pura no se puede lograr sin soporte de hardware. Todas las arquitecturas informáticas modernas admiten la paginación, sin embargo, muchas tienen detalles de implementación diferentes.
Los procesadores x86 usan lo que se llama una tabla de páginas para realizar un seguimiento de los espacios de direcciones virtuales y las asignaciones de páginas, así como también bits sobre los privilegios de acceso y, más relevante, si esa página está presente o no en la memoria física. Las violaciones desencadenan fallas de página que quedan atrapadas por el sistema operativo.
Para obtener más información al respecto, consulte este artículo .
Para responder a la pregunta sobre el intercambio de páginas, primero debemos visitar la pregunta de cómo el sistema operativo realiza un seguimiento de qué páginas son utilizadas por qué proceso y cómo se asignan. Hay muchas estructuras de datos diferentes que se pueden utilizar para tal. Una matriz de bits plana que marca si un cuadro está asignado o no es unidireccional. Listas o pilas enlazadas es otra. Con la paginación de demanda pura, las páginas asignadas en realidad no se marcan como presentes cuando se asignan. Esto tiene el efecto de que no se reserva ningún carnero físico para un proceso hasta que realmente lo escriba. Una vez que lo hace, el hardware arroja una falla que el sistema operativo atrapa, y luego el sistema operativo utiliza un algoritmo de intercambio si no hay páginas físicas disponibles para asignar a la página virtual ya asignada.
Para obtener más información sobre la asignación de marcos de página, consulte aquí . Allí verá una descripción general de algunas estructuras de datos adecuadas.
Una vez que se implementa un algoritmo adecuado para la asignación de páginas, se debe elegir otro para asignar espacio en disco para el intercambio. Windows, como ejemplo, históricamente ha utilizado un archivo plano en el sistema de archivos para el intercambio de páginas. Me imagino que para cada nodo en la estructura de datos que realiza un seguimiento de las páginas asignadas hay un puntero asociado a un desplazamiento en el archivo, que indica la posición de la página en el disco. Los sistemas operativos tipo Unix han usado tradicionalmente particiones separadas para el intercambio de páginas, lo que podría decirse que es más rápido ya que no existe una capa de sistema de archivos.
También es posible divorciar las estructuras de datos del algoritmo de intercambio de las del algoritmo de asignación, sin embargo, las dos están relacionadas, por lo que probablemente esto no se haga con frecuencia.
Espero que eso responda a su pregunta a pesar de la relativa brevedad con que la he tratado. Descubrí que la mejor manera de aprender sobre los sistemas operativos es sumergirse en los detalles arquitectónicos específicos a veces desagradables que se pueden encontrar en sitios como wiki.osdev.org y www.osdever.net que tratan específicamente sobre la fabricación de sistemas operativos hobby y proporcionan excelentes tutoriales en tales detalles.