Vous êtes sur la page 1sur 75

Administracin de la Memoria

1. 2.

Introduccin al Almacenamiento Real Organizacin y Administracin del Almacenamiento 1. Organizacin del Almacenamiento 2. Administracin del Almacenamiento Jerarqua de Almacenamiento Estrategias de Administracin del Almacenamiento 1. Asignacin Contigua de Almacenamiento Versus No Contigua 2. Asignacin Contigua de Almacenamiento de Un Solo Usuario Multiprogramacin de Particin Fija 1. Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas 2. Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables 3. Proteccin en los Sistemas de Multiprogramacin 4. Fragmentacin en la Multiprogramacin de Particin Fija Multiprogramacin de Particin Variable 1. Compresin o Compactacin de Almacenamiento 2. Estrategias de Colocacin del Almacenamiento Multiprogramacin con Intercambio de Almacenamiento Introduccin a la Organizacin del Almacenamiento Virtual Conceptos Bsicos de Almacenamiento Virtual Organizacin del Almacenamiento de Niveles Mltiples Transformacin de Bloques Conceptos Bsicos de Paginacin 1. Traduccin de Direcciones de Paginacin por Transformacin Directa 2. Traduccin de Direcciones de Paginacin por Transformacin Asociativa 3. Traduccin de Direcciones de Paginacin por Combinacin de Transformacin Asociativa / Directa 4. Compartimiento de Recursos en un Sistema de Paginacin Segmentacin 1. Control de Acceso en Sistemas de Segmentacin 2. Traduccin de Direcciones de Segmentacin por Transformacin Directa 3. Compartimiento en un Sistema de Segmentacin

3. 4.

5.

6.

7. 8. 9. 10. 11. 12.

13.

14.

Sistemas de Paginacin / Segmentacin 1. Traduccin Dinmica de Direcciones en Sistemas de Paginacin / Segmentacin 2. Compartimiento en un Sistema de Paginacin / Segmentacin Estrategias de Administracin del Almacenamiento Virtual 1. Estrategias de Reposicin de Pgina 2. El Principio de Optimizacin 3. Reposicin de Pgina al Azar 4. Reposicin de Pgina por el Sistema de Primero en Entrar - Primero en Salir (FIFO) 5. Reposicin de Pgina Menos - Recientemente - Usada (LRU) 6. Reposicin de Pgina Menos - Frecuentemente - Usada (LFU) 7. Reposicin de Pgina No Usada - Recientemente (NUR) Localidad Conjuntos de Trabajo Paginacin por Demanda y Paginacin Anticipada 1. Paginacin por Demanda 2. Paginacin Anticipada Liberacin de Pgina y Tamao de Pgina 1. Liberacin de Pgina 2. Tamao de Pgina Comportamiento de un Programa en la Paginacin Fin

15.

16. 17. 18.

19.

20. 21.

Introduccin al Almacenamiento Real


La organizacin y administracin de la memoria principal , memoria primaria o memoria real de un sistema ha sido y es uno de los factores ms importantes en el diseo de los S. O. [7, Deitel]. Los trminos memoria y almacenamiento se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para:

Poderlos ejecutar. Referenciarlos directamente.

Se considera almacenamiento secundario o almacenamiento auxiliar al generalmente soportado en discos. Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rpido como las memorias:

Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda la memoria disponible para ellos.

La parte del S. O. que administra la memoria se llama administrador de la memoria:


Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando estos la necesitan. Libera espacio de memoria asignada a procesos que han terminado.

Organizacin y Administracin del Almacenamiento


Organizacin del Almacenamiento Histricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilizacin deba optimizarse [7, Deitel]. Por organizacin del almacenamiento se entiende la manera de considerar este almacenamiento:

se coloca un solo programa de usuario o varios ?. Si se encuentran varios programas de usuario: o se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o particiones de diferente tamao ?. o se utilizar un esquema rgido de nmero y tamao de particiones o un esquema dinmico y adaptable ?. o se requerir que los trabajos de los usuarios sean diseados para funcionar en una particin especfica o se permitir que se ejecuten en cualquiera donde quepan ?. o se requerir o no que cada trabajo sea colocado en un bloque contiguo de memoria ?.

Administracin del Almacenamiento Independientemente del esquema de organizacin hay que decidir las estrategias que se utilizarn para optimizar el rendimiento. Las estrategias de administracin deben considerar:

cundo se consigue un nuevo programa para colocar en la memoria ?: o cuando el sistema lo pide especficamente o se intenta anticiparse a las peticiones ?. dnde se colocar el programa que se ejecutar a continuacin ?: o se prioriza el tiempo de carga o la optimizacin en el uso del almacenamiento ?.

con qu criterio se desplazarn programas ?.

Jerarqua de Almacenamiento
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados [7, Deitel]. Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. El almacenamiento principal es ms costoso y menor que el secundario pero de acceso ms rpido. Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles (ver Figura 3.1 [7, Deitel]).

Un nivel adicional es el cach o memoria de alta velocidad, que posee las siguientes caractersticas:

Es ms rpida y costosa que la memoria principal. Impone al sistema un nivel ms de traspaso: o Los programas son traspasados de la memoria principal al cach antes de su ejecucin. Los programas en la memoria cach ejecutan mucho ms rpido que en la memoria principal.

Al utilizar memoria cach se espera que: o La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecucin mucho ms rpida en la cach.

Estrategias de Administracin del Almacenamiento


Estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal [7, Deitel]. Se dividen en las siguientes categoras:

Estrategias de bsqueda: o Estrategias de bsqueda por demanda. o Estrategias de bsqueda anticipada. Estrategias de colocacin. Estrategias de reposicin.

Las estrategias de bsqueda estn relacionadas con el hecho de cundo obtener el siguiente fragmento de programa o de datos para su insercin en la memoria principal. En la bsqueda por demanda el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algn programa en ejecucin lo referencia. Se considera que la bsqueda anticipada puede producir un mejor rendimiento del sistema. Las estrategias de colocacin estn relacionadas con la determinacin del lugar de la memoria donde se colocar (cargar) un programa nuevo. Las estrategias de reposicin estn relacionadas con la determinacin de qu fragmento de programa o de datos desplazar para dar lugar a los programas nuevos. Asignacin Contigua de Almacenamiento Versus No Contigua En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. En la asignacin no contigua un programa se divide en varios bloques o segmentos que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la asignacin continua. Asignacin Contigua de Almacenamiento de Un Solo Usuario

Se consideran S. O. que ya poseen desarrollado el sistema de control de entrada / salida: IOCS: input / output control system (ver Figura 3.2 [7, Deitel]).

El tamao de los programas est limitado por la cantidad de memoria principal, pero se puede superar este lmite con tcnicas de recubrimientos, con las siguientes caractersticas (ver Figura 3.3 [7, Deitel]):

Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde el almacenamiento secundario ocupando las reas de memoria liberadas por la seccin que ya no se necesita. La administracin manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento.

Proteccin en los sistemas de un solo usuario

El usuario tiene un completo control sobre la totalidad del almacenamiento principal:


El almacenamiento se divide en porciones que contienen el S. O., el programa del usuario y una porcin sin usar. El programa del usuario podra destruir reas del S. O. que podran: o Detener el sistema. o Producir salidas errneas. El S. O. debe estar protegido contra el proceso usuario: o La proteccin se instrumenta mediante un registro de lmites incorporado a la cpu: Contiene la direccin de la instruccin ms alta utilizada por el S. O. Si se intenta ingresar al S. O. la instruccin es interceptada y el proceso finaliza.

Procesamiento por lotes de flujo nico Los sistemas de un solo usuario se dedican a un trabajo durante ms tiempo del que toma su ejecucin. Los trabajos requieren de:

tiempo de instalacin: el necesario para preparar el entorno operativo requerido. tiempo de descarga: el necesario para desmontar el entorno operativo que fue requerido.

Durante la instalacin y descarga de los trabajos la cpu no est ejecutando dichos trabajos requeridos, por lo cual:

Automatizar la transicin de trabajo a trabajo reduce la cantidad de tiempo perdido entre trabajos. Surgieron los sistemas de procesamiento por lotes.

En el procesamiento por lotes de flujo nico los trabajos se agrupan en lotes encolndose para su ejecucin. El procesador de flujos de trabajos:

Lee las instrucciones del lenguaje de control de trabajos. Facilita la preparacin del trabajo siguiente. Emite instrucciones al operador del sistema. Automatiza funciones anteriormente manuales. Cuando finaliza un trabajo efecta las operaciones de mantenimiento apropiadas para facilitar la transicin del siguiente trabajo.

Multiprogramacin de Particin Fija


Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que [7, Deitel] (ver Figura 3.4 [7, Deitel]):

Cuando ocurre una peticin de e / s la cpu normalmente no puede continuar el proceso hasta que concluya la operacin de e / s requerida. Los perifricos de e / s frenan la ejecucin de los procesos ya que comparativamente la cpu es varios rdenes de magnitud ms rpida que los dispositivos de e / s.

Los sistemas de multiprogramacin permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema:

Un trabajo en espera de e / s ceder la cpu a otro trabajo que est listo para efectuar cmputos. Existe paralelismo entre el procesamiento y la e / s. Se incrementa la utilizacin de la cpu y la capacidad global de ejecucin del sistema. Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas Las particiones del almacenamiento principal:

Son de tamao fijo. Alojan un proceso cada una. La cpu se cambia rpidamente entre los procesos creando la ilusin de simultaneidad.

Los trabajos se traducan con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una particin especfica (ver Figura 3.5 [7, Deitel]).

El S. O. resulta de implementacin relativamente sencilla pero no se optimiza la utilizacin de la memoria. Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables Los compiladores, ensambladores y cargadores de relocalizacin:

Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier particin disponible de tamao suficiente para aceptarlos (ver Figura 3.6 [7, Deitel]). Son ms complejos que los absolutos. Mejoran la utilizacin del almacenamiento. Confieren ms flexibilidad en el armado de la carga de procesos.

Proteccin en los Sistemas de Multiprogramacin

Si se utiliza asignacin contigua de memoria la proteccin suele implementarse con varios registros de lmites (ver Figura 3.7 y Figura 3.8 [7, Deitel]). Los extremos superior e inferior de una particin pueden ser:

Delineados con dos registros. Indicados el lmite inferior o superior y el tamao de la particin o regin.

Fragmentacin en la Multiprogramacin de Particin Fija La fragmentacin de almacenamiento ocurre en todos los sistemas independientemente de su organizacin de memoria. En los S. O. de multiprogramacin de particin fija la fragmentacin se produce cuando:

Los trabajos del usuario no llenan completamente sus particiones designadas.

Una particin permanece sin usar porque es demasiado pequea para alojar un trabajo que est en espera.

Multiprogramacin de Particin Variable


Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria [7, Deitel] (ver Figura 3.9 [7, Deitel]).

No hay lmites fijos de memoria, es decir que la particin de un trabajo es su propio tamao. Se consideran esquemas de asignacin contigua, dado que un programa debe ocupar posiciones adyacentes de almacenamiento. Los procesos que terminan dejan disponibles espacios de memoria principal llamados agujeros:

Pueden ser usados por otros trabajos que cuando finalizan dejan otros agujeros menores. En sucesivos pasos los agujeros son cada vez ms numerosos pero ms pequeos, por lo que se genera un desperdicio de memoria principal.

Combinacin de agujeros (reas libres) Consiste en fusionar agujeros adyacentes para formar uno sencillo ms grande. Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene lmites con otros agujeros.

Compresin o Compactacin de Almacenamiento Puede ocurrir que los agujeros (reas libres) separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria:

Podra ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria. Podra no ser suficiente ningn rea libre individual (ver Figura 3.10 [7, Deitel]).

La tcnica de compresin de memoria implica pasar todas las reas ocupadas del almacenamiento a uno de los extremos de la memoria principal:

Deja un solo agujero grande de memoria libre contigua. Esta tcnica se denomina recogida de residuos (ver Figura 3.11 [7, Deitel]).

Principales desventajas de la compresin Consume recursos del sistema (ver Figura 3.12 [7, Deitel]).

El sistema debe detener todo mientras efecta la compresin, lo que puede afectar los tiempos de respuesta. Implica la relocalizacin (reubicacin) de los procesos que se encuentran en la memoria:

La informacin de relocalizacin debe ser de accesibilidad inmediata.

Una alta carga de trabajo significa mayor frecuencia de compresin que incrementa el uso de recursos. Estrategias de Colocacin del Almacenamiento Se utilizan para determinar el lugar de la memoria donde sern colocados los programas y datos que van llegando y se las clasifica de la siguiente manera:

Estrategia de mejor ajuste: o Un trabajo nuevo es colocado en el agujero en el cual quepa de forma ms ajustada: Debe dejarse el menor espacio sin usar. Estrategia de primer ajuste: o Un trabajo nuevo es colocado en el primer agujero disponible con tamao suficiente para alojarlo. Estrategia de peor ajuste: o Consiste en colocar un programa en el agujero en el que quepa de la peor manera, es decir en el ms grande posible: El agujero restante es tambin grande para poder alojar a un nuevo programa relativamente grande.

Multiprogramacin con Intercambio de Almacenamiento


En el esquema de intercambio los programas del usuario no requieren permanecer en la memoria principal hasta su terminacin [7, Deitel]. Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:

Cede el almacenamiento y la cpu al siguiente trabajo. La totalidad del almacenamiento se dedica a un trabajo durante un breve perodo de tiempo. Los trabajos son intercambiados, dndose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminacin.

Es un esquema razonable y eficiente para un nmero relativamente reducido de procesos de usuarios. Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin. El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:

Manteniendo al mismo tiempo varias imgenes de usuario o imgenes de memoria en la memoria principal.

Retirando una imagen de usuario de la memoria principal solo cuando es necesario su almacenamiento para una nueva imagen. Incrementando la cantidad de memoria principal disponible en el sistema.

Las imgenes de usuario (imgenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).

Introduccin a la Organizacin del Almacenamiento Virtual


Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computacin [7, Deitel]. Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema Atlas. Los mtodos ms comunes de implementacin son mediante:

Tcnicas de paginacin. Tcnicas de segmentacin. Una combinacin de ambas tcnicas.

Las direcciones generadas por los programas en su ejecucin no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario. La evolucin en las organizaciones de almacenamiento puede resumirse como sigue:

Real:
o

Sistemas dedicados a un solo usuario.

Real: Sistemas de multiprogramacin en memoria real: Multiprogramacin en particin fija: Absoluta. Relocalizable (reubicable). Multiprogramacin en particin variable. Virtual: o Multiprogramacin en almacenamiento virtual: Paginacin pura. Segmentacin pura. Combinacin paginacin / segmentacin.
o

Conceptos Bsicos de Almacenamiento Virtual


La clave del concepto de memoria (almacenamiento) virtual esta en la disociacin:

De las direcciones a las que hace referencia un programa. De las direcciones disponibles en la memoria real (almacenamiento primario).

Los principales conceptos son los siguientes:


Direcciones virtuales: o Son las referidas por un proceso en ejecucin. Direcciones reales: o Son las disponibles dentro del almacenamiento primario. Espacio de direcciones virtuales (v) de un proceso: o Es el nmero de direcciones virtuales a que puede hacer referencia el proceso. Espacio de direcciones reales (r) de un computador: o Es el nmero de direcciones reales disponibles en el ordenador.

Los procesos hacen referencia a direcciones virtuales pero stas deben ejecutarse en el almacenamiento real:

Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso est en ejecucin. La traduccin de direcciones deber hacerse rpidamente para no degradar al sistema.

Existen varios medios para asociar las direcciones virtuales con las reales (ver Figura 3.13 [7, Deitel]).

Los mecanismos de traduccin dinmica de direcciones (dat) convierten las direcciones virtuales en reales al ejecutarse el proceso. Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por qu ser contiguas dentro del almacenamiento real, a esto se denomina contigidad artificial (ver Figura 3.14 [7, Deitel]).

Organizacin del Almacenamiento de Niveles Mltiples


Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento auxiliar para:

Permitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de direcciones reales. Soportar multiprogramacin de forma efectiva en un sistema con muchos usuarios que compartan el almacenamiento real.

Se utiliza un esquema de almacenamiento de dos niveles (ver Figura 3.15 [7, Deitel]):

Primer nivel: almacenamiento real : o En l se ejecutan los procesos y en l deben estar los datos para que un proceso pueda referirse a ellos.

Segundo nivel: almacenamiento auxiliar, secundario o adicional : o Generalmente consta de discos de gran capacidad que pueden mantener los programas y datos que no caben al mismo tiempo en el ms limitado almacenamiento real.

Cuando se va a ejecutar un proceso su cdigo y datos se pasan al almacenamiento principal.

El almacenamiento real es compartido por varios procesos:


Cada proceso puede tener un espacio de direcciones virtuales mucho mayor que el almacenamiento real. Solo se mantiene al mismo tiempo una pequea parte de los programas y datos de cada proceso en el almacenamiento real.

Transformacin de Bloques
Los mecanismos de traduccin dinmica de direcciones deben mantener mapas que ilustren qu direcciones del almacenamiento virtual se encuentran en el almacenamiento real y dnde se encuentran [7, Deitel]. La informacin se agrupa en bloques:

El sistema est informado del lugar del almacenamiento real donde han sido colocados los bloques de almacenamiento virtual. Cuanto mayor sea el bloque menor ser la fraccin del almacenamiento real que debe dedicarse a contener la informacin del mapa. Con bloques grandes: o Se reduce la sobrecarga de almacenamiento del mecanismo de transformacin. o Se incrementa el tiempo de transferencia entre los almacenamientos secundario y primario. o Consumen ms almacenamiento real pudiendo limitar el nmero de procesos que pueden compartirlo. Los bloques pueden ser de tamao: o Igual : se denominan pginas y la organizacin de almacenamiento virtual asociada se denomina paginacin. o Diferente: se denominan segmentos y la organizacin de almacenamiento virtual asociada se denomina segmentacin. Se pueden combinar ambas tcnicas: segmentos de tamao variable compuestos de pginas de tamao fijo.

Las direcciones son bidimensionales, es decir que una direccin virtual v se indica por un par ordenado (b,d), donde:

b: nmero del bloque donde reside. d: desplazamiento a partir del inicio del bloque.

La traduccin de una direccin virtual v = (b,d) a la direccin real r considera lo siguiente (ver Figura 3.16 y Figura 3.17 [7, Deitel]):

Cada proceso tiene su tabla de mapa de bloques mantenida por el sistema en el almacenamiento real. Un registro especial del procesador llamado registro origen de la tabla de bloques se carga con la direccin real a de la tabla de mapa de bloques: o Contiene una entrada para cada bloque del proceso. o Las entradas se mantienen en orden secuencial para el bloque 0, bloque 1, etc.

Se aade el bloque nmero b a la direccin base a de la tabla de bloques para formar la direccin real de la entrada de la tabla de mapa de bloques para el bloque b: Contiene la direccin real b para el bloque b. El desplazamiento d se aade a la direccin de inicio del bloque, b , para formar la direccin real deseada: r = b + d.

La transformacin de bloques se efecta en forma dinmica mientras se ejecuta un proceso, por lo cual, si la implementacin no es eficiente, su sobrecarga puede causar una degradacin del rendimiento que podra eliminar en parte las ventajas de la utilizacin del almacenamiento virtual.

Conceptos Bsicos de Paginacin


Frecuentemente se diferencia entre la paginacin pura y la combinacin de paginacin y segmentacin[7, Deitel]. Las pginas se transfieren del almacenamiento secundario al primario en bloques llamados marcos de pginas:

Tienen el mismo tamao que las pginas. Comienzan en direcciones del almacenamiento real que son mltiplos enteros del tamao fijo de la pgina. Podr colocarse una nueva pgina dentro de cualquier marco de pgina o celda de pgina disponible.

La traduccin dinmica de direcciones incluye:


Un proceso en ejecucin hace referencia a una direccin virtual v = (p,d) (ver Figura 3.18 [7, Deitel]). Un mecanismo de transformacin de pginas busca la pgina p en la tabla de pginas y determina si la pgina p se encuentra en el marco de pgina p . La direccin de almacenamiento real se forma por la concatenacin de p y d.

La tabla de mapa de pginas debe indicar si se encuentra o no en el almacenamiento primario la pgina referenciada:

En caso afirmativo dnde est en la memoria real. En caso negativo dnde puede estar en el almacenamiento secundario.

La direccin de almacenamiento primario a, donde comienza el marco de pagina p (suponiendo un tamao de pgina p), est dada por: a = (p) (p ); se supone marcos de pgina numerados 0, 1, 2, etc. (ver Figura 3.19, Figura 3.20 y Figura 3.21 [7, Deitel]).

Traduccin de Direcciones de Paginacin por Transformacin Directa Un proceso en ejecucin hace referencia a la direccin virtual v = (p,d). Antes que un proceso comience su ejecucin, el S. O. carga la direccin de almacenamiento primario de la tabla de mapa de pginas en el registro origen de la tabla de mapa de pginas (Ver Figura 3.22 [7, Deitel]).

La direccin base de la tabla de mapa de pginas es b. El nmero de pgina es p. La direccin en el almacenamiento primario de la entrada en la tabla de mapa de pginas para la pgina p es b + p:

Indica que el marco de pgina p corresponde a la pgina virtual. p se concatena con el desplazamiento d par formar la direccin real r.

Esto es un ejemplo de transformacin directa debido a que la tabla de mapa de pginas contiene una entrada por cada una de las pginas del almacenamiento virtual de este proceso. La direccin virtual que se est traduciendo y la direccin base de la tabla de mapa de pginas son mantenidas en un registro de alta velocidad del control del procesador. La tabla de mapa de pginas transformada directamente suele mantenerse en el almacenamiento primario:

Las referencias a esta tabla requieren un ciclo completo de almacenamiento primario, que generalmente es la parte ms larga de un ciclo de ejecucin de instrucciones.

Se requiere otro ciclo de ejecucin de almacenamiento primario para la transformacin de pginas, lo que puede ocasionar degradacin equivalente a un 50%, para lo cual una solucin sera tener la tabla completa de mapa de pginas de transformacin directa en la cach de muy alta velocidad.

Traduccin de Direcciones de Paginacin por Transformacin Asociativa Una forma de acelerar la traduccin dinmica de pginas consiste en colocar la tabla completa de mapa de pginas en un almacenamiento asociativo que tenga un tiempo de ciclo mucho ms rpido que el almacenamiento primario. Una variante es la transformacin asociativa pura (ver Figura 3.23 [7, Deitel]).

Un programa en ejecucin hace referencia a la direccin virtual v = (p,d). Cada entrada en el almacenamiento asociativo se busca de forma simultnea para la pgina p:

Se obtiene p como el marco de pgina correspondiente a la pgina p. Se concatena p con d formando la direccin real r.

Cada una de las clulas del almacenamiento asociativo se registra de manera simultnea:

Hace costoso el almacenamiento asociativo. Implementar la transformacin asociativa pura resulta demasiado costoso, tal lo ocurrido con la implementacin de la transformacin directa pura utilizando cach.

Traduccin de Direcciones de Paginacin por Combinacin de Transformacin Asociativa / Directa

Se utiliza un almacenamiento asociativo capaz de mantener solo un pequeo porcentaje del mapa completo de pginas para un proceso (ver Figura 3.24 [7, Deitel]).

Las entradas de pgina contenidas en este mapa reducido corresponden solo a las pginas referenciadas recientemente:

Se presupone que una pgina recientemente referenciada tendr posibilidades de serlo de nuevo prximamente. Los rendimientos obtenidos con este esquema de mapa asociativo parcial superan aproximadamente en un 100 % a los rendimientos obtenidos con esquemas de mapa asociativo de pgina completo.

Un programa hace referencia a la direccin virtual v = (p,d). El mecanismo de traduccin de direcciones intenta encontrar la pgina p en el mapa de pgina asociativo parcial:

Si p se encuentra all:

El mapa asociativo devuelve p como el nmero de marco de pgina correspondiente a la pgina virtual p. o p se concatena con el desplazamiento d para formar la direccin real r que corresponde a la direccin virtual v = (p,d). Si p no se encuentra en el mapa de pagina parcial: o Se utiliza un mapa directo convencional. o La direccin b del registro de origen de la tabla de pginas se aade a p para localizar la entrada apropiada a la pgina p en la tabla de mapa de pginas de transformacin directa del almacenamiento primario. o La tabla indica que p es el marco de pgina correspondiente a la pgina virtual p. o p se concatena con el desplazamiento d para formar la direccin real r correspondiente a la direccin virtual v = (p,d).
o

Compartimiento de Recursos en un Sistema de Paginacin En sistemas multiprogramados, especialmente en los de tiempo compartido, es comn que ms de un usuario estn ejecutando los mismos programas:

Para optimizar el uso de la memoria real se comparten las pginas que pueden ser compartidas: o El compartimiento debe ser cuidadosamente controlado para evitar que un proceso modifique datos que otro proceso esta leyendo (ver Figura 3.25 [7, Deitel]). o Los programas se encuentran divididos en reas separadas de procedimiento y datos. o Los procedimientos no modificables se llaman procedimientos puros reentrantes. o Los datos y procedimientos modificables no pueden ser compartidos. o Los datos no modificables (ej.: tablas fijas) son compartibles. Se debe identificar cada pgina como compartible o no. Habr marcos (celdas) de pginas compartidos por varios procesos.

El compartimiento:

Reduce la cantidad de almacenamiento primario necesario para la ejecucin eficaz de un grupo de procesos. Puede hacer posible que un sistema determinado mantenga una cantidad mayor de usuarios (procesos).

Segmentacin
En los sistemas de segmentacin un programa y sus datos pueden ocupar varios bloques separados de almacenamiento real (ver Figura 3.26 [7, Deitel]).

Los bloques:

No necesitan ser de igual tamao. Los bloques separados no necesitan ser adyacentes. Deben estar compuestos de posiciones contiguas de almacenamiento.

Se complica la proteccin de bloques de memoria de un proceso de usuario. Es ms difcil limitar el rango de acceso de cualquier programa [7, Deitel]. Un esquema posible de proteccin es el uso de claves de proteccin del almacenamiento (ver Figura 3.27 [7, Deitel]):

Las claves estn bajo el control estricto del S. O. Un programa de usuario, a quien corresponde una cierta clave en la cpu, solo puede hacer referencia a los otros bloques del almacenamiento con igual clave de proteccin.

Una direccin virtual es un par ordenado v=(s,d) (ver Figura 3.28 [7, Deitel]):

s es el nmero del segmento del almacenamiento virtual en el cual residen los elementos referidos. d es el desplazamiento en el segmento s en el cual se encuentra el elemento referido.

Un proceso solo puede ejecutarse si su segmento actual (como mnimo) est en el almacenamiento primario. Los segmentos se transfieren del almacenamiento secundario al primario como unidades completas. Un nuevo segmento puede ser colocado en una serie disponible de posiciones contiguas del almacenamiento primario de tamao suficiente para alojar al segmento. La traduccin dinmica de direcciones utiliza una tabla de mapa de segmentos. Control de Acceso en Sistemas de Segmentacin Se le otorga a cada proceso ciertos derechos de acceso a todos los segmentos y se le niega completamente el acceso a muchos otros. Si un proceso tiene acceso de lectura a un segmento, puede obtener cualquier elemento de informacin contenido en ese segmento. Si un proceso tiene acceso de escritura a un segmento, puede modificar cualquier contenido del segmento y puede introducirle informacin adicional, incluso destruir toda la informacin del segmento. Un proceso con acceso de ejecucin de un segmento puede ejecutarlo como si fuera un programa.

Un proceso con acceso de adicin puede escribir informacin adicional al final del segmento, pero no puede modificar la informacin existente. En base a los tipos de control de acceso indicados pueden crearse distintos modos de control de acceso. Ejemplos de combinacin de los accesos de lectura, escritura y ejecucin para producir modos de proteccin tiles se dan en la Tabla 3.1 y en la Tabla 3.2 [7, Deitel].

Modo 0 1 2 3 4 5

Lectura Escritura Ejecucin Explicacin N N S S S N N N N S N S N S N No hay permiso de acceso Solo ejecucin Solo lectura Lectura / ejecucin Lectura / escritura pero no ejecucin

S S S Acceso no limitado Tabla 3.1: Ejemplo de combinacin de accesos.

Modo Aplicacin 0 1 2 3 4 Seguridad Un programa disponible a los usuarios, que no pueden copiarlo ni modificarlo, pero s ejecutarlo Recuperacin de informacin Un programa puede ser copiado o ejecutado, pero no puede ser modificado Protege los datos contra un intento errneo de ejecutarlos

5 Este acceso se concede a los usuarios de confianza Tabla 3.2: Ejemplo de aplicaciones de la combinacin de accesos. Traduccin de Direcciones de Segmentacin por Transformacin Directa Existen varias estrategias para la implementacin de la traduccin de direcciones de segmentacin:

Por transformacin directa, asociativa o combinacin de asociativa / directa.

Con cach suficiente para alojar la tabla completa de mapa de segmentos o cach parciales que contengan solo las entradas de los segmentos de referencia ms reciente (ver Figura 3.29 [7, Deitel]).

Se considerar la traduccin de direcciones de segmentacin con la tabla completa de mapa de segmentos en la cach. Un proceso en ejecucin hace referencia a la direccin virtual v = (s,d):

El segmento nmero s se aade a la direccin base b en el registro origen de la tabla de mapa de segmentos formando la direccin de memoria real b + s, de la entrada para el segmento s de la tabla de mapa de segmentos, que contiene la direccin del almacenamiento primario s , donde comienza el segmento. El desplazamiento d se aade a s formando la direccin real r = d + s , correspondiente a la direccin virtual v = (s,d).

Un bit de residencia, r, indica si en la actualidad el segmento se encuentra o no en el almacenamiento primario. Si el segmento se encuentra en el almacenamiento primario s es la direccin en este almacenamiento donde comienza el segmento. Si el segmento no se encuentra en el almacenamiento primario a es la direccin en el almacenamiento secundario de donde debe recuperarse antes que el proceso pueda continuar. Se compara cada referencia a un segmento con los bits de proteccin para determinar si se permite la operacin que se est intentando.

Si el segmento buscado no est en el almacenamiento primario se genera un fallo de prdida de segmento:


El S. O. obtiene el control y carga el segmento referido desde la direccin a del almacenamiento secundario. Se comprueba si el desplazamiento d es menor o igual a la longitud del segmento l : o Si no es as se genera un fallo de desbordamiento de segmento y el S. O. obtiene el control y termina la ejecucin del proceso. o Si el desplazamiento est en el rango del segmento se comprueban los bits de proteccin para asegurarse si se permite la operacin que se est intentando: Si es as entonces la direccin base del segmento, s , en el almacenamiento primario se aade al desplazamiento d formando la direccin de memoria real r = s + d, que corresponde a la direccin del almacenamiento virtual v = (s,d). Si la operacin intentada no se permite se genera un fallo de proteccin de segmento y el S. O. obtiene el control y termina la ejecucin del proceso.

Compartimiento en un Sistema de Segmentacin Una de las ventajas de la segmentacin sobre la paginacin es que se trata ms de un hecho lgico que fsico:

En un sistema de segmentacin, una vez que un segmento ha sido declarado como compartido, entonces las estructuras que lo integran pueden cambiar de tamao. Lo anterior no cambia el hecho lgico de que residen en un segmento compartido.

Dos procesos pueden compartir un segmento con solo tener entradas en sus tablas generales que apunten al mismo segmento del almacenamiento primario (ver Figura 3.30 [7, Deitel]).

Sistemas de Paginacin / Segmentacin

Ofrecen las ventajas de las dos tcnicas de organizacin del almacenamiento virtual [7, Deitel]. El tamao de los segmentos es mltiplo del de las pginas. No es necesario que todas las pginas de un segmento se encuentren al mismo tiempo en el almacenamiento primario. Las pginas de almacenamiento virtual, que son contiguas en este almacenamiento, no necesitan ser contiguas en el almacenamiento real. El direccionamiento es tridimensional con una direccin de almacenamiento virtual v = (s,p,d):

s es el nmero del segmento. p es el nmero de pgina. d es el desplazamiento en la pgina donde se encuentra asignado el elemento deseado.

Traduccin Dinmica de Direcciones en Sistemas de Paginacin / Segmentacin Se considera la traduccin dinmica de direcciones de virtuales a reales en un sistema de paginacin / segmentacin utilizando la combinacin de transformacin asociativa / directa (ver Figura 3.31 [7, Deitel]).

El proceso en ejecucin hace referencia a la direccin virtual v = (s,p,d) (ver Figura 3.32 [7, Deitel]).

Las pginas de referencia ms reciente tienen entradas en un almacenamiento asociativo. Se realiza una bsqueda asociativa para intentar localizar (s,p) en el almacenamiento asociativo:

Si se encuentra (s,p), entonces el marco de pgina p en el cual reside dicha pgina en la memoria real, se concatena al desplazamiento d para formar la direccin de memoria real r correspondiente a la direccin virtual v= (s,p,d). Si no se encuentra (s,p), entonces: o La direccin base b de la tabla de segmentos se aade al nmero de segmento s formando la direccin b + s de la entrada de la tabla de mapa de segmentos para el segmento s de la memoria real.

o o

La entrada de la tabla de mapa de segmentos indica la direccin base s de la tabla de pginas para el segmento s. El nmero de pgina p se aade a s formando la direccin p + s de la entrada en la tabla de pginas para la pgina p del segmento s: Indica que p es el nmero del marco correspondiente a la pgina virtual p. p se concatena con el desplazamiento d formando la direccin real r que corresponde a la direccin virtual v = (s,p,d).

Si el segmento s no se encuentra en el almacenamiento primario se produce un fallo de prdida de segmento, cuyo caso el S. O. localiza el segmento en el almacenamiento secundario, crea una tabla de pginas para el segmento y carga la pgina apropiada en el almacenamiento primario, pudiendo producir reemplazos de pginas. Si el segmento s est en el almacenamiento primario y si la referencia a la tabla de mapa de pginas indica que la pgina deseada no se encuentra en el almacenamiento primario, se produce un fallo de prdida de pgina, en tal caso el S. O. obtiene el control, localiza la pgina en el almacenamiento secundario y la carga, pudiendo reemplazar otra pgina. Si una direccin de almacenamiento virtual est ms all del final del segmento se genera un fallo de desbordamiento de segmento, el que debe ser atendido por el S. O. Si los bits de proteccin indican que la operacin que se va a ejecutar en la direccin virtual referida no se permite, se genera un fallo de proteccin de segmento, el que tambin debe ser atendido por el S. O. Si se utiliza un mecanismo de transformacin directa pura, manteniendo el mapa completo dentro del almacenamiento primario, la referencia promedio de almacenamiento virtual requerira:

Un ciclo de almacenamiento para acceder a la tabla de mapa de segmentos. Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa de pginas. Un tercer ciclo de almacenamiento para referenciar al elemento deseado del almacenamiento real.

Cada referencia a un elemento comprende tres ciclos de almacenamiento:


El sistema correra casi a 1 / 3 de su velocidad nominal. La traduccin de direcciones insumira 2 / 3 del tiempo.

Con la utilizacin de registros asociativos (por ej. 16 registros), se logran velocidades de ejecucin del 90 % o ms de la velocidad total de procesamiento de sus procesadores de control.

La estructura de tablas de procesos, de mapas de segmentos y de mapas de pginas puede consumir un porcentaje importante del almacenamiento primario cuando se ejecutan un gran nmero de procesos. La traduccin procede mucho ms rpido si todas las tablas estn en el almacenamiento primario, lo que resta espacio para los procesos. Compartimiento en un Sistema de Paginacin / Segmentacin Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes procesos que apunten a la misma tabla de mapa de pginas (ver Figura 3.33 [7, Deitel]).

El compartimiento requiere una administracin cuidadosa por parte del S. O., ya sea en sistemas de paginacin, segmentacin o paginacin / segmentacin, pues se debe considerar qu sucedera si una nueva pgina reemplazara a otra pgina compartida por muchos procesos.

Estrategias de Administracin del Almacenamiento Virtual


Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son [7, Deitel]:

Paginacin. Segmentacin. Segmentacin y paginacin.

Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan segn esas estrategias. Se consideran las siguientes estrategias:

Estrategias de bsqueda: o Tratan de los casos en que una pgina o segmento deben ser trados del almacenamiento secundario al primario. o Las estrategias de bsqueda por demanda esperan a que se haga referencia a una pgina o segmento por un proceso antes de traerlos al almacenamiento primario. o Los esquemas de bsqueda anticipada intentan determinar por adelantado a qu pginas o segmentos har referencia un proceso para traerlos al almacenamiento primario antes de ser explcitamente referenciados. Estrategias de colocacin: o Tratan del lugar del almacenamiento primario donde se colocar una nueva pgina o segmento. o Los sistemas toman las decisiones de colocacin de una forma trivial ya que una nueva pgina puede ser colocada dentro de cualquier marco de pgina disponible. Estrategias de reposicin: o Tratan de la decisin de cul pgina o segmento desplazar para hacer sitio a una nueva pgina o segmento cuando el almacenamiento primario est completamente comprometido.

Estrategias de Reposicin de Pgina Las principales son:


El principio de optimizacin. Reposicin de pginas al azar. Primero en entrar - primero en salir. Menos recientemente usada. Menos frecuentemente usada. No usada recientemente. Conjuntos de trabajo.

El Principio de Optimizacin El principio de optimizacin indica que para obtener un rendimiento ptimo, la pgina que se va a reponer es una que no se va a utilizar en el futuro durante el perodo de tiempo ms largo.

El problema es que no es factible predecir el futuro. Reposicin de Pgina al Azar Consiste en escoger al azar la pgina que va a ser reemplazada. Todas las pginas del almacenamiento principal deben tener la misma probabilidad de ser reemplazadas. Debe poder seleccionar cualquier pgina, incluyendo la que va a ser referenciada a continuacin (peor seleccin). Este esquema es raramente usado. Reposicin de Pgina por el Sistema de Primero en Entrar -Primero en Salir (FIFO) Se registra el momento en que cada pgina ingresa al almacenamiento primario. Para reemplazar una pgina, se selecciona aquella que ha estado ms tiempo almacenada. Se presenta el inconveniente de que se pueden reemplazar pginas muy usadas, que sern llamadas de nuevo al almacenamiento primario casi de inmediato. Se puede presentar la llamada anomala FIFO:

Belady, Nelson y Shedler descubrieron que con la reposicin FIFO, ciertos patrones de referencias de pginas causan ms fallos de pginas cuando se aumenta el nmero de marcos (celdas) de pginas asignados a un proceso: en esto consiste la anomala FIFO. Esta anomala contradice a la intuicin (ver Figura 3.34 [7, Deitel]).

Reposicin de Pgina Menos - Recientemente - Usada (LRU) Esta estrategia selecciona para ser reemplazada la pgina que no ha sido usada durante el mayor perodo de tiempo. Se basa en la heurstica de que el pasado reciente es un buen indicador del futuro prximo. Requiere que cada pgina reciba un sello de tiempo cada vez que se referencia:

Puede significar una sobrecarga adicional importante. No se implementa frecuentemente.

La pgina seleccionada para reemplazo podra ser la prxima en ser requerida, por lo que habra que paginarla de nuevo al almacenamiento principal casi de inmediato. Reposicin de Pgina Menos - Frecuentemente - Usada (LFU) Ac interesa la intensidad de uso que haya tenido cada pgina. La pgina que ser reemplazada es aquella que ha sido usada con menos frecuencia o que ha sido referida con menos intensidad. El inconveniente es que se puede seleccionar fcilmente para su reposicin la pgina equivocada:

Ej.: La pgina de uso menos frecuente puede ser la pgina de entrada ms reciente al almacenamiento principal, y por lo tanto existe una alta probabilidad de que sea usada de inmediato.

Reposicin de Pgina No Usada - Recientemente (NUR) Presupone que las pginas que no han tenido uso reciente tienen poca probabilidad de ser usadas en el futuro prximo y pueden ser reemplazadas por otras nuevas. Es deseable reemplazar una pgina que no ha sido cambiada mientras estaba en el almacenamiento primario. La estrategia NUR se implementa con la adicin de dos bits de hardware por pgina:

Bit referenciado: o = 0 si la pgina no ha sido referenciada. o = 1 si la pgina ha sido referenciada. Bit modificado (tambin llamado bit sucio): o = 0 si la pgina no ha sido modificada. o = 1 si la pgina ha sido modificada.

La seleccin de la pgina que ser reemplazada comienza buscando una pgina que no ha sido referenciada, pero si no la encuentra habr que reemplazar una pgina que ha sido referenciada. Si una pgina ha sido referenciada se comprueba si ha sido modificada o no:

Si no ha sido modificada se la reemplaza: o Su reposicin representa menos sobrecarga que la de una pgina modificada, ya que debera grabarse de nuevo en el almacenamientos secundario. Si no se encuentra una pgina que no ha sido modificada ser reemplazada una pgina modificada.

Con el transcurso del tiempo la mayora de los bits referenciados sern activados:

Se pierde la capacidad para distinguir las pginas ms deseables para ser reemplazadas. Para evitarlo se ajustan peridicamente todos los bits referenciados a 0: o Se logra un nuevo inicio. o Se vuelve vulnerable al reemplazo an a las pginas activas, pero solo brevemente, mientras se reajustan los bits.

Los bits modificados no se ajustan peridicamente segn esta estrategia.

Localidad
El concepto de localidad expresa [7, Deitel]:

Los procesos tienden a hacer referencia al almacenamiento en patrones no uniformes y muy localizados.

La localidad se manifiesta en el tiempo y en el espacio:


Es una propiedad emprica (observada). Nunca est garantizada pero es altamente probable. Ej.: Los procesos tienden a favorecer ciertos subconjuntos de pginas, las que tienden a ser adyacentes entre s en el espacio de direcciones virtuales del proceso. Est relacionada con la forma en que se escriben los programas y se organizan los datos.

Localidad temporal : significa que las localidades de almacenamiento referenciadas recientemente tienen una alta probabilidad de ser referenciadas en un futuro prximo:

Se apoya en la utilizacin de: o Formacin de ciclos (loops). o Subrutinas. o Pilas. o Variables usadas para contar y totalizar.

Localidad en el espacio: significa que las referencias de almacenamiento tienden a acumularse de manera tal que, una vez que se hace referencia a una localidad, es muy probable que las localidades cercanas sean tambin referenciadas:

Se apoya en la utilizacin de: o Recorrido de arreglos. o Ejecucin secuencial de cdigo. o Tendencia de los programadores a colocar definiciones de variables relacionadas, prximas entre s.

Un programa puede ejecutar eficientemente mientras su subconjunto de pginas preferido se encuentre en el almacenamiento primario. El nmero de fallos de pginas de un proceso depende de la cantidad de almacenamiento primario disponible para sus pginas. Generalmente los procesos no muestran patrones de referencias aleatorios uniformemente distribuidos por sus diferentes pginas. Al reducir el nmero de marcos (celdas) de pginas disponibles para un proceso existe un intervalo durante el cual la razn de fallos de pginas no se afecta excesivamente. En determinado punto, cuando se reduce ms el nmero de marcos de pginas, el nmero de fallos de pginas aumenta drsticamente. Mientras el subconjunto de pginas favorecidas por un proceso permanezca en el almacenamiento primario, el nmero de fallos de pginas no aumenta mucho.

Tan pronto como las pginas del subconjunto favorecido son retiradas del almacenamiento primario, la actividad de paginacin del proceso aumenta en gran medida al referenciar y traer de nuevo estas pginas al almacenamiento primario. Los subconjuntos favorecidos tambin son llamados conjuntos de trabajo o working sets (ver Figura 3.35 [7, Deitel]).

Conjuntos de Trabajo
Denning desarroll un punto de vista de la actividad de paginacin de un programa llamado la teora de conjunto de trabajo del comportamiento de un programa [7, Deitel]. Un conjunto de trabajo es una coleccin de pginas a las cuales un proceso hace activamente referencia. Denning sostena que para que un programa se ejecutara eficientemente, su conjunto de trabajo debe ser mantenido en el almacenamiento primario, para evitar la hiperpaginacin. Una poltica de administracin de almacenamiento por conjunto de trabajo trata de mantener el conjunto de trabajo de los programas activos en el almacenamiento primario. La decisin de aadir un nuevo proceso al conjunto activo de procesos (aumentar el nivel de multiprogramacin):

Se basa en si hay suficiente espacio disponible en el almacenamiento primario como para acomodar el conjunto de trabajo del nuevo proceso. Se toma generalmente de forma heurstica ya que es imposible para el sistema conocer por anticipado el tamao del conjunto de trabajo de un proceso dado.

El conjunto de trabajo de pginas de un proceso w(t,w) en el momento t es el conjunto de pginas referidas por un proceso durante el intervalo de tiempo del proceso t - w a t (ver Figura 3.36 [7, Deitel]).

El tiempo del proceso es el tiempo durante el cual este proceso tiene la cpu. La variable w se denomina tamao de la ventana del conjunto de trabajo:

La determinacin del tamao de w es muy importante. Al aumentar el tamao de la ventana w aumenta el tamao del conjunto de trabajo (ver Figura 3.37 [7, Deitel]).

El verdadero conjunto de trabajo de un proceso es el conjunto de pginas que deben estar en el almacenamiento primario para la ejecucin eficaz de este proceso. Los conjuntos de trabajo cambian mientras un proceso est en ejecucin:

Complica la administracin precisa del almacenamiento primario en base a esta estrategia. Los conjuntos de trabajo son transitorios y el siguiente conjunto de trabajo del proceso puede diferir substancialmente de su conjunto de trabajo anterior.

Se debe evitar un exceso de compromiso del almacenamiento primario y la consecuente hiperpaginacin.

Paginacin por Demanda y Paginacin Anticipada


Paginacin por Demanda Las paginas son cargadas por demanda [7, Deitel]. No se llevan pginas del almacenamiento secundario al primario hasta que son referenciadas explcitamente por un proceso en ejecucin. Las razones del atractivo de esta estrategia son:

Los resultados de computabilidad, en especial el problema de parada, indican que el camino que tomar la ejecucin de un programa no se puede predecir con exactitud. Garantiza que solo las pginas que necesita el proceso sean tradas al almacenamiento principal. La sobrecarga de proceso para decidir qu pgina traer al almacenamiento principal es mnima.

El principal inconveniente est en los procesos que requieren acumular sus pginas una por una:

Los tiempos de espera de pginas son considerables. Es creciente la cantidad de almacenamiento primario afectada al proceso que espera pginas, por lo que el producto espacio - tiempo se incrementa.

El producto espacio - tiempo indica la cantidad de almacenamiento que usa un proceso y la cantidad de tiempo que lo usa. La reduccin del producto espacio - tiempo de las esperas de pginas de un proceso es una meta importante de las estrategias de administracin del almacenamiento (ver Figura 3.38 [7, Deitel]).

Paginacin Anticipada El S. O. intenta predecir las pginas que un proceso va a necesitar y a continuacin precarga estas pginas cuando hay espacio disponible [7, Deitel]. Mientras el proceso ejecuta sus pginas actuales, el sistema carga pginas nuevas que estarn disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucin de un proceso se puede reducir.

Liberacin de Pgina y Tamao de Pgina


Liberacin de Pgina Un proceso usuario puede emitir una liberacin voluntaria de pgina para liberar el marco de pgina cuando ya no necesitara esa pgina [7, Deitel]. Se puede eliminar el desperdicio y acelerar la ejecucin. El inconveniente es que la incorporacin de mandatos de liberacin de pginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones. Los compiladores y S. O. deberan detectar automticamente situaciones de liberacin de pgina mucho antes de lo que es posible con estrategias de conjuntos de trabajo. Tamao de Pgina Generalmente el almacenamiento real se divide en marcos o celdas de pgina de tamao fijo [7, Deitel]. Los interrogantes tienen que ver con el tamao de las pginas, si todas las pginas tendrn igual tamao, si en caso de utilizar pginas de diferente tamao las pginas mayores deben ser o no mltiplos enteros de las menores, etc.

Algunas consideraciones para determinar el tamao de pgina son las siguientes:

Cuanto ms pequeo sea el tamao de una pgina, ms pginas y marcos de pginas habr y mayores sern las tablas de pginas: o El desperdicio de almacenamiento debido al tamao excesivo de las tablas de pgina se llama fragmentacin de tablas. o Esto indica la necesidad de pginas ms grandes. Con pginas grandes, grandes cantidades de informacin que nunca llegara a ser referenciada, se paginarn hacia el almacenamiento primario: o Esto indica la necesidad de pginas ms pequeas. Debido a que las transferencias de e / s del disco (paginacin) consumen bastante tiempo, se debe minimizar la paginacin que un proceso requiera: o Esto indica la necesidad de pginas grandes. Los programas tienden a mostrar la propiedad de localidad de referencia y esta localidad tiende a ser pequea: o Esto indica la necesidad de pginas pequeas. Los procedimientos y datos rara vez comprenden un nmero entero de pginas, por lo que los sistemas de paginacin experimentan una fragmentacin interna: o El desperdicio promedio es de 1 / 2 pgina no usada por segmento (grupo) de pginas, que estar en la ltima pgina del segmento. o Esto indica la necesidad de pginas pequeas.

Los tamaos de pagina mas utilizados son: 512 b, 1 kb, 2 kb, 4 kb.

Comportamiento de un Programa en la Paginacin


Respecto del porcentaje de las pginas de un proceso tpico referenciadas desde el momento de iniciarse su ejecucin [7, Deitel]:

Un proceso tiende a hacer referencia a una parte significativa de sus pginas inmediatamente despus de iniciar su ejecucin. El proceso puede concluir sin haber referenciado a algunas de sus pginas, correspondientes a rutinas que atienden errores que no se produjeron.

Respecto de variar el tamao de la pgina manteniendo constante la cantidad de almacenamiento primario:

El nmero de fallos de pginas experimentados por un proceso en ejecucin tiende a aumentar con el tamao de la pgina, debido a que se traen al almacenamiento primario un mayor nmero de procedimientos y datos que no sern referenciados, restando lugar para los que s lo sern.

Respecto de cmo el promedio de tiempo interfallos (tiempo entre fallos de pgina) vara al aumentar el nmero de marcos de pgina asignados al proceso:

Cuanto ms marcos de pgina tenga un proceso, mayor ser el tiempo entre los fallos de pginas. El punto de inflexin se da cuando el proceso tiene todo su conjunto de trabajo en el almacenamiento primario.

Asignar marcos de pgina adicionales ms all del punto de inflexin no produce efectos significativos sobre el tiempo interfallos.

Respecto del porcentaje de instrucciones de una pgina que son ejecutadas antes de transferirse el control a otra pgina, los valores experimentales obtenidos indican un mximo de 200 instrucciones por pgina de 1 kb (ver Figura 3.39 [7, Deitel]).

INTRODUCCIN La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Estos sistemas de administracin de memoria se pueden clasificar en dos tipos: _los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecucin, y, _ los que no.

ESTRUCTURAS DE HARDWARE Y DE CONTROL


Los mtodos de administracin de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginacin y Segmentacin, es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina fragmentacin. La fragmentacin, que son huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio, provoca un desperdicio de memoria principal. Una posible solucin para la fragmentacin externa es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de

memoria fsica que est disponible, aunque est dividida. Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos previos, la paginacin, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina o frames. Las pginas y los marcos tienen siempre el mismo tamao. Comparando la paginacin y segmentacin simple por un lado, con la particin esttica y dinmica por el otro, se establecen las bases para un avance fundamental en la gestin de memoria, y es que: Se puede cargar y descargar un proceso de la memoria principal de tal forma que ocupe regiones diferentes de la memoria principal en momentos distintos a lo largo de su ejecucin. Un proceso puede dividirse en varias partes (pginas o segmentos) y no es necesario que estas partes se encuentren contiguas en la memoria principal. Si estas dos caractersticas estn presentes, no ser necesario que todas las pginas o todos los segmentos de un proceso estn en la memoria durante la ejecucin. El trmino fragmento hace referencia tanto a pginas como a segmentos, dependiendo de si se emplea paginacin o segmentacin. Supngase que se trae un proceso a la memoria en un momento dado, el S.O comienza trayendo slo unos pocos fragmentos, incluido el fragmento que contiene el comienzo del programa. Se llamar conjunto residente del proceso a la parte que est realmente en la memoria principal. Si el procesador encuentra una direccin lgica que no est en la memoria principal, genera una interrupcin que indica un fallo de acceso a la memoria. El S.O pone al proceso interrumpido en estado Bloqueado y toma el control. Para que la ejecucin de este proceso siga ms tarde, el S.O necesita traer a la memoria principal el fragmento del proceso que contiene la direccin. Para ello se emite una solicitud de Lectura de E/S al disco; luego se expide otro proceso para que se ejecute mientras se realiza la operacin. Una vez que el fragmento deseado se ha trado a la memoria principal y se ha emitido la interrupcin de E/S, se devuelve el control al S.O, que coloca el proceso afectado en el estado de Listo.

La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. Debido a que slo la parte de memoria virtual que est almacenada en la memoria principal, es accesible a la CPU, segn un programa va ejecutndose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginacin). La memoria virtual ha llegado a ser un componente esencial de la mayora de los S.O actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cmo gestionar este esquema. La memoria virtual tambin simplifica la carga del programa para su ejecucin llamado reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria fsica. En un estado estable, prcticamente toda la memoria principal estar ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrn acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deber expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendr que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginacin: donde el procesador consume ms tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el S.O intenta adivinar, en funcin de la historia reciente, qu fragmentos se usarn con menor probabilidad en un futuro prximo. Los argumentos anteriores se basan en el principio de cercana o principio de localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse. Por lo tanto, es vlida la suposicin de que, durante cortos perodos de tiempo, se necesitarn slo unos pocos fragmentos de un proceso.

MEMORIA VIRTUAL

Una manera de confirmar el principio de cercana es considerar el rendimiento de un proceso en un entorno de memoria virtual. El principio de cercana sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea prctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de pginas o segmentos entre memoria secundaria y memoria principal. Justo despus de obtener la direccin fsica y antes de consultar el dato en memoria principal se busca en memoria-cache, si esta entre los datos recientemente usados la bsqueda tendr xito, pero si falla, la memoria virtual consulta memoria principal , , en el peor de los casos se consulta de disco (swapping).

Memoria Virtual = Memoria Fsica + Area de Swapping en Disco

PAGINACION
El trmino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en la segmentacin. El uso de la paginacin en la memoria virtual fue presentado por primera vez en el computador Atlas. Cada proceso tiene su propia tabla de pginas y cuando carga todas sus pginas en la memoria principal, se crea y carga en la memoria principal una

tabla de pginas. Cada entrada de la tabla de pginas contiene el nmero de marco de la pgina correspondiente en la memoria principal. Puesto que slo algunas de las pginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la pgina correspondiente est presente (P) en la memoria principal o no. Si el bit indica que la pgina est en la memoria, la entrada incluye tambin el nmero de marco para esa pgina. Otro bit de control necesario en la entrada de la tabla de pginas es el bit de modificacin (M), para indicar si el contenido de la pgina correspondiente se ha alterado desde que la pgina se carg en la memoria principal. Si no ha habido cambios, no es necesario escribir la pgina cuando sea sustituida en el marco que ocupa actualmente. Estructura de la tabla de pginas El mecanismo bsico de lectura de una palabra de la memoria supone la traduccin por medio de la tabla de pginas de una direccin virtual o lgica, formada por un nmero de pgina y un desplazamiento, a una direccin fsica que est formada por un nmero de marco y un desplazamiento. Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinacin de hardware y software a direcciones fsicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traduccin de direcciones. Actualmente los dos niveles de la jerarqua de memoria controlados por la memoria virtual son las DRAM y los Discos magnticos. Puesto que la tabla de pginas es de longitud variable, en funcin del tamao del proceso, no es posible suponer que quepa en los registros.
DireccinVirtual N Pag Desplaza miento

N Pag Desplaza miento

Registro Puntero a tabla de pginas Desplaza miento Marcode Pgina

+ Programa Mecanismo de paginacin

N Marco

Memoria principal

Traduccin de direcciones en un sistema de paginacin

La figura anterior sugiere una implementacin en hardware de este esquema. Cuando se est ejecutando un proceso en particular, la direccin de comienzo de la tabla de pginas para este proceso se mantiene en un registro. El nmero de pgina de la direccin virtual se emplea como ndice en esta tabla para buscar el nmero de marco correspondiente. Este se combina con la parte

de desplazamiento de la direccin virtual para generar la direccin real deseada. La mayora de los esquemas de memoria virtual almacenan las tablas de pginas en la memoria virtual en vez de en la memoria real. Esto significa que estas tablas de pginas estn tambin sujetas a paginacin, de la misma forma que las otras pginas. Cuando un proceso se est ejecutando, al menos una parte de su tabla de pginas debe estar en la memoria principal, incluyendo la entrada de la tabla de pginas para la pgina actualmente en ejecucin. Algunos procesadores usan un esquema de dos niveles para organizar grandes tablas de pginas, donde hay un directorio de pginas en el que cada entrada seala a una tabla de pginas. As pues, si la longitud del directorio de pginas es X, y la longitud mxima de una tabla de pginas es Y, un proceso puede estar formado por hasta X x Y pginas. Normalmente, la longitud mxima de una tabla de pginas est limitada a una pgina. Por ejemplo, el procesador Pentium utiliza este mtodo. Un enfoque alternativo al uso de tablas de pginas de uno o dos niveles es el uso de una estructura de tabla de pginas invertida. Con este mtodo, la parte del nmero de pgina de una direccin virtual se traduce a una tabla de dispersin por medio de una funcin de dispersin simple. La tabla de dispersin contiene un puntero a la tabla de pginas invertida, que contiene a su vez las entradas de la tabla de pginas. Con esta estructura, hay una entrada en la tabla de dispersin y en la tabla de pginas invertida por cada pgina de memoria real en lugar de una por cada pgina virtual. As pues, se necesita una parte fija de la memoria real para las tablas, sin reparar en el nmero de procesos o de pginas virtuales soportados. La tcnica de dispersin genera normalmente cadenas cortas, de dos a tres entradas cada una.

Buffer de traduccin adelantada Cada referencia a la memoria virtual puede generar dos accesos a la memoria: uno para obtener la entrada de la tabla de pginas correspondientes y otro para obtener el dato deseado. Un esquema sencillo de memoria virtual podra tener el efecto de doblar el tiempo de acceso a la memoria. Para solucionar este problema, la mayora de los esquemas de memoria virtual hacen uso de una cache especial para las entradas de la tabla de pginas, llamada generalmente buffer de traduccin adelantada (TLB,Translation Lookaside Buffer) que contiene aquellas entradas de la tabla de pginas usadas hace menos tiempo. La organizacin de hardware de paginacin resultante se muestra en la figura siguiente.

Memoria Principal Direccin virtual N pg. Desplazamiento

Memoria Secundaria

Desplazamiento
Buffer de traduccin adelantada
Cargar pgina

Tabla de pginas

n marco .

Desplaza .miento

Direccin Real

Dada una direccin virtual, el procesador examinar primero la TLB. Si la entrada de la tabla de pginas buscada est presente se obtiene el nmero de marco y se forma la direccin real. Si no se encuentra, el procesador emplea el nmero de pgina como ndice para buscar en la tabla de pginas del proceso y examinar la entrada correspondiente de la tabla de pginas. Si no se encuentra activo el bit de presencia, es que la pgina est en la memoria principal y el procesador puede obtener el nmero de marco de la entrada de la tabla de pginas para formar la direccin real. El procesador, adems, actualiza la TLB para incluir esta nueva entrada de la tabla de pginas. Si el bit de presencia no est activo, es que la pgina buscada no est en la memoria principal y se produce un fallo en el acceso a la memoria, llamado fallo de pgina. Existe una serie de detalles adicionales sobre la organizacin real de la TLB. Puesto que la TLB contiene slo algunas de las entradas de la tabla de pginas completa, no se puede indexar simplemente la TLB por el nmero de pginas. Cada entrada debe incluir el nmero de pgina,

adems de la entrada completa a la tabla de pginas. El procesador estar equipado con un hardware que permita consultar simultneamente varias entradas de la TLB para determinar si hay coincidencia en el nmero de pgina. Esta tcnica se denomina correspondencia asociativa y contrasta con la correspondencia directa, que se emplea para buscar en la tabla de pginas de la figura de Bsqueda directa y asociativa. El diseador de la TLB tambin debe considerar la forma en que se organiza las entradas en la TLB y que entrada reemplazar cuando se introduce una nueva. ESQUEMA DE CORRESPONDENCIA DIRECTA
Direccin virtual

n pg.

Desplazam.

502

37

. . . .
Tabla de pginas

37

502

n marco Desplazamiento

Direccin real

. ESQUEMA DE CORRESPONDENCIA ASOCIATIVA . Direccin virtual


n pg. 5 Desplazam. 502

. .

n pg. Entrada a PTE

19 5 56 37

. .

511

37

502

. . . n marco Desplazamiento

Direccin real
Buffer de traduccin adelantada

Por ltimo, el mecanismo de la memoria virtual debe interactuar con el sistema de cache de la memoria principal. La de traduccin con buffer ilustra esta interaccin. Una direccin virtual estar formada por el nmero de pgina ms el desplazamiento. Una vez que se ha generado la direccin real, que est en forma de etiqueta(formada por los bits ms significativos de la direccin real) y un resto, se consulta la cache para ver si est presente el bloque que contiene dicha palabra. Si lo est, es devuelto a la CPU. Si no, se toma la palabra de la memoria principal.

Tamao de Pgina Hay varios factores que considerar. Uno es la fragmentacin interna. Sin duda, cuanto menor sea el tamao de pgina, menor ser la cantidad de fragmentacin interna. Para optimizar el uso de la memoria principal, es positivo reducir la fragmentacin interna. Por otro lado, cuanto menor sea la pgina, mayor ser el nmero de pginas que se necesitan por proceso. Un nmero mayor de pginas por proceso significa que las tablas de pginas que se necesitan por proceso sern mayores. As pues, pueden suceder dos fallos de pgina para una nica referencia a la memoria: primero, para traer la parte necesaria de la tabla de pginas y, segundo, para traer la pgina del proceso. Se puede considerar el efecto que tiene el tamao de pgina en el porcentaje de fallos de pgina y se basa en el principio de cercana. Si el tamao de pgina es muy pequeo, normalmente estarn disponibles en la memoria principal un gran nmero de pginas para cada proceso. Despus de un tiempo, todas las

pginas de la memoria contendrn parte de las referencias ms recientes del proceso y la tasa de fallos de pgina ser menor. Cuando de incrementa el tamao de la pgina, cada pgina individual contendr posiciones cada vez ms distantes de cualquier referencia reciente; se atena el efecto de principio de cercana y comienza a aumentar la tasa de fallos de pgina, que comenzar a bajar cuando, finalmente, el tamao de pgina se aproxime al tamao de todo el proceso. Cuando una sola pgina abarca todo el proceso, no hay fallos de pgina. Una dificultad ms es que la tasa de fallos de pgina viene determinada tambin por el nmero de marcos asignados a un proceso. Por ltimo el diseo del tamao de pgina est relacionado con el tamao de la memoria fsica principal. Al mismo tiempo que la memoria principal se hace mayor, el espacio de direcciones que emplean las aplicaciones tambin crece. Esta tendencia es ms evidente en las computadoras personales y estaciones de trabajo, donde las aplicaciones se hacen cada vez ms complejas.

SEGMENTACION
Implicaciones de la memoria virtual La segmentacin permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaos, incluso de forma dinmica. Las referencias a la memoria constan de una direccin de la forma (nmero de segmento, desplazamiento). Esta organizacin ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado: 1. Simplifica la gestin de estructuras de datos crecientes. Si el programador no conoce a priori cun larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaos de segmentos dinmicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandir o reducir el segmento cuando se necesite. 2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo. 3. Se presta a la comparticin entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos. 4. Se presta a la proteccin. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podr asignar los permisos de acceso de la forma adecuada. Organizacin En el estudio de la segmentacin simple, se lleg a la conclusin de que cada proceso tiene su propia tabla de segmento y que, cuando todos los segmentos se encuentran en la memoria principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la tabla contiene la direccin de comienzo del segmento correspondiente de la memoria principal, as como su longitud. La misma estructura se necesitar al hablar de un esquema de memoria virtual basado en la segmentacin donde las entradas de la tabla de

segmentos pasan a ser ms complejas. Puesto que slo algunos de los segmentos de un proceso estarn en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente est presente en la memoria principal. Si el bit indica que el segmento est en la memoria, la entrada incluye tambin la direccin de comienzo y la longitud del segmento. Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificacin que indique si el contenido del segmento correspondiente ha sido modificado desde que se carg por ltima vez en la memoria principal. Si no ha habido cambios, no ser necesario escribir en el disco el segmento cuando llegue el momento de reemplazarlo en el espacio que ocupa actualmente.
DireccinVirtual Nseg Desplaza miento= d

Direccin real
BASE + D Registro Puntero a tabla de segmentos Desplaza miento Marcode Pgina

+ Programa

Longitud

Base
Memoria principal

Mecanismo de paginacin

Traduccin de direcciones en un sistema con segmentacin

PAGINACION Y SEGMENTACION COMBINADAS


Tanto la paginacin como la segmentacin tienen sus ventajas. La paginacin elimina la fragmentacin externa y de este modo, aprovecha la memoria principal de forma eficiente. Adems, puesto que los fragmentos que se cargan y descargan de la memoria principal son de tamao fijo e iguales, es posible construir algoritmos se gestin de memoria sofisticados que aprovechen mejor el comportamiento de los programas. La segmentacin tiene las ventajas antes citadas, incluida la capacitacin de gestionar estructuras de datos que puedan crecer, la modularidad y el soporte de la comparticin y la proteccin. Para combinar las ventajas de ambas, algunos sistemas estn equipados con hardware del procesador y software del S.O. En un sistema con paginacin y segmentacin combinadas, el espacio de direcciones de un usuario se divide en varios segmentos segn el criterio del programador. Cada segmento se vuelve a dividir en varias pginas de tamao fijo, que tienen la misma longitud que un marco de memoria principal. Si el segmento tiene menor longitud que la pgina, el segmento ocupar slo una pgina. Desde el punto de vista del programador, una direccin lgica todava est formada por un nmero de segmento y un desplazamiento en el segmento. Desde el punto de vista de sistema, el desplazamiento del segmento se ve como

un nmero de pgina dentro del segmento y un desplazamiento dentro de la pgina. La entrada de la tabla de segmentos contiene la longitud del segmento. Los bits de presencia y modificacin no son necesarios, puesto que estos elementos se gestionan en la pgina. Pueden usarse otros bits de control para comparicin y proteccin. La entrada de la tabla de pginas es, la misma que se usa en un sistema de paginacin pura. Cada nmero de pgina se convierte en el nmero de marco correspondiente si la pgina est presente en la memoria. El bit de modificacin indica si se necesita escribir la pgina en el disco cuando se asigna el marco a otra pgina.

Direccin virtual
Segg. pg.
Desp.
laza

N. Desplaza marco miento


Puntero a

miento mento
ina tabla de pginas

Tabla
Tabla

+
de segmentos

de pginas

}
Memoria

Marco de pgina

Programa Principal

Mecanismo de segmentacin

Mecanismo de paginacin

-Traduccin de direcciones en un sistema con segmentacin y paginacin-

PROTECCION Y COMPARTIMIENTO
Un proceso de usuario slo puede acceder memoria localizada en su espacio de direccionamiento virtual y un espacio de memoria compartido para sus procesos-hijo.
Habilidad de separar completamente las tareas, al poder dar a cada tarea un espacio de direcciones virtuales diferentes. Esto se hace dando un mapa de

traduccin de direcciones virtuales diferente a cada tarea. Los otros mecanismos funcionan dentro de una tarea: para proteger al propio sistema operativo de la intrusin por parte de esa tarea, y al uso de registros especiales del procesador e instrucciones reservadas nicamente al sistema operativo. Slo un proceso kernel puede controlar y acceder cualquier espacio de direccionamiento. Adems la segmentacin se presta a la implementacin de polticas de proteccin, puesto que cada entrada de la tabla de segmentos incluye la longitud, adems de la direccin base, un programa no podr acceder por descuido a una posicin de la memoria principal ms all de los lmites de un segmento. Para conseguir la comparticin, es posible que un segmento se referencia desde las tablas de segmentos de ms de un proceso. Este mismo mecanismo es vlido en un sistema de paginacin. Se pueden ofrecer tambin mecanismos ms sofisticados. Un esquema habitual consiste en usar una estructura de anillo de proteccin donde los anillos interiores gozan de mayores privilegios que los anillos externos. Normalmente, el anillo 0 est reservado para las funciones del ncleo del S.O y las aplicaciones estn situadas a un nivel ms alto. Algunos servicios del S.O pueden ocupar un anillo intermedio. Los principios bsicos del sistema de anillos son los siguientes: 1. Un programa puede acceder slo a datos que estn en el mismo anillo o en un anillo de menor privilegio. 2. Un programa puede hacer llamadas a servicios que residan en el mismo anillo o en anillos ms privilegiados.

SOFTWARE DEL SISTEMA OPERATIVO


El diseo del gestor de memoria en un sistema operativo depende de tres reas fundamentales de decisin: Si se emplean o no tcnicas de memoria virtual. El uso de paginacin, segmentacin o ambas. Los algoritmos empleados para los problemas de la gestin de memoria. Las decisiones tomadas en las dos primeras reas dependen de la plataforma de hardware disponible. Las decisiones del tercer punto (los algoritmos) son del dominio del software del S.O.. En las polticas, elementos claves de diseo, que luego se desarrollarn, el punto clave es el rendimiento: se busca minimizar el porcentaje de fallos de pgina. Los fallos de pgina originan una considerable sobrecarga en el software. Como mnimo, la sobrecarga incluye la decisin que el S.O. debe tomar sobre las pginas residentes o pginas que se deben reemplazar y la E/S de intercambiar pginas. Adems, el S.O. debe planificar la ejecucin de otro proceso durante el intercambio de pgina, dando lugar a un cambio de proceso. Los elementos clave del diseo son los desarrollados a continuacin: POLTICAS DE LECTURA (FETCH)

Es la que est relacionada con la decisin de cundo se debe cargar una pgina en la memoria principal. Las dos alternativas ms comunes son: Paginacin por demanda: Se trae una pgina a la memoria principal slo cuando se hace referencia a una posicin en dicha pgina. Paginacin previa: Se cargan otras pginas distintas a las demandadas debido a un fallo de pgina. Esta poltica no es efectiva si la mayora de las pginas extra que se traen no se referencian. La utilidad no ha sido demostrada. POLTICAS DE UBICACIN
Tiene que ver con determinar dnde va ha residir una parte de un proceso en la memoria principal. Es un aspecto importante del diseo en un sistema puro de segmentacin.

Como posibles alternativas se tiene: Polticas del mejor ajuste. Polticas del primer ajuste Y otras. Sin embargo, para un sistema que usa tanto paginacin pura como paginacin combinada con segmentacin, la ubicacin carece de importancia puesto que el hardware de traduccin de direcciones y el hardware de acceso a la memoria principal pueden desarrollar sus funciones en cualquier combinacin de marco de pgina con idntica eficiencia.

POLTICAS DE REEMPLAZO Trata de la seleccin de la pgina a reemplazar en la memoria principal cuando se debe cargar una nueva pgina. Esto resulta difcil de explicar por lo que se debe tener en cuenta algunos conceptos interrelacionados como ser: El numero de marcos de pgina a asignar a cada proceso activo. Si el conjunto de pginas a considerar para el reemplazo debe limitarse a las del proceso que provoc el fallo de pgina o abarcar todos los marcos de pgina situados en la memoria principal. De entre el conjunto de pginas consideradas, cul es la pgina especfica que debe elegirse para el reemplazo.

