Saltar al contenido

¿Cuál es la diferencia entre “memoria virtual” y “espacio de intercambio”?

No dudes en compartir nuestro sitio y códigos en tus redes, apóyanos para aumentar esta comunidad.

Solución:

Hay una excelente explicación de la memoria virtual sobre el superusuario.

En pocas palabras, la memoria virtual es una combinación de RAM y espacio en disco que pueden usar los procesos en ejecución.

El espacio de intercambio es la parte de la memoria virtual que se encuentra en el disco duro y se utiliza cuando la memoria RAM está llena.

En cuanto a por qué la CPU de 32 bits está limitada a una memoria virtual de 4 gb, se aborda bien aquí:

Por definición, un procesador de 32 bits usa 32 bits para referirse a la ubicación de cada byte de memoria. 2^32 = 4200 millones, lo que significa que una dirección de memoria de 32 bits solo puede hacer referencia a 4200 millones de ubicaciones únicas (es decir, 4 GB).

Existe cierta confusión con respecto al término Memoria virtual, y en realidad se refiere a los siguientes dos conceptos muy diferentes

  1. Usar páginas de disco para extender la cantidad conceptual de memoria física que tiene una computadora: el término correcto para esto es en realidad Paginación
  2. Una abstracción utilizada por varios sistemas operativos/CPU para crear la ilusión de que cada proceso se ejecuta en un espacio de direcciones contiguo e independiente.

El espacio de intercambio, OTOH, es el nombre de la parte del disco que se usa para almacenar páginas de RAM adicionales cuando no está en uso.

Es importante darse cuenta de que lo primero es transparentemente posible debido al soporte de hardware y sistema operativo de este último.

Para comprender mejor todo esto, debe considerar cómo la CPU y el sistema operativo admiten la “Memoria virtual” (como en la definición 2).

Suponga que tiene un puntero de 32 bits (los puntos de 64 bits son similares, pero usan mecanismos ligeramente diferentes). Una vez que se ha habilitado la “Memoria virtual”, el procesador considera que este puntero se compone de tres partes.

  • Los 10 bits más altos son un Entrada del directorio de páginas
  • Los siguientes 10 bits son un Entrada de la tabla de páginas
  • Los últimos 12 bits constituyen el Desplazamiento de página

Ahora, cuando la CPU intenta acceder al contenido de un puntero, primero consulta el Directorio de páginas tabla: una tabla que consta de 1024 entradas (en la arquitectura X86, cuya ubicación señala el registro CR3). La entrada del directorio de páginas de 10 bits es un índice en esta tabla, que apunta a la ubicación física del Tabla de páginas. Esta, a su vez, es otra tabla de 1024 entradas, cada una de las cuales es un puntero en la memoria física y varios bits de control importantes. (Volveremos a esto más tarde). Una vez que se ha encontrado una página, los últimos 12 bits se utilizan para encontrar una dirección dentro de esa página.

Hay muchos más detalles (TLB, páginas grandes, PAE, selectores, protección de página), pero la breve explicación anterior capta la esencia de las cosas.

Usando este mecanismo de traducción, un sistema operativo puede usar un conjunto diferente de páginas físicas para cada proceso, lo que le da a cada proceso la ilusión de tener toda la memoria para sí mismo (ya que cada proceso obtiene su propio directorio de páginas)

En la parte superior de esta Memoria virtual el sistema operativo también puede agregar el concepto de Paginación. Uno de los bits de control discutidos anteriormente permite especificar si una entrada es “Presente”. Si no está presente, un intento de acceder a esa entrada resultaría en una Error de página excepción. El sistema operativo puede capturar esta excepción y actuar en consecuencia. Los sistemas operativos que admiten intercambio/paginación pueden decidir cargar una página desde el Intercambiar espaciocorrija las tablas de traducción y luego vuelva a emitir el acceso a la memoria.

Aquí es donde se combinan los dos términos, un sistema operativo compatible con memoria virtual y paginación puede dar a los procesos la ilusión de tener más memoria de la que realmente está presente al paginar (intercambiar) páginas dentro y fuera del área de intercambio.

En cuanto a su última pregunta (¿Por qué se dice que la CPU de 32 bits está limitada a 4 GB de memoria virtual). Esto se refiere a la “Memoria virtual” de la definición 2 y es un resultado inmediato del tamaño del puntero. Si la CPU solo puede usar punteros de 32 bits, solo tiene 32 bits para expresar diferentes direcciones, esto le da 2 ^ 32 = 4 GB de memoria direccionable.

Espero que esto aclare un poco las cosas.

En mi humilde opinión, es terriblemente engañoso utilizar el concepto de espacio de intercambio como equivalente a la memoria virtual. VM es un concepto mucho más general que el espacio de intercambio. Entre otras cosas, VM permite que los procesos hagan referencia a direcciones virtuales durante la ejecución, que se traducen en direcciones físicas con el apoyo de hardware y tablas de páginas. Por lo tanto, los procesos no se preocupan por la cantidad de memoria física que tiene el sistema, o dónde residen realmente las instrucciones o los datos en la jerarquía de la memoria física. VM permite este mapeo. El elemento al que se hace referencia (instrucción o datos) puede residir en L1, L2 o RAM, o finalmente en el disco, en cuyo caso se carga en la memoria principal.

El espacio de intercambio es solo un lugar en la memoria secundaria donde las páginas se almacenan cuando están inactivas. Si no hay suficiente RAM, el sistema operativo puede decidir intercambiar páginas de un proceso para dejar espacio para otras páginas de proceso. El procesador nunca ejecuta instrucciones ni lee/escribe datos directamente desde el espacio de intercambio.

Tenga en cuenta que sería posible tener espacio de intercambio en un sistema sin VM. Es decir, los procesos que acceden directamente a las direcciones físicas aún podrían tener partes en el disco.

Si te gustó nuestro trabajo, puedes dejar un ensayo acerca de qué le añadirías a esta sección.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *