Paginación

Anuncio
Paginación
La mayoría de los sistemas con memoria virtual
utilizan una técnica denominada paginación
 La paginación es una técnica de gestión de memoria
que permite asignar memoria de forma discontinua,
divide la memoria física en trozos de tamaño fijo
llamados marcos o frames y la memoria lógica en
bloques del mismo tamaño llamados paginas.

 Cuando
se ejecuta un programa este puede
caber o no en la memoria física, si se da la
situación de que el proceso es mayor que la
memoria, el S.O. se encarga de mantener en
memoria las partes del programa que estamos
usando y el resto en memoria secundaria.
 La paginación se encarga del intercambio de
información entre nuestra memoria y el disco
duro cuando no hemos cargado el programa
completo.
El espacio de memoria se divide en secciones
físicas de igual tamaño denominadas marcos de
pagina.
 Los programas se dividen en unidades lógicas,
denominadas páginas, que tienen el mismo
tamaño que los marcos de paginas. Las paginas
sirven como unidad de almacenamiento de
información y de transferencia entre memoria
principal y memoria secundaria.
 Se puede cargar una pagina de información en
cualquier marco de pagina.

Figura 4-10. La relación entre las direcciones virtuales y las
direcciones de la memoria física viene dada por la tabla de páginas.
Falta de pagina
Si el programa intenta utilizar una página que no
tiene correspondencia:
 La MMU provoca una excepción que hace que la
CPU ceda el control al sistema operativo. Esta
excepción se denomina una falta de página. El
sistema operativo escoge un marco de página
poco utilizado y escribe su contenido de vuelta al
disco, después, carga la página a la que se acaba
de hacer referencia colocándola en el marco de
página que acaba de quedar desocupado,
modifica el mapa en la MMU y reinicia la
instrucción interrumpida.

Tablas de pagina

Tabla de Paginas es donde relaciona cada página
cargada en memoria principal con el marco que la
contenga o lo que es lo mismo con su dirección inicial
en memoria real.

El propósito de la tabla de páginas es establecer una
correspondencia aplicando las páginas virtuales
sobre los marcos de página.
Traducción de direcciones
Cuando un proceso genera un acceso a memoria
intenta acceder a una dirección lógica. El
hardware y el S.O. deben convertir la dirección
lógica a una dirección física.
 Para ello se utiliza la tabla de paginas, la
información contenida en ella nos permite calcular
cual es la dirección física correspondiente a
cualquier dirección lógica del proceso

La dirección lógica se descompone en dos partes:
-Numero de pagina (p)
-Un desplazamiento en la pagina (d), que
indica la posición que ocupa el byte indicado
por la dirección, contando desde el principio
de la página.
 p es la pagina lógica y hay que convertirla a un
marco físico. Para ello se accede a la tabla de
paginas, que nos informa del marco f en el que
sistema operativo ha ubicado en p. La dirección
física se compone juntado f y d.

Ventajas de la paginación







Es posible comenzar a ejecutar un programa, cargando solo una
parte del mismo en memoria, y el resto se cargara bajo la solicitud.
No es necesario que las paginas estén contiguas en memoria, por
lo que no se necesitan procesos de compactación cuando existen
marcos de paginas libres dispersos en la memoria.
Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
El mecanismo de traducción de direcciones (DAT) permite separar
los conceptos de espacio de direcciones y espacios de memoria.
Todo el mecanismo es transparente al usuario.
Se libera al programador de la restricción de programar para un
tamaño físico de memoria, con lo que s e aumenta su productividad.
Se puede programar en función de una memoria mucho más grande
a la existente.
Al no necesitarse cargar un programa completo en memoria para su
ejecución, se puede aumentar el numero de programas
multiprogramándose.
Se elimina el problema de fragmentación externa.
Desventajas de la paginación

El costo de hardware y software se incrementa, por la
nueva información que debe manejarse y el mecanismo
de traducción de direcciones necesario. Se consume
mucho mas recursos de memoria, tiempo en el CPU para
su implantación.

Se deben reservar áreas de memoria para las Tablas de
pagina de los procesos. Al no ser fija el tamaño de estas,
se crea un problema semejante al de los programas
(como asignar un tamaño óptimo sin desperdicio de
memoria, u "ovearhead" del procesador).

Aparece el problema de fragmentación interna.
Descargar