Hay muchas cosas que pueden salir mal cuando cambiamos
a una nueva tabla. Por lo tanto, es una buena idea configurar
un depurador . No debería necesitarlo cuando siga esta
publicación, pero es bueno saber cómo depurar un problema
cuando ocurre.
Resumen: el modulo de paginacion
Esta publicación se basa en la publicación sobre tablas de páginas , así que comencemos recapitulando
rápidamente lo que hemos hecho allí. Creamos un memory::paging módulo que lee y modifica la tabla
de páginas jerárquicas a través del mapeo recursivo. El propietario de la tabla P4 activa y, por lo tanto,
todas las subtablas es una ActivePageTableestructura, que se debe instanciar solo una vez.
Tablas inactivas
Comencemos creando un tipo para tablas de páginas
inactivas. Como un ActivePageTable, un
InactivePageTableposee una tabla P4. La diferencia es que la
CPU no utiliza la tabla P4 inactiva.
Mapeo temporal
agregamos una TemporaryPageestructura. Lo
creamos en un nuevo temporary_pagesubmódulo
para mantener limpio el módulo de paginación. Se
parece a esto:
Agregamos métodos para
mapear temporalmente y
desasignar la página: