Vous êtes sur la page 1sur 23

MEMORIA VIRTUAL

PAGINACIN

MEMORIA VIRTUAL
Mtodo para conseguir que la suma de los espacios de pila, datos y texto de un programa pueda ser mayor que el tamao fsico de la memoria disponible para el. Cada proceso se asigna un rea de direcciones contiguo. El SO mantiene en memoria solamente las partes del programa que se estn utilizando y mantiene en disco (intercambiadas) el resto. Sirve para sistemas mono y multiprogramados. Permite optimizar el uso de la memoria, al mantener en disco partes del proceso poco usadas (rutinas de atencin a errores poco frecuentes, funciones de uso espordico, datos no usados, . . . ) La memoria virtual se implementa normalmente mediante paginacin.

OVERLAYS
Una vez que surgi la multiprogramacin, los usuarios comenzaron a explorar la forma de ejecutar grandes cantidades de cdigo en reas de memoria muy pequeas, auxiliados por algunas llamadas al sistema operativo. Es as como nacen los overlays.
Esta tcnica consiste en que el programador divide lgicamente un programa muy grande en secciones que puedan almacenarse en las particiones de RAM. Al final de cada seccin del programa (o en otros lugares necesarios) el programador insertaba una o varias llamadas al sistema con el fin de descargar la seccin presente de RAM y cargar otra, que en ese momento resida en disco duro u otro medio de almacenamiento secundario, aunque esta tcnica era eficaz (porque resolva el problema) no era eficiente (ya que no lo resolva de la mejor manera). Esta solucin requera que el programador tuviera un conocimiento muy profundo del equipo de cmputo y de las llamadas al sistema operativo.

PAGINACION
DEFINICION
La memoria fsica se divide en bloques de tamao fijo que llamamos marcos. La memoria virtual se divide en bloques del mismo tamao llamados paginas.

Al ejecutar un proceso se cargan sus paginas en los marcos disponibles. La vinculacin de direcciones requiere soporte por hardware (Manejador de Memoria).
La paginacin remedia la fragmentacin externa, pero no la fragmentacin interna. Un intento de acceso a una pagina virtual que no este asociada a un marco produce un sealamiento al SO (trap), llamado fallo de pagina.

PAGINACION
DEFINICION
Como respuesta al fallo de pagina, el SO: 1 Selecciona una pagina poco usada del proceso. 2 Intercambia la pagina a disco. 3 Asigna el marco de la pagina liberada a la pagina virtual que se intenta acceder. Esto supone una forma de reasignacin dinmica por bloques de las direcciones de memoria del proceso

PAGINACION
CARACTERISTICAS
El espacio de direcciones lgico de un proceso puede ser no contiguo. Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames). Se divide la memoria en bloques de tamao llamados pginas. Se mantiene informacin en los marcos libres.

Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y cargar el programa.
Se establece una tabla de pginas para trasladar las direcciones lgicas a fsicas. Se produce fragmentacin interna.

PAGINACION
VENTAJAS
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 estn contiguas en memoria, por lo que no se necesitan procesos de compactacin cuando existen marcos de paginas libres dispersos en la memoria. Es fcil controlar todas las pginas, ya que tienen el mismo tamao.

El mecanismo de traduccin 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 restriccin de programar para un tamao fsico de memoria, con lo que s e aumenta su productividad. Se puede programar en funcin de una memoria mucho ms grande a la existente.

PAGINACION
DESVENTAJA
El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo de traduccin de direcciones necesario. Se consume mucho ms recursos de memoria, tiempo en el CPU para su implantacin. Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero las paginas son de 4K, debern asignrseles 2 pginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias pginas, pero no podr ser utilizado.

PAGINACION
TABLA DE PAGINA
Las tablas de paginacin o tablas de pginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginacin estas son usadas para realizar las traducciones de direcciones de memoria virtual (o lgica) a memoria real (o fsica) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema. Dado que las tablas de paginacin pueden ocupar un espacio considerable de la memoria principal, estas tambin podran estar sujetas a paginacin, lo que da lugar a una organizacin paginada de mltiples niveles. Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestin de Memoria (MMU) para realizar las traducciones.

PAGINACION
Aspectos de diseo
El tiempo de asociacin debe ser reducido. Soluciones basadas completamente en hardware (utilizando registros) son las ms rpidas, pero esto solo es valido si las tablas son pequea.

Cuanto menor sea el tamao de pagina, menor ser la cantidad de fragmentacin interna. Cuanto menor sea la pagina, mayor ser el numero de paginas que se necesitan por proceso. Un numero mayor de paginas por proceso significa que las tablas de paginas sern mayores. Esto puede significar que una gran parte de las tablas de paginas de los procesos activos deben estar en la memoria virtual.

PAGINACION
Aspectos de diseo
La memoria secundaria esta diseada para transferir eficazmente los bloques de datos de mayor tamao, de manera que es propicia para tamaos de pagina mayores. Si el tamao de pagina es muy pequeo, estarn disponibles en la memoria principal un gran numero de paginas para cada proceso. Despus de un tiempo, todas las paginas de la memoria contendrn parte de las referencias ms recientes del proceso. La tasa de fallos de pagina ser menor. Cuando se incrementa el tamao de la pagina, cada pagina individual contendrn posiciones cada vez ms distantes de cualquier referencia reciente. La tasa de fallos ser Mayo.