X6

MEMORIA PRINCIPAL SECUNDARIA MEMORIA

- X6 FUE EL MARCO ELEGIDO PARA REALIZAR EL REEMPLAZO DE PGINAS. SE ELIMINA LA PGINA QUE NO SE ESTA USANDO Y SE TRAE A MEMORIA PRINCIPAL LA PGINA QUE EL SISTEMA OPERATIVO NECESITA.

La Poltica de Reemplazo se encarga de seleccionar la pgina a reemplazar de entre las que estn actualmente en la memoria, cuando todos los marcos de memoria principal estn ocupados y es necesario traer una nueva pgina para atender a un fallo de pgina. Todas las polticas tienen como objetivo que la pgina a reemplazar sea la que tenga una menor posibilidad de ser referenciada en un futuro cercano. Debido al principio de cercana, hay una alta correlacin entre la historia de referencias recientes y las pautas de futuras referencias. Es necesario tener en cuenta una restriccin de la poltica de reemplazo: algunos de los marcos de la memoria principal pueden estar bloqueados; si es as, la pgina cargada actualmente en ese marco no puede ser reemplazada. En los marcos bloqueados se albergan: la mayora del ncleo del S.O. y las estructuras clave de control. El bloqueo se consigue asignando un bit de bloqueo a cada marco, este bit puede guardarse en una tabla de marcos o estar en la tabla de pgina actual.

Algoritmos bsicos Los algoritmos que se emplean para seleccionar una pgina a reemplazar son las siguientes: ptima: selecciona para reemplazar la pgina que tiene que esperar ms tiempo hasta que se produzca la referencia siguiente. Esta poltica genera el menor nmero de fallos de pgina. Este algoritmo resulta imposible de implementar ya que requiere que el S. O. Tenga un conocimiento exacto de los sucesos futuros. Algoritmo de reemplazo de pginas segn el uso no tan reciente: Este algoritmo hace uso de los dos bits de estado que estn asociados a cada pgina. Estos bits son: R, el cual se activa cuando se hace referencia (lectura / escritura) a la pgina asociada; y M, que se activa cuando la pgina asociada es modificada (escritura). Estos bits deben de ser actualizado cada vez que se haga referencia a la memoria, por esto es de suma importancia que sean activados por el hardware. Una vez activado el bit, permanece en ese estado hasta que el sistema operativo, mediante software, modifica su estado. Estos bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que cuando inicie el proceso, el sistema operativo asigne un valor de 0 a ambos bits en todas las pginas. En cada interrupcin de reloj, limpie el bit R para distinguir cules pginas tuvieron referencia y cules no.

Cuando ocurre un fallo de pgina, el sistema operativo revisa ambos bits en todas las pginas y las clasifica de la siguiente manera: Clase 0: La pgina no ha sido referenciada, ni modificada. Clase 1: La pgina no ha sido referenciada, pero ha sido modificada. Clase 2: La pgina ha sido referenciada, pero no ha sido modificada.

Clase 3: La pgina ha sido referenciada y tambin modificada. Estrategia: Sustituir primero celdas tipo 0 (mejor opcin), tipo 1 (lento) pero grabando celda de salida, tipo 2 (posible hiperpaginacin), tipo 3 (peor) pero grabando celda de salida. Una vez obtenida la clasificacin, elimina una pgina de manera aleatoria de la primera clase no vaca con el nmero ms pequeo. Esto porque para el algoritmo es mejor eliminar una pgina modificada sin referencias en al menos un intervalo de reloj, que una pgina en blanco de uso frecuente. A pesar de que este algoritmo no es el ptimo, es fcil de implementar y de comprender y con mucha frecuencia es el ms adecuado. Usada menos recientemente (LRU, Last Recently Used): reemplaza la pgina de memoria que no ha sido referenciada desde hace ms tiempo. Debido al principio de cercana esta debera ser la pgina con menor probabilidad de ser referenciada en un futuro cercano. El problema de este mtodo es su dificultad de implementacin. Una solucin sera etiquetar cada pgina con el momento de su ltima referencia; tanto para instrucciones como datos. Este esquema produce sobrecarga. Primera en entrar, primera en salir (FIFO, First In First Out): trata los marcos asignados a un proceso como un buffer circular y las pginas se suprimen de la memoria segn la tcnica de Round-Robin. Lo que se necesita es un puntero que circule a travs de los marcos del proceso. Esta es una de las polticas de reemplazo ms sencillas de implementar. Se reemplaza la pgina que a estado ms tiempo en la memoria, teniendo como desventaja que habr regiones del programa o de datos que son muy usadas a lo largo de la vida de un programa por lo cual estas pginas se cargarn y expulsarn repetidas veces. Reloj (Clock): requiere asociar un bit adicional a cada marco, denominado bit de uso. Cuando se carga una pgina por primera vez el bit de uso se pone a cero. Cuando se hace referencia a la pgina posteriormente, el bit de uso se pone a uno. Para el algoritmo de reemplazo de pginas, el conjunto de marcos candidatos a ser reemplazados se considera como un buffer circular con un puntero asociado. Al reemplazar una pgina, se hace que el puntero seale a la primer puntero del buffer. Cuando llega el momento de reemplazar una pgina, el S.O. recorre el buffer buscando un marco con el bit de uso a cero. Cada vez que se encuentra un marco con el bit de uso a uno, lo pone a cero. Si algn marco del buffer tiene el bit de uso a cero, al comienzo de la bsqueda, se elige para reemplazar el primero que se haya encontrado. Si todo los marcos tienen el bit de uso a uno, el puntero dar una vuelta completa al buffer, poniendo todos los bits a cero y se detendr en la posicin inicial, reemplazando la pgina de dicho marco. Almacenamiento intermedio de pginas

El coste de reemplazar una pgina que ha sido modificada es mayor que el de una que no lo ha sido, porque las pginas modificadas deben volver a escribirse en la memoria secundaria. Una solucin representativa es la del VAX/VMS. El algoritmo de reemplazo es simplemente un FIFO. Para mejorar el rendimiento, no se pierde la pista de la pgina reemplazada, sino que se asigna a una de las dos listas siguientes: la lista de pginas libres (si no ha sido modificada), o, la lista de pginas modificadas (si lo ha sido). Pero la pgina no se mueve fsicamente de la memoria principal, sino que se suprime su entrada en la tabla de pginas y se pone en la lista de pginas libres o modificadas. As, si la pgina que fue agregada a una de las listas (permanente en la memoria) y si el proceso hace referencia a dicha pgina, simplemente se devuelve al conjunto residente del proceso con un coste pequeo. Estas listas de pginas libres y modificadas actan como una cach de pginas. La lista de pginas modificadas tiene otra funcin provechosa: las pginas modificadas son reescritas por bloques, en vez de una a una; esto reduce significativamente el nmero de operaciones se E/S y por tanto, la cantidad de tiempo de acceso al disco.

Polticas de reemplazo y tamao de cach Por ser el tamao de la memoria cada vez ms grande, y la cercana en las aplicaciones cada vez menor; se busca compensar haciendo ms grande el tamao de las caches. Con una cach grande, el reemplazo de pginas de memoria virtual puede tener un gran impacto en el rendimiento. Si el marco seleccionado para reemplazar se encuentra en la cach, entonces se pierde el bloque de cach, as como la pgina que contiene. Una estrategia cuidadosa de reemplazo de pginas puede dar como resultado de un 10 a un 20% menos de fallos de cach que la ubicacin arbitraria, utilizando una poltica de ubicacin de pginas en el buffer de pginas.

GESTION DEL CONJUNTO RESIDENTE Tamao del conjunto residente Con memoria virtual paginada no es necesario y, puede no ser posible, traer todas las pginas de un proceso a la memoria principal para preparar su ejecucin. El sistema operativo debe decidir cuantas paginas traer, es decir, cuanta memoria principal asignar a un proceso. Aqu entran en juego varios factores: Cuanto menor es la cantidad de memoria asignada a un proceso, mayor es el nmero de procesos que pueden estar en la memoria principal. Esto aumenta la probabilidad de que el sistema operativo encuentre al menos un proceso Listo y, por lo tanto, reduzca el tiempo perdido en el intercambio. Si en la memoria principal hay un nmero relativamente pequeo de paginas de un proceso entonces a pesar del principio de cercana, el porcentaje de fallos de pagina ser algo mayor.

La asignacin de memoria adicional a un proceso en particular no tendr efectos notables en el porcentaje de fallos de pagina para ese proceso debido al principio de cercana. Con estos factores en los sistemas operativos actuales se pueden encontrar con dos tipos de polticas. La poltica de asignacin fija otorga a cada proceso un nmero fijo de paginas en las que ejecutar. Con una poltica de asignacin fija, cada vez que se produce un fallo de pagina en la ejecucin de un proceso, se debe reemplazar una de las paginas de dicho procesador la pagina que se necesite. La poltica de asignacin variable permite que el ncleo de marcos asignados a un proceso cambie a lo largo de su vida. La poltica de asignacin variable parece ser la mas potente. La dificultad de este mtodo esta en que requiere que el sistema operativo evalu el compartimiento de los procesos activos. Alcance del reemplazo El alcance de una estrategia de reemplazo puede clasificarse en global o local. Un fallo de pagina, producido cundo no hay marcos libres, es le activador de ambos tipos de polticas. Para seleccionar la pagina a reemplazar, una poltica de reemplazo local escoge nicamente de entre las paginas residentes del proceso que origin el fallo de pagina. Una poltica de reemplazo global considera todas las pginas de la memoria como candidatas para reemplazar, independientemente del proceso particular a que pertenezcan. Reemplazo local Reemplazo global El nmero de marcos No es posible. asignados a un proceso es fijo. La pagina a reemplazar se elige de entre los marcos asignados al proceso. El nmero de marcos La pagina a reemplazar se asignados a un proceso elige de entre todos los puede cambiar de un marcos disponible en la momento a otro para memoria principal; esto mantener su conjunto de hace que cambie el tamao trabajo. del conjunto residente de los procesos. La pagina a reemplazar se elige de entre las paginas asignadas al proceso.

Asignacin fija

Asignacin variable

Asignacin fija y alcance local En este caso, se tiene un proceso que se ejecuta en la memoria principal con un nmero fijo de paginas. Cuando se produce un fallo de pagina, el sistema operativo debe elegir la pagina a reemplazar entre las de dicho proceso que estn actualmente en la memoria. Con una poltica de asignacin fija, es necesario decidir por anticipado la cantidad de memoria asignada a un proceso. Asignacin variable y alcance global

Esta combinacin es sencilla de implementar y ha sido adoptada por un buen nmero de sistemas operativos. En un instante en la memoria principal habr varios procesos, cada uno de ellos con un cierto nmero de marcos asignados. El sistema operativo tambin mantiene una lista de marcos libres. Cuando se produce un fallo de pgina, se aade un marco libre al conjunto residente del proceso y se carga la pagina. La dificultad de este mtodo es la eleccin del reemplaz. Cuando no hay marcos libres, el sistema operativo debe elegir una pagina que este en la memoria para reemplazar. La seleccin se realiza entre todos los marcos de la memoria excepto los marcos bloqueados. Asignacin variable y alcance local Es otro mtodo de agnacin variable, que intenta superar los problemas de alcance global. La estrategia de asignacin variable y alcance local puede resumirse como sigue: 1. cuando se carga un nuevo proceso en la memoria, se le asigna cierto nmero de marcos en funcin del tipo de aplicacin, las necesidades del programa u otros criterios. La asignacin puede cubrirse tanto con paginacin previa como con paginacin por demanda. 2. cuando se produce un fallo de pagina, se selecciona la pagina a reemplazar de entre las del conjunto residente del proceso que sufre el fallo. 3. de vez en cuando, se vuelve a evaluar la asignacin otorgada al proceso y se aumenta o disminuye para mejorar el rendimiento global. El conjunto de trabajo ha tenido un gran impacto en el diseo de la gestin de la memoria virtual. El conjunto de trabajo de un proceso en un instante virtual t y con parmetro *, denotado por W(t,*), es el conjunto de paginas a las que el proceso ha hecho referencia en las ultimas * unidades de tiempo virtual. Se usa el termino tiempo virtual par indicar el tiempo que transcurre mientras que el proceso est en ejecucin. La variable * es una ventana de tiempo para la observacin del proceso. El tamao del conjunto de trabajo ser una funcin no decreciente del tamao de la ventana. Los puntos indican unidades de tiempo en las que no cambia el conjunto de trabajo, cuando mayor es el conjunto de trabajo, menos frecuentes son los fallos de pgina. Este concepto de conjunto de trabajo puede modificar la siguiente estrategia para el tamao del conjunto residente: 1. Supervisar el conjunto de trabajo de cada proceso. 2. Eliminar peridicamente del conjunto residente de un proceso aquellas paginas que no pertenezcan a su conjunto de trabajo. 3. Un proceso puede ejecutar si su conjunto de trabajo es en la memoria principal (es decir, si su conjunto residente incluye a su conjunto de trabajo). Esta estrategia resulta atractiva porque toma un principio reconocido, el principio de cercana y lo aprovecha para obtener la estrategia de gestin de memoria que permita minimizar los fallos de pgina. Por desgracia, la estrategia del conjunto de trabajo presenta una serie de problemas. 1. El pasado no siempre predice el futuro. Tanto el tamao como el contenido del conjunto de trabajo cambiarn con el tiempo.

