Está en la página 1de 25

UNIDAD 3 AMINISTRACIN DE MEMORIA

Poltica y filosofa Memoria real Administracin de almacenamiento Jerarqua Estrategia de administracin de memoria Asignacin contigua VS no contigua Multiprogramacin de particin fija, participacin variable, con intercambio de almacenamiento Organizacin de memoria virtual Evaluacin de las organizaciones de almacenamiento Paginacin Segmentacin Sistemas de paginacin segmentacin Administracin de memoria virtual Estrategias de administracin Tcnicas de reemplazo de pginas Paginacin por demanda Paginacin anticipada Liberacin de pgina Tamao de pgina

POLTICA Y FILOSOFA En un sistema monoprogramado, la memoria principal se divide en dos partes: una para el sistema operativo y otra para el programa que se ejecuta en ese instante. En un sistema multiprogramado, la parte de Usuario de la memoria debe dividirse an ms para hacer espacio a varios procesos. Esta divisin la realiza dinmicamente el sistema operativo y se conoce como administracin de memoria. El sistema multiprogramado requiere de una administracin adecuada (efectiva) de la memoria, esto con el fin de optimizar el uso del procesador y de los recursos de E/S. Los requisitos que se intentan satisfacer con una buena administracin de memoria son: Reubicacin Proteccin Compartimiento Organizacin lgica Organizacin fsica

Figura 3.1. Informacin de un proceso de usuario

Reubicacin En un sistema multiprogramado, la memoria principal disponible se encuentra normalmente compartida por varios procesos. En general, el programador no puede conocer por adelantado qu otros programas residirn en la memoria en el momento de la ejecucin de su programa. Adems, se busca poder cargar y descargar los procesos activos en la memoria principal para maximizar el uso del procesador, manteniendo una gran reserva de procesos listos para ejecutarse. Una vez que se ha descargado un programa en el disco, sera bastante limitado que, cuando vuelva a ser cargado, deba situarse en la misma regin de la memoria principal que antes. En lugar de ello, se puede necesitar reubicar el proceso en un rea distinta de la memoria. De este modo, no se sabe antes de tiempo dnde debe situarse un programa y hay que permitir que el programa pueda moverse en la memoria principal como resultado de un intercambio.

Proteccin Cada proceso debe protegerse contra interferencias no deseadas de otros procesos, tanto accidentales como intencionadas. As pues, el cdigo de un proceso no puede hacer referencia a posiciones de memoria de otros procesos, con fines de lectura o escritura, sin permiso. Normalmente un proceso de usuario no puede acceder a ninguna parte del sistema operativo, ni programa ni datos. De nuevo, el programa de un proceso, normalmente no puede bifurcarse hacia una instruccin de otro proceso. Sin un acuerdo especial, el programa de un proceso no puede acceder al rea de datos de otro proceso. El PROCESADOR debe ser capaz de abortar estas instrucciones en el momento de la ejecucin. Compartimiento Cualquier mecanismo de proteccin que se implemente debe tener la flexibilidad de permitir el acceso de varios procesos a la misma zona de la memoria principal. P.E. Si una serie de procesos estn ejecutando el mismo programa, resultara beneficioso permitir a cada proceso que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia. Los procesos que cooperan en una tarea pueden necesitar acceso compartido a la misma estructura de datos, por lo que se debe permitir accesos controlados a las reas compartidas de la memoria, sin comprometer la proteccin bsica. Organizacin lgica De forma casi invariable, la memoria principal se organiza como un espacio de direcciones lineal unidimensional que consta de una secuencia de bytes o palabras. La memoria secundaria, fsicamente se, organiza de forma similar. Esta organizacin refleja finalmente el hardware de la mquina, y no corresponde con la forma en la que los programas estn construidos habitualmente. Organizacin fsica La memoria de la computadora se organiza al menos en dos niveles: memoria principal y memoria secundaria. La memoria principal ofrece un acceso rpido con un costo relativamente alto. Adems es voltil. La memoria secundaria es ms lenta y ms barata, es no voltil, por lo que permite un almacenamiento a largo plazo de programas y datos. Jerarqua de la memoria Las limitaciones de diseo de la memoria deben cumplir con tres caractersticas Cantidad(capacidad) Velocidad Costo

Figura 3.2. Jerarqua de memoria

Desde hace tiempo se vienen utilizando una gran variedad de tecnologas para disear los sistemas de memoria. Y se cumplen las siguientes relaciones: A mayor tiempo de acceso, mayor costo por bit A mayor capacidad, menor costo por bit A mayor capacidad, tiempo de acceso ms lento El diseador deseara usar tecnologas de memoria que le ofrezcan una gran capacidad, porque se necesita y porque el costo por bit es bajo. Sin embargo, para cumplir con los requisitos de rendimiento, puede necesitar una memoria cara, de capacidad relativamente menor y con tiempos de acceso rpidos. La solucin es no depender de un nico componente de memoria o una tecnologa, sino emplear una jerarqua de memoria. A medida que se desciende por la jerarqua se tienen las siguientes condiciones: Disminucin del costo por bit Aumento de la capacidad Aumento del tiempo de acceso Disminucin de la frecuencia de acceso a la memoria por parte del procesador.

Suponiendo que el procesador tiene acceso a dos niveles de memoria. El nivel 1 contiene 1000 palabras y tiene un tiempo de acceso de 0.1 s; el nivel 2 contiene 100 000 palabras y tiene un tiempo de acceso de 1 s. Suponiendo que, si la palabra para acceder est en el nivel 1, entonces el procesador accede a ella directamente. Si est en el nivel 2, entonces la palabra se transfiere primero al nivel 1 y despus accede el procesador; para simplificar, se ignora el tiempo exigido por el procesador para saber si la palabra est en el nivel 1 o nivel 2. La figura muestra el tiempo de acceso medio a una memoria de 2 niveles como una funcin de tasa de aciertos H, donde H se define como el porcentaje de todos los accesos a memoria que se encuentran en la memoria ms rpida(por ejemplo cache), T1 es el tiempo de acceso al nivel 1 y T2 es el tiempo de acceso al nivel 2. Suponiendo que un 95% de los accesos a memoria se encuentran en la cache, es decir H=0.95. Entonces el tiempo medio de acceso a una palabra se puede expresar como: (0.95)(0.1 s) + (0.05)(0.1 s+1 s)= 0.095 + 0.055 =0.15 s

ESTRATEGIA DE ADMINISTRACIN DE MEMORIA


La tarea principal del sistema de gestin de memoria es cargar los programas en la memoria principal para su ejecucin en el procesador. En casi todos los sistemas multiprogramados modernos, esta tarea requiere un sofisticado esquema llamado memoria virtual. Particiones estticas Es dividir la memoria en regiones con lmites fijos. Una posibilidad es emplear particiones de igual tamao. Cualquier proceso cuyo tamao sea menor o igual que el tamao de la particin puede cargarse en cualquier particin libre. Si todas las particiones estn ocupadas y no hay procesos residentes en estado Listo o Ejecutando, el sistema operativo puede sacar un proceso de alguna de las particiones y cargar otro proceso de forma que siempre haya algn trabajo para el procesador. Las particiones de igual tamao plantean dos dificultades:

Un programa puede ser demasiado grande para caber en la particin. En este caso el programador debe disear el programa mediante superposiciones, para que solo una parte del programa est en la memoria principal en cada instante. Cualquier programa sin importar lo pequeo que sea, ocupar una particin completa. Se malgasta el espacio interno de una particin cuando el bloque de datos cargado es ms pequeo que la particin (fragmentacin interna).

Puede reducirse el problema, empleando particiones de distintos tamaos. Los programas de hasta 16Mbytes pueden alojarse sin superposicin. Las particiones menores de 8Mbytes permiten alojar programas ms pequeos con un desperdicio menor.

a) Particiones de igual tamao b) Particiones de diferente tamao Figura 3.3. Particin esttica

