martes, 27 de abril de 2010

MEMORIA VIRTUAL


La memoria virtual es un espacio de direcciones cuyo tamaño máximo está determinado por el esquema de direccionamiento del computador (es decir, por la cantidad máxima de bytes posibles de direccionar que depende de la cantidad de bits o dígitos binarios utilizados para expresar una dirección.

El almacenamiento que puede ser directamente accedido por el computador (memoria principal) se denomina memoria real. El espacio de la memoria real es un conjunto de ubicaciones físicas de memoria en el cual las instrucciones y datos de programa deberán ser ubicados para su procesamiento. Los programas se refieren a los datos e instrucciones por la dirección de memoria virtual sin conocer la ubicación física de memoria real.

La memoria virtual se llama así porque representa una imagen de memoria en lugar de una memoria física del procesador. Dado que la memoria virtual no existe como una entidad física de memoria principal, las instrucciones y datos de un programa referenciados por direcciones virtuales deben ser contenidos en alguna ubicación física de memoria para ser ejecutados.

Los contenidos de la memoria virtual están divididos en porciones o secciones (páginas) de tamaño fijo. El programa está completo en la memoria virtual pero en la memoria real sólo están algunas páginas del mismo que van cambiando automáticamente durante la ejecución.

La memoria real también está dividida en secciones (bloques) de igual tamaño que las páginas. Cuando se debe ejecutar un programa, éste es traído a la memoria virtual y las instrucciones y datos del mismo son transferidos entre la memoria virtual y la real de a una sección por vez durante la ejecución del programa. Una sección será llevada a la memoria real sólo cuando es requerida. Por otro lado, una sección que está en la memoria real sólo será reescrita en la memoria virtual cuando la memoria real asignada a esa sección es requerida por otra sección del mismo o de otro programa, siempre que no se esté ejecutando y, además, si ha sido modificada.

En general, se controla la actividad de las secciones de todos los programas en ejecución a fin de mantener, en lo posible, en memoria real a las secciones más activas o usadas, dejando las menos activas en la memoria virtual.

El hardware de traducción de direcciones o la función interna de mapping son los mecanismos por los cuales se pueden traducir las direcciones de memoria virtual en direcciones de memoria real durante la ejecución de las instrucciones.

No hay comentarios:

Publicar un comentario