¿Cómo se relacionan la memoria virtual y el archivo de paginación?

¿Cómo se relacionan la memoria virtual y el archivo de paginación?

Sabemos que la CPU produce direcciones lógicas, también conocidas como direcciones virtuales, mientras se ejecuta un programa. Luego, esas direcciones virtuales se traducen en direcciones físicas mediante la Unidad de administración de memoria (MMU). Sabemos que la memoria virtual también permite utilizar como memoria una parte del disco conocida como archivo de página (Swap Space). Entonces, la dirección virtual apunta a algún espacio en la memoria (RAM) + archivo de página (espacio de intercambio). Pero, cómo se carga el programa desde el disco que no está en la memoria ni en el archivo de página, ya que la CPU genera una dirección virtual y esa dirección virtual siempre apunta a alguna dirección en la memoria (RAM) + archivo de página (espacio de intercambio). Como se llama esa dirección. Inicialmente solía pensar que la dirección lógica/dirección virtual es la dirección que apunta a la ubicación de la memoria física en el disco duro.

Estoy bastante confundido. Gracias por la ayuda.

Respuesta1

Las páginas que no están en la memoria se etiquetan como no válidas, entonces cualquier acceso provocará un error de página en el sistema operativo que buscará dónde se puede cargar la página (archivo de paginación, archivo mapeado...), cargará la página, actualizará el puntero de la página y reprogramará la página. proceso pausado.

En FreeBSD, hay una tabla que contiene las direcciones físicas de cada segmento (un conjunto de páginas consecutivas) y sus atributos de buscapersonas (objeto de buscapersonas, índice, descriptor de archivo…). Supongo que Windows tiene un sistema similar.

Respuesta2

Luego, esas direcciones virtuales se traducen en direcciones físicas mediante la Unidad de administración de memoria (MMU).

Una dirección virtual sólo se puede traducir a una dirección de memoria física cuando el contenido de la memoria del proceso reside o está mapeado.
De lo contrario, se produce una falla (de página) y se crea una nueva asignación y/o el contenido de la memoria (por ejemplo, el requerido) página) para ese proceso debe recuperarse del almacén de respaldo (por ejemplo, el archivo de página). Esta recuperación de contenido la realiza el kernel utilizando el controlador del dispositivo de almacenamiento (por ejemplo, un HDD o SSD). Mientras tanto, el programador de procesos suspenderá el proceso actual e (intentará) habilitar un proceso listo para ejecutar para usar la CPU.

Sabemos que la memoria virtual también permite utilizar como memoria una parte del disco conocida como archivo de página (Swap Space). Entonces, la dirección virtual apunta a algún espacio en la memoria (RAM) + archivo de página (espacio de intercambio).

Incorrecto.
La dirección virtual (por sí sola) no tiene ningún componente ni referencia a la tienda de respaldo.
La organización del almacén de respaldo (por ejemplo, el archivo de página) está bajo el control del núcleo del sistema operativo (es decir, el software).

Además, es posible que el contenido de la memoria virtual ni siquiera se guarde en el archivo de página o en el área de intercambio.
El código de programa que nunca cambia no es necesario intercambiarlo y se puede recuperar nuevamente desde el archivo del programa.
Se accedería directamente a los archivos asignados en memoria en lugar de tener un duplicado en el archivo de página o en el área de intercambio.

Por lo tanto, una dirección virtual por sí sola no es información suficiente para identificar su mapeo de memoria física, y mucho menos información de la tienda de respaldo.

Pero, cómo se carga el programa desde el disco que no está en la memoria ni en el archivo de página, ya que la CPU genera una dirección virtual y esa dirección virtual siempre apunta a alguna dirección en la memoria (RAM) + archivo de página (espacio de intercambio).

Se accede a un programa (o cualquier archivo) por su nombre de archivo utilizando la interfaz del sistema de archivos y la interfaz del dispositivo de bloque subyacente.
Los datos del dispositivo periférico se transfieren mediante instrucciones/operaciones de entrada/salida en lugar de accesos a la memoria (principal).
El concepto de operaciones de E/S se ve desdibujado por la implementación de E/S asignadas en memoria, donde se accede a los registros de dispositivos utilizando direcciones especiales en el espacio de memoria en lugar de direcciones en el espacio de E/S (o puerto).
Los controladores de dispositivos son el software de bajo nivel en el kernel que maneja las complejidades de dichos dispositivos para operaciones de lectura y escritura.

Estos son conceptos fundamentales de arquitectura de computadoras digitales que no son adecuados para una breve explicación en un formato simple de preguntas y respuestas.

Como se llama esa dirección.

Se accede a los dispositivos de almacenamiento masivo (por ejemplo, HDD y SSD) (también conocidos como dispositivos de bloque) a nivel de dispositivo utilizando LBA (Dirección de bloque lógica) (también conocido como números de sector). Cada LBA hace referencia a un bloque lógico de datos de tamaño fijo, normalmente con un valor de 512 bytes.

Inicialmente solía pensar que la dirección lógica/dirección virtual es la dirección que apunta a la ubicación de la memoria física en el disco duro.

Incorrecto.
Se accede a los dispositivos de almacenamiento masivo (por ejemplo, HDD y SSD) a nivel de dispositivo mediante LBA (Dirección de bloque lógica).
En un nivel superior, el sistema de archivos hace referencia al contenido de los archivos utilizando las direcciones de la unidad de asignación del sistema de archivos (por ejemplo, números de clúster). El sistema de archivos proporciona organización al hacer referencia a los archivos por nombre de archivo y directorios.
En un nivel aún más alto, la administración de volúmenes o unidades maneja qué particiones y sistemas de archivos son accesibles.

No existe una relación o conexión fija entre los LBA y las direcciones de memoria virtual.
Cualquier relación entre el contenido del almacén de respaldo (por ejemplo, el archivo de páginas) y la memoria virtual estaría bajo el control del núcleo utilizando información de proceso e información como una tabla de páginas.

Tenga en cuenta que la mayoría de las implementaciones de memoria virtual moderna utilizan páginas de tamaño fijo, pero existen otros esquemas posibles.

información relacionada