Algoritmo de ubicacin Mientras haya alguna particin libre, puede cargarse un proceso en esa particin. Con particiones de diferentes tamaos, hay dos maneras posibles de asignar los procesos a las particiones. Asignar cada proceso (Fila) a la particin ms pequea en la que quepa. La ventaja de este enfoque es que minimiza la fragmentacin interna. Aunque esta tcnica parece optima desde el punto de vista individual de una particin, no lo es desde el punto de vista del sistema global. Pues puede no haber procesos de un cierto tamao y esa particin permanecera siempre libre. Una solucin sera emplear una sola cola para todos los procesos, as cuando se va a cargar un proceso en memoria se selecciona la particin ms pequea disponible que pueda albergar al proceso. Si todas las particiones estn ocupadas, se debe tomar una decisin de intercambio, para esto se toman en cuenta factores como prioridades y preferencia a descargar procesos bloqueados antes que procesos listos. Desventajas: El nmero de particiones especificadas en el momento de la generacin del sistema limita el nmero de procesos activos (suspendidos) en el sistema. Los trabajos pequeos no hacen un uso eficiente del espacio de las particiones. En la mayora de los casos es una tcnica ineficiente. El uso de las particin esttica es casi nulo hoy en da (OS/MFT Multiprogramacin con un nmero Fijo de Tareas)

Particiones dinmicas

OS/MTV (multiprogramacin con un nmero variable de tareas) es un sistema que utiliza este tipo de tcnica. Con la particin dinmica, las particiones son variables en nmero y longitud. Cuando se carga un proceso en la memoria principal, se le asigna exactamente tanta memoria como necesita y no ms. Esta tcnica produce fragmentacin externa, ya que la memoria externa a todas las particiones se fragmenta cada vez ms. Una tcnica para vencer la fragmentacin externa es la compactacin, de vez en cuando el sistema operativo desplaza los procesos para que estn contiguos, de forma que toda la memoria libre quede junta en un bloque. La dificultad de la compactacin est en que es un procedimiento que consume tiempo del procesador. La compactacin necesita de la capacidad de reubicacin dinmica.

Figura 3.4. Efectos de la particin dinmica

Algoritmo de ubicacin

El diseador del sistema operativo tiene que decidir adecuadamente cmo asignar un proceso a memoria (como llenar los huecos). Los tres algoritmos de ubicacin que se pueden considerar son:

Mejor ajuste (best-fit) Primer ajuste (first-fit) Siguiente ajuste (next-fit)

Todos ellos se limitan a elegir entre los bloques de memoria libres que son mayores o guales que el proceso a cargar. El mejor ajuste Elige el bloque de tamao ms prximo al solicitado. Este algoritmo proporciona los peores resultados, ya que busca el hueco ms pequeo que cumple con los requisitos, garantiza que el fragmento que se deja es lo ms pequeo posible. Aunque cada solicitud de memoria desperdicia siempre la menor cantidad de memoria, el resultado es que la memoria principal se llena rpidamente de bloques muy pequeos como para satisfacer las solicitudes de asignacin de memoria. El primer ajuste Comienza recorriendo la memoria desde el principio y escoge el primer bloque disponible que sea suficientemente grande. Este algoritmo es el ms sencillo y normalmente es tambin el mejor y ms rpido. El siguiente ajuste Recorre la memoria desde el lugar de la ltima ubicacin y elige el siguiente bloque disponible que sea suficientemente grande. Este algoritmo lleva frecuentemente a la asignacin de bloques libres del final de la memoria. El resultado es que el bloque de memoria libre ms grande, que suele aparecer al final del espacio de memoria, se divide rpidamente en fragmentos pequeos por lo que har falta una compactacin ms frecuente.

Un ejemplo de cmo se asigna un bloque de acuerdo a cada uno de los anteriores algoritmos es el siguiente, mostrado en la figura.

Figura 3. 5. Configuracin de memoria antes y despus de asignar un bloque de 16 Mbytes

