lunes, 28 de mayo de 2012

6.3 Gestión


El proceso de direccionamiento en un sistema de memoria virtual combina el
mecanismo hardware de traducción de direcciones siguiendo el mecanismo habitual
de paginación pura o combinada, con la intervención del sistema operativo cuanto se
produce un fallo de página. En la referencia a memoria se comprueba el estado del
bit de validez. Si está activado, la página está cargada y el proceso de traducción
hardware acaba proporcionando la dirección física; en caso contrario, el trap de fallo
de página aborta la ejecución de la instrucción en curso9
 y provoca el salto a la rutina
de tratamiento del fallo de página, que ejecuta los siguientes pasos:
 (1) Si la dirección generada por el programa no es correcta10
, se aborta la ejecución
del programa. Si se trata de una dirección correcta, se busca un marco de
página libre en memoria donde cargar la página referenciada. Si no hay
marcos libres, se consigue uno expulsando una página de memoria. La
elección de ésta (página víctima) se realiza mediante un  algoritmo de
reemplazo. El reemplazo de una página, que se estudiará más  adelante,
implica escribir en disco la página víctima si ésta hubiera sido modificada.
(2) Se programa la lectura de la página referenciada en el dispositivo de
paginación. En los sistemas multiprogramados se produce un cambio de contexto: el proceso que ha provocado el fallo de página pasa a estado
bloqueado y se planifica otro proceso.
(3) Mientras el programa está bloqueado, se lee por DMA en el dispositivo de
paginación la página buscada y se carga en el marco libre seleccionado.
(4) Finalizada la carga, se actualiza la entrada de la tabla de páginas y el bit de
validez asociado. El proceso bloqueado por fallo de página pasa a preparado
para ejecución. Dependiendo de la política de planificación de procesos, el
proceso puede tener la oportunidad de entrar a ejecución.

No hay comentarios:

Publicar un comentario