sábado, 27 de noviembre de 2010

4.3 Memoria virtual

En años anteriores las personas se enfrentaron por primera vez con programas que eran demasiados grandes para almacenarse en la memoria. Una solución fue dividir al programa en fragmentos.

La tarea de dividir el programa en fragmentos tenía que ser realizada por el programador. El sistema operativo mantiene en la memoria principal las partes del programa que actualmente se están usando, y el resto se queda en el disco.

Paginación

La mayoría de los sistemas de memoria virtual emplean una técnica llamada paginación.

Las direcciones generadas por programas se denominan direcciones virtuales y constituyen el espacio de direcciones virtuales. El espacio de direcciones virtual se divide en unidades llamadas páginas. Las unidades correspondientes en la memoria física se denominan marcos de páginas. Los marcos y las páginas siempre tienen el mismo tamaño. El número de página se utiliza como índice de la tabla de páginas, produciendo el marco que corresponde a esa pagina virtual.

Tablas de páginas

La dirección virtual se divide en un número de página virtual y una distancia. El numero de página virtual sirve como índice para consultar la tabla de paginas y encontrar la entrada correspondiente a esa página.

El propósito de la tabla de páginas es transformar páginas virtuales en marcos de páginas.

Hay que resolver dos problemas importantes:

La tabla de páginas puede ser extremadamente grande.

· La transformación debe ser rápida.

El secreto de la tabla de página de multinivel es evitar de mantener todas las tablas de páginas en la memoria todo el tiempo, las tablas que no se necesiten no deben estar ahí.

TLB --- Buffers de consulta para traducción

El dispositivo, llamado TLB o también memoria asociativa. El TLB se encuentra dentro de la MMU y consiste en un pequeño número de entradas.

Todas las maquias con memoria virtual paginada tienen tablas de paginas reconocidas por el hardware, más un TLB.

Tablas de páginas invertidas

En este diseño, hay una entrada por cada marco de página de la memoria real, no por cada página del espacio de direcciones virtual.

No hay comentarios:

Publicar un comentario