NOTA: Una direccin lgica es una referencia a una posicin de memoria independientemente de la asignacin actual de datos a la memoria; se debe hacer una traduccin a la direccin fsica antes de poder realizar un acceso a la memoria. Una direccin relativa es un caso particular de direccin lgica, en el cual la direccin se expresa como una posicin relativa a un punto conocido, normalmente el principio del programa. Una direccin fsica o direccin absoluta, es una posicin real en la memoria principal. Reemplazo En un sistema donde se maneja particin dinmica, habr algn momento en el que todos los procesos de la memoria principal estn en estado de bloqueado y la memoria sea insuficiente, incluso tras la compactacin, para un proceso adicional. Para evitar desaprovechar el tiempo del procesador esperando que un proceso se desbloquee, el sistema operativo expulsar uno de los procesos de la memoria principal, para dar lugar a un proceso nuevo o un proceso listo pero suspendido. Por lo tanto el sistema operativo debe elegir qu proceso reemplazar.

Las polticas para reemplazar un proceso es de acuerdo a prioridades, caractersticas del BCP del proceso y el tiempo que lleva en el estado de bloqueado.

Reubicacin Cuando se emplea el esquema de particiones estticas, se puede esperar que un proceso sea asignado siempre a la misma particin. Es decir, la particin que se selecciona cuando se carga un nuevo proceso ser la misma que se emplee siempre para devolver ese proceso a la memoria, tras haber sido sacado. En este caso, se puede emplear un cargador sencillo, cuando el proceso se carga por primera vez, todas las referencias relativas a la memoria en el cdigo se reemplazan por direcciones absolutas de la memoria principal, determinadas por la direccin base del proceso cargado. En el caso de particiones de igual tamao y en el caso de particiones de distinto tamao, un proceso puede ocupar diferentes particiones a lo largo de su vida. Cuando al principio se crea la imagen de un proceso, se cargar en alguna particin de memoria principal. Posteriormente, el proceso puede ser descargado; cuando ms tarde, vuelva a ser cargado, podr asignrsele una particin distinta de la anterior.

Figura 3. 6. Soporte de hardware para la reubicacin.

PAGINACIN Tanto las particiones de tamao fijo como las de tamao variable hacen un uso ineficiente de la memoria, por lo que ahora se plantea una tcnica en la que se divide a la memoria en trozos pequeos(marcos o frames) de tamao fijo y que cada proceso est dividido tambin en pequeos trozos(pginas) de tamao fijo y del mismo tamao que los de la memoria. Por lo tanto, una pgina puede ser asignada aun marco y no necesariamente contiguos. Por lo que, no es suficiente un registro base y ahora se debe mantener una tabla de pginas para cada proceso, esta ltima muestra la posicin del marco de cada pgina del proceso y dentro del programa, cada direccin lgica constar de un nmero de pgina y de un desplazamiento dentro de la pgina. Para aplicar convenientemente este esquema de paginacin, el tamao de la pgina, y el tamao del marco, debe ser de una potencia de 2.

Figura 3.7. Asignacin de pginas de procesos a marcos libres

SEGMENTACIN Otro modo de subdividir el programa es la segmentacin. En este caso, el programa y sus datos asociados se dividen en un conjunto de segmentos. No es necesario que todos los segmentos de todos los programas tengan la misma longitud, aunque existe una longitud mxima de segmento. Como en la paginacin, una direccin lgica segmentada consta de dos partes, en este caso un nmero de segmento y un desplazamiento.

Con este mtodo un programa puede ocupar ms de una particin y stas no tienen porque estar contiguas. La segmentacin elimina la fragmentacin interna, pero sufre de fragmentacin externa, sin embrago, debido a que los procesos se dividen en un conjunto de partes ms pequeas, la fragmentacin externa ser menor.

Un ejemplo de paginacin y fragmentacin es el siguiente:

Figura 3.8. Direcciones lgicas

Figura 3.9. Ejemplo de traduccin de direccin lgica a fsica en paginacin

Figura 3.10. Ejemplo de traduccin de direccin lgica a fsica en segmentacin

