Memoria virtual y paginación
La memoria virtual proporciona a cada programa su propio espacio de direcciones grande y contiguo que el hardware y el sistema operativo asignan a la memoria física en páginas de tamaño fijo, lo que proporciona aislamiento, protección y la ilusión de más memoria de la que existe físicamente.
Definition
La memoria virtual es una técnica de gestión de memoria que asigna las direcciones virtuales utilizadas por un programa a direcciones de memoria física a través de tablas de páginas, dividiendo la memoria en páginas de tamaño fijo y permitiendo que las páginas residan en la memoria física o en el almacenamiento de respaldo según sea necesario.
Scope
Este tema cubre la traducción de direcciones a través de tablas de páginas, el búfer de traducción anticipada (TLB) que almacena en caché las traducciones, las fallas de página y la paginación por demanda, el reemplazo de páginas y el principio del conjunto de trabajo, y la protección que proporciona la memoria virtual. Se sitúa en la frontera de la arquitectura y los sistemas operativos. Excluye el almacenamiento de archivos de datos paginados (sistemas de archivos) y el almacenamiento en caché de datos en chip (organización y políticas de caché), aunque interactúa con ambos.
Core questions
- ¿Cómo se traducen las direcciones virtuales a direcciones físicas a través de tablas de páginas?
- ¿Cómo acelera el TLB la traducción y qué sucede en caso de un fallo del TLB?
- ¿Qué ocurre en caso de una falla de página y cómo se maneja la paginación por demanda?
- ¿Cómo guía el concepto de conjunto de trabajo el reemplazo de páginas y previene el thrashing?
Key concepts
- espacios de direcciones virtuales y físicos
- páginas y marcos de página
- tablas de páginas
- búfer de traducción anticipada (TLB)
- fallas de página y paginación por demanda
- reemplazo de páginas
- conjunto de trabajo y thrashing
- protección de memoria
Key theories
- Modelo de conjunto de trabajo
- El conjunto de trabajo es el conjunto de páginas a las que un proceso hace referencia en una ventana de tiempo reciente; mantener el conjunto de trabajo de cada proceso activo residente en la memoria física evita el thrashing, en el que la paginación excesiva colapsa el rendimiento, e informa las decisiones de reemplazo y admisión.
Mechanisms
La dirección virtual de un programa se divide en un número de página y un desplazamiento. El número de página indexa las tablas de páginas (a menudo multinivel) para encontrar el marco físico; el TLB almacena en caché las traducciones recientes para evitar recorrer las tablas en cada acceso. Si una página referenciada no está residente, una falla de página transfiere el control al sistema operativo, que recupera la página del almacenamiento de respaldo y puede desalojar otra según una política de reemplazo guiada por la localidad y el comportamiento del conjunto de trabajo.
Clinical relevance
La memoria virtual es fundamental para los sistemas operativos modernos: aísla los procesos entre sí para mayor seguridad y estabilidad, permite que muchos programas compartan la memoria física y permite que se ejecuten programas más grandes que la RAM física. El comportamiento del TLB y las fallas de página afectan significativamente el rendimiento, y el diseño del espacio de direcciones sustenta la protección y las defensas de seguridad de la memoria.
History
La memoria virtual se originó con la computadora Atlas en Manchester a principios de la década de 1960, introduciendo la paginación y el mecanismo de falla de página. El modelo de conjunto de trabajo de Denning de 1968 proporcionó una explicación fundamentada de la localidad y el thrashing. El soporte de hardware a través de TLB y tablas de páginas multinivel, y características posteriores como las páginas grandes, hicieron que la memoria virtual fuera ubicua en los sistemas de propósito general.
Key figures
- Peter J. Denning
- Maurice Wilkes
- John L. Hennessy
- Abraham Silberschatz
Related topics
Seminal works
- denning1968
- hennessy2019
- silberschatz2018
Frequently asked questions
- ¿Qué sucede en caso de una falla de página?
- Una falla de página ocurre cuando un programa accede a una página virtual que no está actualmente en la memoria física. El hardware transfiere el control al sistema operativo, que localiza la página en el almacenamiento de respaldo, la carga en un marco libre o desalojado, actualiza las tablas de páginas y reanuda el programa como si nada hubiera pasado.
- ¿Qué es el thrashing?
- El thrashing es un colapso en el rendimiento cuando los conjuntos de trabajo combinados de los procesos activos exceden la memoria física, por lo que el sistema pasa la mayor parte de su tiempo paginando datos de entrada y salida en lugar de realizar un trabajo útil. Mantener los conjuntos de trabajo residentes, o reducir la carga, lo evita.