“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.
- ¿Hay alguna evidencia de organismos que evolucionaron para tener un cerebro computacional en serie (como un procesador de computadora), en lugar del cerebro computacional paralelo (red neuronal)?
- Informática: ¿De dónde viene la frase 'Roll your own' y por qué se usa en CS?
- ¿Qué avance tecnológico u otro ha hecho posible la computación en la nube hoy? ¿Cuál es la diferencia entre los conceptos de computación en la nube y de computación en red como una WAN?
- ¿Qué significa indir simple, indir doble, indir triple en un Inode de un archivo?
- ¿Puedo unirme a un montón de computadoras y crear un dispositivo de alto rendimiento? Si puedo, ¿cómo?
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.