Para la traduccin de direcciones hay que dar los siguientes pasos:


Extraer el nmero de segmento de los n bits ms significativos de la direccin lgica. Emplear el nmero de pgina como ndice en la tabla de segmentos del proceso para encontrar la direccin fsica de comienzo de segmento.

Comparar el desplazamiento, expresado por los m bits menos significativos, con la longitud del segmento. Si el desplazamiento es mayor que la longitud, la direccin no es vlida. La direccin fsica buscada es la suma de la direccin fsica del comienzo del segmento ms el desplazamiento.

En el ejemplo se emplea la direccin lgica 0001001011110000, que corresponde al nmero de segmento 1 y desplazamiento 752. Suponiendo que dicho segmento est en la memoria principal y comienza en la direccin fsica 0010000000100000. Entonces la direccin fsica ser 0010000000100000 + 001011110000 = 0010001100010000 A continuacin se muestra una tabla con las caractersticas bsicas de cada tcnica antes descritas.

Tcnica Particin esttica

Particin dinmica

Descripcin La memoria principal se divide en un conjunto de particiones estticas durante la generacin del sistema. Un proceso se puede cargar en una particin de menor o igual tamao. Las particiones se general de manera dinmica, de tal forma que cada proceso se carga en una particin de exactamente el mismo tamao del proceso.

Ventajas Sencilla de implementar; poca sobrecarga del sistema operativo. No hay fragmentacin interna; uso ms eficiente de la memoria principal No fragmentacin externa

Paginacin simple

La memoria se divide en un conjunto de marcos de igual tamao. Cada proceso se divide en una serie de pginas del mismo tamao que los marcos. Un proceso se carga situando todas sus pginas en marcos libres pero no necesariamente contiguos. Segmentacin Cada proceso se divide en una serie de fragmentos. simple Un proceso se carga situando todos sus segmentos en particiones dinmicas que no tienen por qu ser contiguas. Memoria Virtual Como la paginacin simple, excepto que no hace paginada falta cargar todas las pginas de un proceso. Las pginas no residentes que se necesiten se traern ms tarde, de manera automtica. Memoria virtual Como la segmentacin simple, excepto que no segmentada es necesario cargar todos los segmentos de un proceso. Los segmentos no residentes que se necesiten se traern ms tarde de forma automtica.

Desv Empl la m fragm nme Uso proce neces para fragm tiene Hay de fra

No tiene Mejor fragmentacin interna la m sobre ala pa No hay fragmentacin Sobre externa; alto grado de comp multiprogramacin; gran espacio virtual para el proceso. No hay fragmentacin Sobre interna; alto grado de comp multiprogramacin; gran espacio virtual para el proceso; soporte de proteccin y comparticin.

ADMINISTRACIN DE LA MEMORIA VIRTUAL


Se pueden mantener ms procesos en la memoria principal Es posible que un proceso sea ms grande que toda la memoria principal Como los procesos se ejecutan slo en la memoria principal, a esta memoria se le llama memoria real. Pero un programador o usuario percibe en potencia una memoria mucho mayor, ya que est situada en el disco. Esta ltima se conoce como memoria virtual. La memoria virtual permite una multiprogramacin muy efectiva y releva al usuario de las rpidas e innecesarias restricciones de la memoria principal. Estructuras de hardware y de control 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 en la gestin de memoria: 1.- Todas las referencias a la memoria dentro de un proceso de direcciones lgicas que se traducirn dinmicamente a direcciones fsicas durante la ejecucin. Es decir un proceso puede cargarse y descargarse de memoria principal de tal forma que ocupe regiones diferentes de la memoria principal en momentos distintos a lo largo de su ejecucin. 2.- Un proceso puede dividirse en varias partes (pginas o segmentos) y no es necesario que estas partes se encuentren contiguas en la memoria principal durante la ejecucin. Esto es posible por la combinacin de la traduccin dinmica de direcciones en tiempo de ejecucin y el uso de una tabla de pginas y de segmentos. 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. Si tanto el fragmento(pgina o segmento) que contiene la siguiente instruccin a leer como la parte que contiene los prximos datos a acceder est en la memoria principal, la ejecucin podr continuar al menos por un tiempo. En un estado estable, prcticamente toda la memoria principal estar ocupada con fragmentos de procesos, por lo que el procesador y el sistema operativo tendrn acceso directo a la mayor cantidad de procesos posible. Cuando el sistema operativo traiga a la memoria un fragmento, deber expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendr que traer el nuevo fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como Hiperpaginacin (thrashing): el procesador consume ms tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.