Rendimiento de un sistema de paginacin


El tiempo de acceso efectivo a memoria (tae) para un sistema de Paginacin de memoria es:
tae = tb + (1 p) tam + p tfallo + tam Donde: tb: tiempo medio de bsqueda en la tabla de pginas p: probabilidad de que ocurra un fallo de pgina tam: tiempo de acceso a memoria tfallo : tiempo de resolucin de un fallo de pgina. Tiene

Rendimiento de un sistema de paginacin


Tres componentes principales: 1 Atender la interrupcin de fallo de pgina 2 Traer la pagina a la memoria 3 Reiniciar el proceso

DISEO DE PAGINACION
Hiperpaginacion
Definimos un conjunto de trabajo como el nmero de pginas activas que un proceso tiene en un momento dado. Si el numero de marcos disponibles es inferior al tamao del conjunto de trabajo, se producirn frecuentes fallos de Pagina (Hiperpaginacion). Un proceso hiperpaginado pasa ms tiempo intercambiando paginas que ejecutndose, y puedo robar paginas de otros procesos, provocando su Hiperpaginacion. Consecuencia: reduccin drstica del uso de CPU. El Planificador de procesos responde incrementando el nivel de multiprogramacin. Este procesos se realimenta positivamente hasta que el sistema se desploma. La Hiperpaginacion se limita si se limita el nmero de marcos que el proceso puede utilizar (Asignacin local), y si se asigna a cada proceso un numero de marcos suficiente.

DISEO DE PAGINACION
Asig. de marcos en sist. monoprogramados
Se asignan paginas al SO y las restantes paginas libres se van asignando tras las correspondientes fallos de pagina a las paginas del proceso Una vez llenas todas las paginas, el manejador utiliza uno de los algoritmos de asignacin por demanda para intercambiar paginas de la memoria y habilitar huecos para las nuevas paginas. Variacin: el SO reserva parte de su espacio (libre) para apoyar la paginacin. El espacio reservado sirve para almacenar temporalmente la pagina entrante mientras se selecciona la pagina que se va a intercambiar.

DISEO DE PAGINACION
Asig. de marcos en sist. multiprogramados
Asignacin equitativa: Cada proceso de los n existentes reciben el mismo nmero de marcos (m/n), de los m marcos del sistema. Asignacin proporcional: El nmero de marcos asignados a un proceso es proporcional a su tamao. Asignacin con prioridades: El nmero de marcos asignados a un proceso no depende del tamao del mismo sino de su prioridad.

DISEO DE PAGINACION
Nmero de marcos
Lmite superior: no se puede asignar ms del total de marcos libres. Lmite inferior: Numero mximo de referencias necesarias para completar una instruccin: Lmite inferior = imax + omax (1 + nmax ) Donde: imax : Numero mximo de palabras que pueden componer una instruccin. omax : Numero mximo de operandos que puede necesitar una instruccin. nmax : Numero mximo de referencias indirectas a memoria necesarias para extraer los datos empleados por la instruccin que ms referencias utilice. Si hay induracin mltiple, se debe limitar el nmero de referencias indirectas, de modo que si se supera se produzca una trampa al SO.

DISEO DE PAGIANACION
Tamao de pgina
Razones para escoger un tamao pequeo: - Reduce la fragmentacin interna. - Favorece la localidad (lo que se carga en memoria se ajusta a lo que se necesita). Razones para escoger un tamao grande: - Reduce el tamao de la tabla de pginas (solo el 1% del Tiempo de Lectura/Escrituras de/a disco, se debe a la transferencia, el 99% son los tiempos de latencia y posicionamiento). -Reduce el nmero de fallos de pgina.

ALGORITMO DE REMPLAZO
DEFINICION Tras un fallo de pagina, el SO debe elegir que pagina de memoria deber ser intercambiada disco para hacer sitio a la nueva pgina que se est solicitando. Criterio general: eliminar pginas poco usadas.

ALGORITMO DE REMPLAZO
FIFO
Cada entrada de la tabla tiene un registro asociado con el instante de carga de la pagina, o (b) el SO mantiene la tabla de pginas en orden de antigedad (FIFO) Cuando se produce un fallo de pgina y no hay marcos libres, se intercambia a disco la pgina que lleve ms tiempo en la tabla.

ALGORITMO DE REMPLAZO
SEGUNDA OPORTUNIDAD
Es una modificacin del FIFO, que consiste en revisar el bit de Referencia de la entrada ms antigua: si es un 1, se pone a 0 y se sita al final de la cola de pginas. As sucesivamente hasta que se encuentre una pagina no referenciada.

ALGORITMO DE REMPLAZO
DEL RELOJ
Las paginas se mantienen en una cola circular, con un apuntador a la paginas ms antigua. Si hay un fallo y R=0, la pagina se retira y se avanza el apuntador. Si R=1 se limpia R se avanza hasta encontrar una pagina con R=0. Es tan solo una implementacin alternativa del algoritmo de la segunda oportunidad, ms eficiente por no requerir movimiento de paginas en la tabla de paginas. Son los punteros los que se desplazan, no las entradas de la tabla.

GRACIAS

Vous aimerez peut-être aussi