XiomaraSisaChenche Novato
Cantidad de envíos : 11 Puntos : 25 Reputación : 0 Fecha de inscripción : 17/08/2010
| Tema: memoria virtual.Paginación --- Glen Chenn, Jefferson Moreta, Xiomara Sisa Chenche--- taller 12 Jue Nov 18, 2010 5:29 pm | |
| Tema:memoria virtual. Paginación 1.- En que consiste la 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). 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 obtendrá 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. 2.- Cuando sucede un fallo de pagina y como se resuelve?
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 física, 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 área de intercambio, se salta a una rutina que invoca una operación llamada un 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 es 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. | |
|