Paginacin simple La memoria principal est dividida en trozos pequeos de tamao fijo llamados marcos.

Memoria virtual Segmentacin simple paginada La memoria principal La memoria principal est dividida en no est dividida. trozos pequeos de tamao fijo llamados marcos.

Memoria virtual segmentada La memoria principal no est dividida.

El compilador o el sistema de gestin de memoria dividen los programas en pginas

El compilador o el sistema de gestin de memoria dividen los programas en pginas

Fragmentacin interna en los marcos No hay fragmentacin externa El sistema operativo debe mantener una tabla de pginas para cada proceso, indicando en qu marco est cada pgina. El sistema operativo debe mantener una lista de marcos libres

Fragmentacin interna en los marcos No hay fragmentacin externa El sistema operativo debe mantener una tabla de pginas para cada proceso, indicando en qu marco est cada pgina. El sistema operativo debe mantener una lista de marcos libres

El procesador emplea el nmero de pgina y el desplazamiento para calcular las direcciones absolutas. Todas las pginas de un proceso tienen que estar en la memoria principal para que el proceso se ejecute, a menos que se use superposicin.

El procesador emplea el nmero de pgina y el desplazamiento para calcular las direcciones absolutas. No todas las pginas de un proceso tienen que estar en marcos de la memoria principal para que el proceso se ejecute. Las pginas se pueden leer cuando se necesiten. La carga de una pgina en la memoria principal puede exigir descargar otra en el disco.

El programador especifica al compilador los segmentos del programa (es decir, el programador toma la decisin). No hay fragmentacin interna. Fragmentacin externa. El sistema operativo debe mantener una tabla de segmentos para cada proceso, indicando la direccin de carga y la longitud de cada segmento. El sistema operativo debe mantener una lista de huecos libres en la memoria principal. El procesador emplea el nmero de segmento y el desplazamiento para calcular las direcciones absolutas. Todos los segmentos de un proceso tienen que estar en la memoria principal para que el proceso se ejecute, a menos que se use la superposicin.

El programador especifica al compilador los segmentos del programa (es decir, el programador toma la decisin). No hay fragmentacin interna. Fragmentacin externa. El sistema operativo debe mantener una tabla de segmentos para cada proceso, indicando la direccin de carga y la longitud de cada segmento. El sistema operativo debe mantener una lista de huecos libres en la memoria principal. El procesador emplea el nmero de segmento y el desplazamiento para calcular las direcciones absolutas. No todos los segmentos de un proceso tienen que estar en marcos de memoria principal para que el proceso se ejecute. Los segmentos se pueden leer cuando se necesiten. La carga de un segmento en la memoria principal puede requerir descargar uno o ms segmentos en el disco.

PAGINACIN El trmino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en segmentacin.

a) Slo paginacin

b) Slo segmentacin

c) Segmentacin y paginacin combinadas

P= Bit de Presencia

M= Bit de Modificacin

Figura 3.11. Formatos tpicos de gestin de memoria

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. Puesto que la tabla de pginas es de longitud variable, en funcin del tamao del proceso, no es posible suponer que quepa en registros. En su lugar

debe estar en memoria para ser accesible. 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.

Figura 3.12. Traduccin de direcciones en un sistema de paginacin

