2010-12-13 40 views
6

Así que estoy en una clase de arquitectura informática, y creo que me está costando diferenciar entre el almacenamiento en caché y las páginas.caches vs paginación

La única explicación que puedo encontrar es que las páginas son la forma de engañar a un programa que está haciendo todo su trabajo en una región específica de memoria, frente a una memoria caché es la manera en que el hardware engaña al sistema operativo. leyendo desde una región de memoria especificada, cuando realmente no es así.

¿El sistema operativo dirige el hardware que necesita una "nueva página" o es cuidado por el sistema operativo que intenta leer la dirección que está "fuera de rango" de la "página" de caché actual (por falta de un mejor término).

¿Estoy en el camino correcto o estoy completamente loco?

Respuesta

6

El almacenamiento en memoria caché y las páginas son conceptos ortogonales.

Una memoria caché es una "memoria" de alta velocidad que actúa para minimizar el número de accesos a una "memoria" grande de baja velocidad. En el sentido más general, la "memoria" de alta velocidad podría ser su disco duro actuando para almacenar en caché las páginas web recuperadas de la web ("memoria" de baja velocidad). Por supuesto, en el contexto de la arquitectura de la computadora, es más probable que el término "caché" haga referencia a la RAM física utilizada para acelerar el acceso a la memoria RAM o disco más lentos.

Las páginas, OTOH, son simplemente una unidad de gestión de los contenidos de la RAM o el disco.

Estos dos conceptos se unen en la implementación de sistemas de memoria virtual. Un proceso puede asignar 500 MB de memoria. Esto puede ser más que la RAM física disponible para dar al proceso, por lo que el sistema operativo asigna bloques en el disco llamados páginas, que contendrán los contenidos de ciertas páginas lógicas en el espacio de direcciones del proceso.

Cuando el proceso accede a una ubicación en su espacio de direcciones y la página asociada no está asignada actualmente a la memoria física, la CPU señala un error de página y el sistema operativo responde recuperando la página del disco mientras se procesa en estado suspendido Una vez que se asigna la página, el proceso se reanuda y puede acceder a esa ubicación de memoria como si estuviera allí todo el tiempo.

La visión común de que la memoria virtual es una forma de engañar al proceso para que piense que tiene toneladas de RAM no es la única manera de pensar sobre esto. También podría pensar que el espacio de direcciones de un proceso está lógicamente almacenado en las páginas del disco, con la asignación asistida del sistema operativo en la RAM como una forma de almacenar en caché los contenidos de esas páginas de manera que el proceso no acceda continuamente al disco duro. En este sentido, el almacenamiento en caché y la memoria virtual paginada son lógicamente lo mismo. Solo tenga en cuenta que, si bien este punto de vista puede ayudar a comprender la relación entre los dos conceptos, no es del todo exacto, ya que es posible ejecutarlo sin memoria virtual, solo memoria física (de hecho, la mayoría de los sistemas integrados funcionan de esta manera).

+0

OK, creo que tenía en mi cabeza que, básicamente, una página reside en un "conjunto" de caché (suponiendo que se establece la memoria caché asociativa, donde hay múltiples bloques en caché). y así, cuando el programa llama a una dirección al sistema operativo y estaba fuera de "rango", entonces el sistema operativo llamaba a la dirección del caché, lo que causaba una falla, y luego lo forzaba a obtenerlo de la memoria principal, pero Entiendo que estás diciendo que las páginas generalmente residen en la RAM, pero están definidas por el programa, no están definidas por el hardware ... ¡Creo que eso ayuda! Muchas gracias. – onaclov2000

+0

Entonces, ¿eso significa que si una página no existe en la RAM y se produce un error de página, lógicamente la obtendría de la memoria caché o seguiría teniendo acceso al disco? (la memoria caché no "predice" qué página será necesaria a la derecha siguiente?) – onaclov2000

+0

En el contexto de la memoria virtual, no hay caché entre la página RAM y la tienda de respaldo (página de disco). La memoria RAM física actúa esencialmente como un caché para las páginas que residen en el disco. Si se produce un error de página, está fuera de la bandeja que va (o tal vez chips SSD en estos días). –