¿Qué tipo de soporte de hardware se necesita para que funcione una memoria virtual paginada?

Memoria virtual paginada” puede significar cosas diferentes, dependiendo de si su espacio de direcciones excede su memoria física o si su memoria física excede su espacio de direcciones.

Esto es lo que necesitas en general:

  • Un traductor de direcciones programable que se encuentra entre cualquier cosa que pueda acceder a la memoria y la memoria física
  • Una forma de generar una falla o interrupción cada vez que algo accede a la memoria que “no está allí”
  • Una forma de volver a ejecutar una instrucción que causó una de esas fallas o interrupciones una vez que la memoria “está allí”, sin efectos secundarios sobre el estado de la CPU o el programa o los datos
  • En algún lugar para almacenar y recuperar imágenes de porciones de memoria física o “páginas” (por ejemplo, una unidad de disco) cuando las cambia dentro y fuera de la memoria física.

Si tiene más espacio de direcciones que la memoria física (por ejemplo, muchos procesos en los que cada uno quiere actuar como si tuviera acceso a toda la memoria), su traductor de direcciones puede usar tablas de páginas para determinar si hay memoria física o no, y qué memoria física se asigna a una parte determinada del espacio de direcciones. Si no hay memoria o hay una memoria incorrecta en ese espacio, entonces genera una falla, y en la rutina de manejo de fallas asigna algo de memoria física, la asigna al rango de dirección correcto, carga la memoria física con una imagen del disco y luego vuelve a -ejecute la instrucción, que esta vez no generará una falla.

Si tiene más memoria física que espacio de direcciones (por ejemplo, una cantidad de memoria pero solo una dirección de 16 bits), su traductor de direcciones puede usar registros base o una MMU de marco de página para asignar la memoria física más grande al espacio de direcciones más pequeño .

En cualquier caso, el sistema operativo puede asegurarse de que su memoria esté configurada correctamente como parte de su cambio de contexto entre procesos.