En la mayora de los sistemas hay una tabla de pginas por proceso, pero cada proceso puede ocupar una cantidad enorme de memoria virtual, por tanto para solucionar este problema, la mayora de los esquemas de memoria virtual almacenan las tablas de pginas en la memoria virtual en vez de 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. 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 +Y pginas. Normalmente, la longitud mxima de una tabla de pginas est limitada a una pgina. Por ejemplo el procesador Pentium utiliza este mtodo. En la figura siguiente se muestran los pasos necesarios para la traduccin de direcciones

de este esquema. La pgina raz siempre permanece en la memoria principal. Los 10 primeros bits de la direccin virtual se utilizan como ndice en la pgina raz para encontrar un PTE(Entrada a la Tabla de Pginas) para una pgina de la tabla de pginas de usuario. Si esta pgina no est en la memoria principal se produce un fallo de pgina. Si la pgina est en la memoria principal, entonces los siguientes 10 primeros bits de la direccin virtual se utilizan como ndice en la pgina PTE de usuario para encontrar el PTE de la pgina referenciada por la direccin virtual.

Figura 3.13. Traduccin de direcciones en un sistema de paginacin de dos niveles.

Buffer de traduccin adelantada

En principio, cada referencia a la memoria virtual puede generar dos accesos a la memoria: una para obtener la entrada de la tabla de pginas correspondiente 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 Buffer de traduccin adelantada (TLB, translation Lookaside Buffer). Esta cache contiene aquellas entradas de la tabla de pginas usadas hace menos tiempo. 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 la entrada de la tabla de pginas buscada (fallo en la TLB), 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 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. Adems, el procesador actualiza la TLB para agregar esta nueva entrada de la tabla de pginas. Por ltimo, si un 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(fallo de pgina). En este punto, se abandona el mbito del hardware y se invoca al sistema operativo, que carga la pgina necesaria y actualiza la tabla de pginas.

Figura 3.14. Uso de un buffer de traduccin adelantada

Figura 3.15. Funcionamiento de la paginacin con buffer de traduccin adelantada

Figura 3.16. Bsqueda directa y asociativa en entradas de la tabla de pginas.

ALGORITMO DE REEMPLAZO DE PGINAS


Se trata de la seleccin de la pgina a reemplazar en la memoria principal cuando se debe cargar una nueva pgina. Este punto involucra varios conceptos como son:

El nmero de marcos de pgina a asignar a cada proceso activo. Si el conjunto de pginas a considerar para el reemplazo debe limitarse a la 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.

Adems de la estrategia de gestin del conjunto residente, existen ciertos algoritmos bsicos que se emplean para la seleccin de una pgina a reemplazar. Entre las polticas de los algoritmos de reemplazo que se han considerado en la literatura se incluyen las siguientes: ptima: Selecciona para reemplazar la pgina que tiene que esperar una mayor cantidad de tiempo hasta que se produzca la referencia siguiente.

Usada menos reciente(LRU, Least Recently Used): Escoge la pgina que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse es muy probable que siga sin usarse en los prximos ciclos. Necesita de una bsqueda exhaustiva. Primera en entrar, primera en salir (FIFO): Se escoge la pgina que haya entrado primero y est cargada en RAM. Se necesita que en los valores de control segura de un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica de ningn sistema. Es justa e imparcial. Reloj: Requiere asociar un bit adicional a cada marco, denominado bit de uso. Cuando se carga una pgina por primera vez en un marco de memoria, el bit de uso de dicho marco se pone en cero. Cuando se hace referencia a la pgina posteriormente(despus de la referencia que gener el fallo de pgina) el bit de uso se pone a 1. En el ejemplo siguiente se utiliza la poltica ptima. Se presupone una asignacin fija de marcos de tres marcos para el proceso. La ejecucin del proceso hace referencia a cinco pginas distintas. La cadena de referencias a las pginas durante la ejecucin del programa es: 232152453252 lo que significa que la primera referencia es a la pgina 2, la segunda la 3 y as sucesivamente. El algoritmo ptimo produce tres fallos de pgina despus de haber llenado los marcos asignados.

Figura 3.17. Comportamiento de cuatro algoritmos de reemplazo de pginas

También podría gustarte