PAGINACION
La paginación consiste en considerar el espacio de direcciones lógicas de cada proceso como un conjunto de bloques de tamaño consistente llamados paginas. Cada dirección lógica manejada para un proceso estará conformada por un par de valores [pagina: desplazamiento].
Cada dirección lógica manejada para un proceso estará conformada por un par de valores (pagina: desplazamiento). La memoria física se administra implementando bloques de tamaño consistente denominados marcos (frames). Por lo general el tamaño designado para los marcos y páginas es pequeño.
El SO internamente mantiene una tabla de páginas donde relaciona cada página cargada en memoria principal con el frame que la contenga. Utilizando el número de página el sistema recorrerá toda la tabla de páginas hasta localizarla, sumará el desplazamiento a la dirección de carga y obtNRU (Not Recently Used, No Usada Recientemente), se desaloja al azar una página de Clase baja que no esté vacía. Este algoritmo presupone que es mejor desalojar una página modificada pero no solicitada en un tic de reloj (20 ms), a una limpia que se esté usando mucho. NRU es fácil de entender, tiene una implementación aceptable y un desempeño eficiente, aunque no es óptimo.
FIFO (First In, First Out – primero en entrar primero en salir), el SO mantiene una lista de todas lás áginas existentes, desde la más antigua hasta la más nueva, cuando se produce el fallo, se desaloja la primera de a lista (la más antigua) y la nueva se coloca al final.endrá la dirección real.
Cada programa se subdivide en páginas, que se cargan en frames libres que no tienen porque ser seguidos. El sistema analizará cada nuevo trabajo para conocer el número de página que ocupa y buscará en la lista de frames libres un número igual de frames; si encuentra suficientes cargará en ellas las páginas del programa y construirá la tabla de páginas.
Método Básico
•La memoria física se compone en bloques de tamaño fijo denominados marcos.
•La memoria lógica también se compone en bloques del mismo tamaño denominados páginas
Una dirección generada por la CPU se divide en:
•número de página (p)
se usa como índice a una tabla de páginas que contiene la dirección de cada página en la memoria física
•desplazamiento en la página (d)
se combina con la dirección básica para definir la dirección de memoria que se envía a la unidad de memoria
número de página desplazamiento en la página
P D
m-n u
para un espacio de direcciones de 2m y de páginas 2n
Método Básico
•La memoria física se compone en bloques de tamaño fijo denominados marcos.
•La memoria lógica también se compone en bloques del mismo tamaño denominados páginas
Una dirección generada por la CPU se divide en:
•número de página (p)
se usa como índice a una tabla de páginas que contiene la dirección de cada página en la memoria física
•desplazamiento en la página (d)
se combina con la dirección básica para definir la dirección de memoria que se envía a la unidad de memoria
número de página desplazamiento en la página
P D
m-n u
para un espacio de direcciones de 2m y de páginas 2n
1.- En que consiste la paginacion?
- La memoria física es particionada en bloques de tamaño fijos llamados frames.
- La memoria lógica es particionada en bloques del mismo tamaño llamados páginas.
- Cada dirección generada por la CPU es dividida en 2 partes: numero de pagina (p) y offset en la página (d)
- El número de página es usado como índice en una tabla de páginas.
- La tabla de páginas contiene la dirección base de cada página en la memoria física.
Fallo de Página
Veamos, cuando se produce un fallo de página, el SO examina todas las páginas y las divide en cuatro grupos dependiendo del estado de sus bits R (página solicitada) y M (página modificada).
Cuando una página debe ser reemplazada, el sistema operativo divide las páginas en cuatro categorías:
•Clase 0: no solicitada, no modificada.
•Clase 1: no solicitada, modificada.
•Clase 2: solicitada, no modificada.
•Clase 3: solicitada, modificada.
2.- Cuando sucede un fallo de pagina y como se resuelve?
El único inconveniente de paginación pura es que todas las páginas de un proceso deben estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamaño considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de referencias donde se puede esperar que un programa trabaje con un conjunto cercano de referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de intercambio (en memoria secundaria) mientras no se necesiten.
Cuando la paginación se utiliza junto con memoria virtual, el sistema operativo mantiene además el conocimiento sobre qué páginas están en memoria principal y cuáles no, usando la tabla de paginación. Si una página buscada está marcada como no disponible (tal vez porque no está presente en la memoria principal, pero sí en el área de intercambio), cuando la CPU intenta referenciar una dirección de memoria en esa página, la MMU responde levantando una excepción (comúnmente llamada fallo de página). Si la página se encuentra en el espacio de intercambio, el sistema operativo invocará una operación llamada intercambio de página, para traer a memoria principal la página requerida. La operación lleva varios pasos. Primero se selecciona una página en memoria, por ejemplo una que no haya sido usada recientemente (para más detalles ver algoritmos de reemplazo de páginas). Si la página fue modificada, se escribe la misma en el espacio de intercambio. El siguiente paso en el proceso es leer la información en la página necesitada desde el espacio de intercambio. Cuando esto sucede, las tablas para traducción de direcciones virtuales a reales son actualizadas para reflejar los contenidos de la memoria física. Entonces el intercambio de página sale, y el programa que usó la dirección que causó la excepción es vuelto a ejecutar desde el punto en que se dio la misma y continúa como si nada hubiera pasado. También es posible que una dirección virtual sea marcada como no disponible porque no fue localizada previamente. En estos casos, una página de memoria es localizada y llenada con ceros, la tabla de paginación es modificada para mostrar los cambios y el programa se reinicia como en el otro caso.
Si la página que ha provocado el fallo de página no se encuentrass en el espacio de intercambio, habrá que ir a buscarla a la unidad de disco. El proceso, por lo demás sería análogo