La mayoría de los ordenadores
tienen cuatro tipos de memoria: registros en la CPU, la memoria caché
(tanto dentro como fuera del CPU), la memoria física (generalmente
en forma de RAM, donde la CPU puede escribir y leer directa y
razonablemente rápido) y el disco duro que es mucho más lento, pero
también más grande y barato.
usar memoria virtual, donde la
combinación entre hardware especial y el sistema operativo hace uso
de la memoria principal y la secundaria para hacer parecer que el
ordenador tiene mucha más memoria principal (RAM) que la que
realmente posee. Este método es invisible a los procesos. La
cantidad de memoria máxima que se puede hacer ver que hay tiene que
ver con las características del procesador.
Aunque la memoria virtual podría
estar implementada por el software del sistema operativo, en la
práctica casi siempre se usa una combinación de hardware y
software, dado el esfuerzo extra que implicaría para el procesador.
cuando una excepción de memoria
virtual ocurre, el sistema operativo es responsable de ubicar un área
de memoria física para guardar la información faltante, trayendo la
información desde el disco, actualizando las tablas de traducción y
finalmente continuando la ejecución del programa que dio la
excepción de memoria virtual desde la instrucción que causó el
fallo.
una
dirección virtual de memoria necesitará una o dos referencias para
encontrar la entrada en la tabla de traducción, y una más para
completar el acceso a esa dirección.
En
algunos procesadores, esto es realizado enteramente por el hardware.
En otros, se necesita de la asistencia del sistema operativo: se
levanta una excepción, y en ella el sistema operativo reemplaza una
de las entradas del TLB con una entrada de la tabla de traducción, y
la instrucción que hizo la referencia original a memoria es
reejecutada.