miércoles, 14 noviembre 2018

Detalles de la Memoria Virtual

E-mail

 

La traducción de las direcciones virtuales a reales, es implementada por una Unidad de Manejo de Memoria MMU. El sistema operativo, es el responsable de decidir qué partes de la memoria del programa es mantenida en memoria física. Además, mantiene las tablas de traducción de direcciones (si se usa paginación la tabla se denomina tabla de paginación), que proveen las relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente, 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.


VirtualesEn la mayoría de las computadoras, las tablas de traducción de direcciones de memoria se encuentran en memoria física. Esto implica que una referencia a 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.


Para acelerar el desempeño de este sistema, la mayoría de las Unidades Centrales de Proceso (CPU), incluyen una MMU en el mismo chip, y mantienen una tabla de las traducciones de direcciones virtuales a reales usadas recientemente, llamada Translation Lookaside Buffer (TLB). El uso de este buffer hace que no se requieran referencias de memoria adicionales, por lo que se ahorra tiempo al traducir.


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.


El hardware, que tiene soporte para memoria virtual, la mayoría de las veces también permite protección de memoria. La MMU, puede tener la habilidad de variar su forma de operación de acuerdo al tipo de referencia a memoria (para leer, escribir, o ejecutar), así como el modo en que se encontraba el CPU en el momento de hacer la referencia a memoria. Esto permite, al sistema operativo proteger su propio código y datos (como las tablas de traducción usadas para memoria virtual), de corromperse por una aplicación, y de proteger a las aplicaciones que podrían causar problemas entre sí.

 
Red de Sitios Latinos
 
Latinos