2. Es impracticable una medida real del conjunto de trabajo para cada proceso. Sera necesario marcar cada referencia de pagina de cada proceso con su tiempo virtual y mantener una cola ordenada entorno de las pginas de cada proceso. 3. El valor ptimo de es desconocido y, en cualquier caso, puede variar. El algoritmo de frecuencia de fallo de pgina (PFF. Page Fault Frequency) sigue esta estrategia. El algoritmo exige que se asocie un bit de uso a cada pagina de la memoria. El bit se pone cuando se accede a la pgina. Cuando produce un fallo de pagina el sistema operativo anota el tiempo virtual transcurrido desde el ultimo fallo de pagina para ese proceso. Se define un umbral F. Si el tiempo transcurrido desde el ultimo fallo de pgina es menor que F, entonces una pgina se aade al conjunto residente del proceso. En otro caso, descartan todas las pginas con bit de uso a 0 y, en consecuencia, se reduce el conjunto residente. Al mismo tiempo, se restauran a 0 el valor del bit de uso en las paginas restantes. Un mtodo que intenta solucionar el fenmeno de las transiciones entre ubicaciones con una pequea sobrecarga, es la poltica de conjunto de trabajo con muestreos en intervalo variables (VSWS, Variable Interval Sampled Working Set). La poltica VSWS evala el conjunto de trabajo de un proceso tomando muestras en funcin del tiempo virtual transcurrido. Al comienzo de un intervalo de muestreo, se restauran los bit de uso de todas las pginas residentes del proceso durante el intervalo siguiente, descartndose el resto. As pues, el tamao del conjunto residente puede disminuir slo al final de un intervalo. La poltica del VSWS est gobernada por los siguientes parmetros: M: Duracin mnima del intervalo de muestreo. L: Duracin mxima del intervalo de muestreo. Q: Nmero de fallos de pgina permitidos entre cada par de muestras. La poltica VSWS es la siguiente: 1. Si el tiempo virtual transcurrido desde la ltima muestra alcanza L, suspende el proceso y explora los bits de uso. 2. Si, antes de que transcurra un tiempo virtual L, se producen Q fallos de pgina: a) Si el tiempo virtual desde la ltima muestra es menor que M, espera hasta que el tiempo virtual transcurrido alcance M para suspender el proceso y explorar los bit de uso. b) Si el tiempo virtual desde la ltima muestra es mayor o igual que M, suspende el proceso y explora los bits de uso. POLTICA DE VACIADO Una poltica de vaciado es la contraria a una poltica de lectura: se preocupa de determinar el momento en que hay que escribir en la memoria secundaria una pgina modificada. Las dos alternativas son el vaciado por demanda y el vaciado previo. Con vaciado por demanda, una pagina se escribir en la memoria secundaria slo cuando haya sido elegida para reemplazarse. Una poltica de vaciado previo escribe las pginas modificadas antes de que se necesiten sus marcos, de forma que las pginas pueden escribirse por lotes. Existe un peligro si se sigue estrictamente cualquiera de las dos polticas. Con el vaciado previo, una pagina se escribe pero permanece en la memoria

principal hasta que el algoritmo de reemplazo de pagina diga que se suprime. El vaciado previo permite escribir las paginas por lotes, pero tiene poco sentido escribir miles de pginas para encontrarse que la mayora de ellas han sido modificadas antes de ser reemplazadas. La capacidad de transferencia de la memoria secundaria es limitada y no debe malgastarse con operaciones de vaciado innecesarias. Por otro lado, en el vaciado por demanda, la escritura de una pgina modificada es anterior a la lectura de una nueva pgina. Esta tcnica puede minimizar las escrituras de paginas, pero hace que un proceso que sufra un fallo de pagina pueda tener que esperar dos transferencias de pagina antes de desbloquearse. Una solucin es incorporar almacenamiento intermedio de paginas, que permite la adopcin de la siguiente poltica: vaciar solo las paginas que es posible reemplazar, pero desconectar las operaciones de vaciado y reemplazo. Con almacenamiento intermedio de pginas reemplazadas pueden situarse en dos listas: modificadas y no modificadas

GESTION DE MEMORIA EN UNIX Y SOLARIS


Las primeras versiones de Unix slo utilizaban particiones variables sin ningn esquema de memoria virtual., pero en las implementaciones actuales, incluidas SVR4 y Solaris 2.x, utilizan memoria virtual paginada. En SVR4 y Solaris, tienen dos esquemas de memoria separados. El sistema de paginacin ofrece una memoria virtual que asigna marcos de pagina en la memoria principal a los procesos y tambin asigna marcos de pagina a las memorias intermedias de los bloques de disco. Un esquema de memoria virtual paginado se adapta peor a la gestin de la asignacin de memoria para el ncleo, por lo que se utiliza un asignador de memoria del ncleo. SISTEMA DE PAGINACIN Estructuras de datos Para la memoria virtual paginada, UNIX, hace uso de una serie de estructuras de datos que son independientes de la maquina: Tabla de pginas: posee una tabla por proceso, con una entrada para cada pgina de la memoria virtual en proceso. Descriptor de bloques de disco: asociado a cada pgina del proceso hay una entrada en la tabla que describe la copia en el disco de la pgina virtual. Tabla de marcos de pgina: describe cada marco de la memoria real y est indexada por el nmero de marco. Tabla de uso de intercambios: existe una tabla por cada dispositivo de intercambio. Reemplazo de pginas La tabla de marcos de pgina se utiliza en el reemplazo de pginas, utilizando varios punteros para crear listas dentro de esta tabla. El algoritmo de reemplazo de paginas utilizado en SVR4 es conocido como algoritmo del reloj de dos agujas, ya que utiliza un bit de referencia para cada pagina de la memoria que rene los requisitos (no bloqueada) para ser

expulsada. Este bit se pone a 0 cuando la pgina entra por primera vez y a 1 cuando se hace referencia a la pagina para una lectura o escritura. La aguja frontal recorre la lista y pone el bit de referencia a 0, as en algn tiempo la aguja trasera recorre la misma lista y comprueba el bit de referencia. Si el bit est a 1, entonces la pgina se ha referenciado y se ignora el marco, en cambio, si el bit est todava 0, entonces la pgina no se ha referenciado en el intervalo y se pone a estas pginas en una lista para ser reemplazadas. Dos parmetros determinan la operacin del algoritmo: Velocidad de recorrido: la velocidad con la que las agujas se mueven a travs de la lista de pginas, en pginas por segundo. Alcance entre agujas: el espacio entre la aguja frontal y la trasera.

GESTION DE MEMORIA EN LINUX


Linux comparte algunas caractersticas de UNIX, pero su esquema de gestin de memoria es bastante complejo (DUBE98). MEMORIA VIRTUAL DE LINUX

Direccionamiento de memoria virtual Linux hace uso de una estructura de tabla de pginas con tres niveles: Directorio de pginas: un proceso activo tiene slo un directorio de pginas, donde cada entrada en el mismo, seala a una pgina del directorio intermedio de pginas. Para un proceso activo, el directorio debe estar en la memoria principal. Directorio intermedio de pginas: es el que puede ocupar varias pginas y donde cada entrada al directorio seala a una pgina de la tabla de pginas. Tabla de pginas: sta tambin puede ocupar varias pginas y en cada entrada se hace referencia a una pgina virtual del proceso. Para utilizar esta estructura de la tabla de pginas a tres niveles, una direccin virtual en Linux se ve como un conjunto de cuatro campos. El campo ms a la izquierda (el ms significativo) se utiliza como ndice en el directorio de pginas; el siguiente se utiliza como ndice en el directorio intermedio de pginas; el tercero como ndice en la tabla de pginas y el cuarto campo indica el desplazamiento dentro de la pgina seleccionada de la memoria. Asignacin de pginas Desde la memoria principal, Linux define un mecanismo para tratar bloques de pginas contiguos correspondientes a bloques de marcos de pginas contiguos, para ello, se utiliza el sistema de colegas donde el ncleo mantiene una lista de grupos de marcos de pgina contiguos de tamao fijo. Algoritmo de reemplazo de pginas

El algoritmo de reemplazo de pginas de Linux se basa en el algoritmo del reloj, que, en caso de ser el sencillo, se asocia un bit de uso y un bit de modificacin a cada pgina de la memoria principal. En Linux utiliza una variable edad que, cada vez que se accede a la pgina, se incrementa la variable y recorre peridicamente la reserva de paginas globales y disminuye la variable de edad de cada pgina cuando rota por todas las pginas de la memoria principal. Una pgina con un envejecimiento 0 es una pgina vieja que no se ha referenciado en bastante tiempo y es la mejor candidata para el reemplazo, y cuanto mayor valor de edad, ms frecuentemente se ha usado la pgina recientemente y menos elegible es para el reemplazo.

GESTION DE MEMORIA EN WINDOWS 2000


El gestor de memoria virtual de Windows 2000 (W2K) controla como se asigna la memoria y como se realiza la paginacin. Mapa de Direcciones Virtuales de W2K Cada proceso de usuario de W2K dispone de un espacio de direcciones separado de 32 bits, lo que permite 4 Gbytes de memoria por proceso. Por lo que, una parte de esta memoria esta reservada para el sistema operativo y cada usuario tiene 2 Gbytes de espacio de direcciones virtual disponible. Paginacin en W2K Cuando se crea un proceso en principio puede hacer uso de todo el espacio de usuario de 2 Gbytes. Este espacio se divide en paginas de tamao fijo, y cualquiera puede cargarse en la memoria principal. En la prctica una pgina puede estar en uno de estos tres estados: Disponible: las pginas no usadas actualmente por este proceso. Reservada: un conjunto de paginas contiguas que el gestor de la memoria virtual separa para un proceso pero no cuentan para la cuota de memoria del proceso hasta que se usan. Confirmada: paginas para las cuales el gestor de memoria virtual mantiene un conjunto de espacio separado en su archivo de paginacin. La distincin entre memoria confirmada y reservada es que la primera permite a procesos o hilos declarar una cantidad de memoria que puede asignarse rpidamente cuando sea necesaria; y la otra, minimiza la cantidad de espacio en el disco separada para un proceso particular dejando ese espacio en disco para otros procesos.

CONCLUSIN

La memoria virtual ha llegado a ser un componente esencial de los S.O, convirtindose en una herramienta til de gestin de memoria. Desde su aparicin se ha comprobado que se agiliz la labor del programador, ya que desarrollando un programa no debe restringir su tamao, no teniendo necesidad de conocer la capacidad de memoria principal disponible. Oculta tambin la complejidad de los algoritmos utilizados para el intercambio de los trozos de los procesos. Por dichas razones, se busca implementarla en la mayora de los S.O. actuales, dejado como optativa, la no utilizacin de la misma.

Vous aimerez peut-être aussi