Charla:Memoria virtual


Como se señaló, la paginación/intercambio no es una característica requerida de la memoria virtual, por lo que moví la sección sobre Thrashing al artículo Paginación . También necesita algo de limpieza. Guy Harris ( hablar ) 09:09, 5 de enero de 2008 (UTC)Respuesta[ responder ]

¿Cuál es el motivo para intentar reemplazar un archivo .png de 4 KB con una imagen .svg de 17 KB? Philcha ( hablar ) 14:31, 29 de mayo de 2008 (UTC)Respuesta[ responder ]

Habiendo leído el artículo por primera vez y las discusiones aquí, me parece que hay una confusión total sobre qué es la memoria virtual. En primer lugar, separemos el tema de la paginación bajo demanda de la memoria virtual. La paginación por demanda es un tema diferente. En segundo lugar, la memoria virtual no se trata de engañar al programa haciéndole creer que tiene más memoria de la que existe físicamente en la máquina, aunque eso puede ser un efecto secundario de todo el asunto.

De lo que se trata la memoria virtual es de engañar a un programa que está solo en el espacio de la memoria, y que todo el espacio de la memoria es exclusivamente para uso de ese programa. El espacio de memoria comienza en la dirección 0 (bueno, también puede estar en otro lugar, si tiene más sentido), continúa con o sin agujeros, pero la memoria no se comparte con otros usos/usuarios. Un programa no puede decir que es memoria virtual. Se ve como una memoria física para él, y se le da la misma vista exclusiva a todos los programas que podrían estar ejecutándose simultáneamente en la misma computadora. Por lo tanto, la misma dirección virtual para diferentes programas en ejecución puede (y generalmente lo hará) asignarse a diferentes direcciones físicas. Entonces, los programas con diferentes contextos pueden hacer referencia a la misma dirección virtual, pero estarán hablando de diferentes direcciones físicas. Eso es todo al respecto.

Ahora, para aclarar algunas cosas. Un PDP-10 tiene un sistema de memoria virtual. Lo mismo ocurre con un PDP-11 y un montón de otras computadoras, ninguna que cumpla con la definición que este artículo ha hecho anteriormente. Si este artículo se tomara al pie de la letra, Unix no tenía memoria virtual hasta 4BSD.

Además, dada la idea de que la memoria virtual es una forma de engañar a un programa que tiene más memoria de la que existe físicamente, el PDP-11 es un buen ejemplo de que eso no es cierto. El espacio de direcciones virtuales es de solo 16 bits, mientras que el espacio de direcciones físicas de los grandes PDP-11 es de 22 bits. Y, sin embargo, también tienen un sistema de memoria virtual. Además, a pesar de que el hardware de un PDP-11 le permite diseñar un sistema de búsqueda de demanda, nadie lo hizo (que yo sepa). Sin embargo, se hizo el intercambio. Este podría ser un buen momento para el punto de intercambio. El intercambio es el proceso de escribir o volver a leer todo el contexto del proceso y la memoria desde un almacén de respaldo. Esto es diferente de la paginación, en la que se leen/escriben páginas individuales y el contexto del proceso permanece en la memoria. Las fallas de página son una parte del sistema de paginación de demanda, y ocurren como parte de la ejecución de un proceso. El intercambio es algo que sucede cuando el proceso está actualmente suspendido (tal vez solo porque un cambio de contexto, y tal vez porque está esperando que suceda algún evento). Una falla de página puede hacer que un proceso se suspenda temporalmente. El intercambio, por otro lado, es algo que el sistema operativo decide porque la escasez de recursos necesita que se liberen cantidades más grandes de recursos de inmediato, o quizás porque parece que no se hará referencia a los recursos durante un período prolongado.