You are on page 1of 11

Jerarqua de Memoria

Luis Esteban Daz Irarrzabal, Estudiante, Universidad de Tarapac, Sede Esmeralda, Iquique.
SISTEMA OPERATIVO: Un Sistema Operativo (SO) es un conjunto de programas bsicos de un computador, este que provee una interfaz entre los dispositivos hardware y el usuario. MEMORIA: Se refiere a un componente de un equipo computacional, es un dispositivo que retiene informacin o datos por un intervalo de tiempo.

requerida en ese preciso instante de tiempo y dejando solo la requerida en memoria electrnicas, tambin conocidas como memorias voltiles o RAM Random Access Memory -.

JERARQUA DE MEMORIA El ideal para todo sistema informtico sera tener una memoria lo ms rpida que permita el hardware y si nos ponemos en el caso de cuanto ha avanzado la tecnologa quizs podramos estar hablando de velocidades de procesamiento realmente increbles, sistemas operativos corriendo a velocidades inimaginables y todo sera an ms rpido en el mundo en general, pero como todo en la vida, las cosas traen consigo consecuencias de distintos tipos y la realidad es que si se usaran memorias extremadamente rpidas estas seran de pequeos tamaos dado que procesan tan rpido que no necesitan almacenar muchoy proporcionalmente a la velocidad ira el valor de cada una de estas, lo que las convertira en un producto extremadamente difcil de comprar, en base a esto, los sistemas operativos hoy estn pensados para trabajar con memorias de gran velocidad y de un tamao relativamente pequeo de almacenamiento, dando paso a una jerarqua interna de uso como la figura 1.1 donde se permite el intercambio de datos con unidades de memoria permanentes de muy alta capacidad de almacenamiento pero muy baja velocidad, como lo son los discos duros, para descansar informacin que no est siendo

Fig. 1.1 Jerarqua de memoria De la Fig. 1.1 se pueden desprender los siguientes niveles: Nivel 0, Registro, Gestionado por el programador o compilador. Nivel 1, Memoria Cach, Gestionado por el hardware. Nivel 2, Memoria Principal, Gestionado por el sistema operativo. Nivel 3, Discos, Gestionado por el sistema operativo.

Dada la existente jerarqua de memoria esta exige hacer copias de datos desde los niveles ms lentos a los niveles ms rpidos y no es hasta estos niveles cuando la informacin es utilizada (p. Ej.: Si se desea ejecutar un programa se debe leer de disco el fichero ejecutable y almacenarlo en memoria principal, de donde se ir leyendo y ejecutando instruccin a instruccin por la unidad de control). Asimismo, cuando se desea modificar o crear nueva informacin en un nivel rpido y se desea mantener por algn tiempo se debe enviar dichos datos a disco (p. Ej.: Retener toda la informacin contenida en este paper mientras se escribe). Entender la jerarqua de memoria puede

resultar una tarea compleja, se debe tener en cuenta las copias de informacin que estn en cada nivel y realizar las transferencias de datos a los niveles ms rpidos, as como los movimientos a niveles de mayor permanencia en caso de ser necesario. Nada de esto sera posible sin la existencia de un buen manejo por parte del sistema operativo, quien a su vez, utiliza al hardware como pieza fundamental para llevar a cabo esta tarea, sin menoscabo de la memoria virtual, la cual est gestionada en un ciento por ciento por el sistema operativo, este paper explicar el funcionamiento de memoria virtual ms adelante. MIGRACIN DE LA INFORMACIN

Nivel de Memoria

Capacidad

Tiempo de acceso 0,25 a 0,5 ms 0,5 a 20 ns 60 a 200 ns 5 a 30 ms

Tipo de acceso

Registros Cach de memoria principal Memoria Principal Disco

64 a 1024 bytes 8 KB a 8 MB 128 MB a 64 GB 50 MB a 300 GB

Palabra

Palabra

Palabra

Sector

Tabla 1.1 Niveles de accesos de memoria Para poder tener una correcta comprensin sobre el objetivo y funcionamiento de la jerarqua de memoria se debe estar al tanto de los tiempos de acceso as como los tamaos tpicos de cada uno de los niveles, la tabla 1.1 presenta dicha informacin. Si se tiene como referencia el principio de este paper, donde se nombra la utopa en memorias, es fcilmente deducible que el sistema operativo hacer una explotacin de sus recursos en cuanto al uso de memoria, se debe tener toda la informacin en cada instante de tiempo, cada dato debe estar en su adecuado nivel, lo que significa que la informacin debe moverse o en otras palabras, debe migrar de un nivel a otro, esta migracin puede ser bajo una demanda explicita o tambin puede ser de forma automtica. En caso de que transferencia de informacin sea bajo demanda esta debe ser solicitada por el programa (se aplica el ejemplo de escritura del paper), por otra parte la migracin automtica se hace de forma paralela a un programa, sin que este influya en el proceso, la migracin automtica se realiza entre memoria cach y memoria virtual. La migracin automtica utiliza como base la secuencia de direcciones que va generando el procesador a cada instante de tiempo de ejecucin de un programa, sean k y k+1 dos niveles consecutivos de jerarqua, siendo k el ms rpido, gracias a la existencia de la migracin automtica se puede comprobar si existe una copia de respaldo de la informacin guardada en k, en caso de no existir, automticamente se hace un respaldo en el nivel mas lento (k+1), luego al momento de realizar las lecturas se asume como un acierto si esta se hace desde el nivel ms rpido y un fallo si se hace desde el ms lento. Tal como se explico anteriormente, es necesario que la informacin que se est utilizando est en memoria principal y as lograr tiempos de accesos ms altos, de lo contrario no solo estaramos ante un sistema ms lento, si no que tambin estaramos ante un sistema que presenta fallos. Una forma de mantener esta informacin siempre en el nivel correcto se basa en una prediccin terica, la cual utiliza los siguientes aspectos: Tamao de las porciones transferidas. Poltica de extraccin Poltica de reemplazo Poltica de ubicacin

La poltica de extraccin es la encargada de decidir que informacin pasara de un nivel ms lento a uno ms rpido y en que momento lo har, su principal herramienta es la de utilizacin bajo demanda, utilicemos el caso en que yo estoy intentando acceder a un espacio de memoria que est en disco, si hiciramos la lectura desde ah se provoca un fallo, entonces en ese instante de tiempo es la poltica de extraccin la encargada de subir de disco a memoria la informacin y as el sistema sigue funcionando de forma fluida. El problema surge al saber que cantidad de informacin puede ser subida de un nivel a otro, recordemos que en nivel disco hablamos de hasta 300GB en cambio en memoria tenemos un mximo de 64GB (en el mejor de los casos) haciendo simple matemticas podemos notar que no se puede hacer un volcado total desde disco hasta memoria y dado que la diferencia es de mas de 4 veces la memoria principal suele estar llena en todo momento, por esto mismo cuando se sube informacin de nivel se suele borrar algo de el nivel mas rpido para dar espacio a lo que viene migrando, aqu es donde entra la poltica de reemplazo y se encarga de decidir de que tamao ser la informacin a migrar desde el nivel mas lento y como consecuencia eliminar la misma porcin del nivel ms rpido. Pero la poltica de reemplazo no puede borrar cualquier informacin desde memoria principal, de lo contrario podra afectar fuertemente en el rendimiento, por ejemplo no puede borrar la informacin que est siendo requerida en ese instante de tiempo y por mucho que quisiramos mantener el orden de una biblioteca en memoria principal es una idea casi imposible dado el dinamismo con el que se trabaja, entonces la informacin queda esparcida por distintos lugares dentro de la memoria en pequeos trozos referenciados los unos con los otros aqu es donde entra la poltica de ubicacin que permite borrar desde distintos lugares pero siempre la misma informacin seleccionada anteriormente por la poltica de reemplazo, evitando as dejar datos corruptos e inservibles en memoria principal.

PARMETROS CARACTERSTICOS DE LA JERARQUA DE MEMORIA La eficiencia informtica puede ser difcil de definir, aunque dependiendo del enfoque esta puede ser encasillada, en el caso de las memorias la eficiencia puede ser medida por el tiempo que demora las transacciones y cuantas fueron exitosas, en base a esto la eficiencia de la jerarqua de memoria se mide mediante estos dos parmetros: Tasa de aciertos o hit ratio (Hr). Tiempo medio de acceso efectivo (Te)

La tasa de aciertos Hrk (tasa de acierto del nivel k) es la probabilidad de encontrar la informacin solicitada en el nivel correspondiente (recordando que k es el nivel ms rpido). La tasa de fallos Frk es igual a 1Hrk. Se debe considerar que Hrk debe ser de un valor muy alto para que sea considerada como una probabilidad rentable, para determinar este valor se utilizan los siguientes criterios: Tamao de la porcin de informacin que se transfiere al nivel k. Capacidad de almacenamiento del nivel k. Poltica de reemplazo. Poltica de ubicacin. Programa especifico que se est ejecutando (cada programa se comporta de forma nica).

El tiempo medio de acceso efectivo (Te) es un promedio de el tiempo de acierto(Ta), se mide con el tiempo usado para la bsqueda de informacin en el nivel correcto, y penalizacin de fallo (P), cuando se busca debe migrar la informacin de k+1 a k, usando la siguiente formula Te = Ta + (1 Hr) * P.

COHERENCIA Uno de los principales problemas que va generando la jerarqua de memoria y su mtodo de hacer repartir y copiar informacin en distintos niveles de memoria, es saber cual de todas es la que se debe usar, cuando se almacena un trozo de informacin en k se produce una diferencia entre la misma informacin apuntada en k+1, a esto se le llama falta de coherencia, al mismo tiempo se denomina informacin sucia si la informacin fue actualizada en k y no en k+1. Dada la consistencia de la jerarqua de memoria, este tipo de errores adquieren prioridad en ser corregidos, por tanto se hablar de una porcin de cdigo limpia una vez que se haga la copia de k a k+1, en el caso contrario, es decir que se actualice directamente informacin en k+1 y no en k se deben evitar los accesos errneos de informacin, para evitar esto de anula o elimina directamente la informacin almacenada en k+1 (subiendo de nivel una vez que sea solicitada nuevamente), de esta forma se busca que toda la informacin siempre se encuentre en estado de coherencia. La coherencia es an ms sensible cuando se habla de varias memorias en un mismo nivel de acceso, como es el caso de los multiprocesadores, los cuales cuentan con memoria cach para cada procesador, si un procesador N1 escribiera en su memoria cach y esta no fuera accesible desde la memoria cach del procesador N2 y un programa hubiese interactuado con ambos procesadores se producira una incoherencia. Para evitar este tipo de problemas los buses de conexin entre las memorias cach y la memoria principal deben ejecutar un algoritmo conocido como snoop que mantienen la coherencia entre las memorias cach. DIRECCIONAMIENTO La complicada jerarqua de memoria presenta un gran problema, el

direccionamiento. Supongamos que el programa en ejecucin genera la direccin X del dato A, al que se quiere acceder. Esta direccin X esta referida al nivel k+1 pero de desea acceder al dato A en el nivel k, que es ms rpido, para ello se debe conocer la direccin Y que es donde esta el dato A en k por lo que se debe interpretar X en k, este problema, al igual que en la coherencia, suponen grandes retos, usando un supuesto nuevamente, el espacio de almacenamiento de k+1 es de 2 GB, lo que nos exige utilizar direcciones de 31bits y en el nivel k el espacio es de 8 MB lo que nos obliga a usar direcciones de 23 bits, el traductor o interprete debe hacerlo en un universo de dos mil millones de valores de entrada distintos y ocho millones de direcciones finales, ni siquiera numricamente parece una tarea fcil. Naturalmente si se trabajara con estas cifras ralentizara en demasa el trabajo por lo que la solucin fue simplificar la traduccin y de paso sacar provecho a la proximidad espacial, se dividen los mapas de direcciones en k+1 y k en porciones de tamao 2p. El que la porcin tenga tamao 2p permite dividir la direccin en dos partes: los m p bits mas significativos sirven para identificar la porcin, mientras que los p bits menos significativos sirven para especificar el byte o la palabra de la porcin (Fig. 1.2). Dado que al migrar una porcin del nivel k+1 al k se mantienen las posiciones relativas dentro de la misma, el problema de traduccin s reduce a saber donde se coloca la porcin en el espacio k. Suponiendo, que para el ejemplo anterior, que las porciones son de 1 KB (p= 10), el problema de direccionamiento queda dividido por 1024. Pero sigue siendo inviable plantear la traduccin mediante una tabla directa completa, pues seria una tabla de unos dos millones de entrada y con solo 8.192 saludas validas.

P.P.: Palabra en la Porcin LA PROXIMIDAD REFERENCIAL Se entiende por proximidad referencial a la caracterstica que hace viable la jerarqua de memoria, de ah su importancia. En trminos generales la proximidad referencial establece que un programa en ejecucin utiliza una pequea parte de su informacin, es decir solo una porcin de cdigo y datos. Una traza (R) de un programa en ejecucin es la lista ordenada cronolgicamente con las direcciones de memoria que se necesitan para su ejecucin, R se representa as: Re = re(1), re(2), , re(j) Adicionalmente se define una distancia (u, v) entre dos direcciones u y v como la diferencia en valor absoluto | u v |. Las distancia entre dos elementos j y k de una traza R(e), es por tanto, d(re(j), re(k)) = | re(j) re(k) |. Tambin se puede usar la traza E/S para hacer referencia a perifricos de entrada y salida. La proximidad referencial se presenta en dos facetas: la proximidad espacial y la proximidad temporal. La proximidad espacial de una traza postula que hay una alta probabilidad de referenciar direcciones cercanas a las utilizadas ltimamente. Dicho de otra forma: dadas dos referencias re(j) y re(i) prximas en el tiempo (es decir, que i-j sea pequeo), existe una alta probabilidad de que su distancia sea muy pequea tambin, o puesto en otra forma, es muy probable que re(i) se deba ejecutar pronto. Adems como muchos trozos de programas y muchas estructuras de datos se recorren de forma secuencial existe una gran probabilidad de que la referencia siguiente a re(j) coincida con la direccin de memoria siguiente. Este tipo especial de

Fig. 1.2 El uso de porciones de 2p facilita la traduccin de direcciones. DP: Direccin porcin

proximidad espacial recibe el nombre de proximidad secuencial. La proximidad espacial se explica si se tienen en cuenta los siguientes argumentos: los programas son fundamentalmente secuenciales, a excepcin de sus ramificaciones, por lo que su lectura genera referencias consecutivas. La gran mayora de los bucles son muy pequeos, de unas pocas instrucciones maquinas, por lo que su ejecucin genera referencias con distancias pequeas. Las estructuras de datos que se recorren de forma secuencial o con referencias muy prximas son muy frecuentes. Ejemplos son los vectores, listas, pilas, matrices. Adems, las zonas de datos suelen estar agrupadas, de manera que las referencias que se generan suelen estar prximas.

en unas pocas zonas, se denomina conjunto de trabajo a la suma de las zonas que utiliza un programa en un instante de tiempo.

CONCEPTO DE MEMORIA CACH Ya en reiteradas ocasiones se ha mencionado a la memoria cach, pero, que es en realidad memoria cach? El termino cach deriva del verbo francs cachr y significa esconder u ocultar, sabiendo esto es mucho ms fcil comprender que hacer la memoria cach ya que esta memoria no es visible (como lo son las memorias principales o discos) y se trata de una memoria de apoyo a la memoria principal, la memoria cach conserva la informacin utilizada recientemente, a la espera de que quizs vuelva a ser usada en un futuro prximo. La memoria cach permite atender los requisitos del procesador de forma ms rpida que si se tuviera que hacer desde la memoria principal. Existe una constante migracin de datos entre memoria cach y memoria principal, estos bloques de informacin transferidos reciben el nombre de lnea, una lnea est formada por varias palabras (tpicamente de 32 a 128 bytes). El hardware es el encargado de realizar las migraciones desde y hacia la memoria cach, permitiendo velocidades mayores que las tericas. El tiempo de tratamiento de un fallo tiene que ser del mismo orden de tiempo que el acceso a una memoria mas lenta, es decir, de 60 a 200 ns (ver tabla 1.1). En la actualidad, y principalmente por la gran diferencia de velocidad entre memoria cach y memoria principal, se utilizan distintos niveles de memoria cach, acoplando los ms rpidos en el mismo chip que el procesador. Se considera como ejemplo el procesador Itanium 2 processor 6M de Intel, presentado el ao 2004, el cual cuenta con tres niveles de memoria cach, el nivel ms rpido lo formas dos cachs L1 (Level 1, o Nivel 1) de 16 KB cada una, una

Por otro lado la proximidad temporal postula que un programa en ejecucin tiende a volver a referenciar direcciones empleadas en un pasado cercano. Asumiendo que existe una probabilidad muy alta de que la prxima referencia re(j+1) este entre las n referencias anteriores, la proximidad temporal se explica si se tienen en cuenta los siguientes argumentos: Los bucles producen proximidad temporal, adems de proximidad espacial. El uso de datos o parmetros de forma repetitiva produce proximidad temporal. Las llamadas repetidas a subrutinas tambin son muy frecuentes y producen proximidad temporal, esto es muy tpico con las funciones o subrutinas aritmticas, de conversin de cdigo, etc.

La proximidad referencial tiene como resultado que las referencias producidas por la ejecucin de un programa estn agrupadas

para datos y otra para instrucciones, el segundo nivel es una nica memoria L2 de 256 KB, mientras que el tercer nivel L3 es de 6 MB. Se sabe que el procesador trabaja a 1,5 GHz, L1 se accede en un ciclo, mientras que L2 lo hace en 5 ciclos y L3 en 14 ciclos. CONCEPTO DE MEMORIA VIRTUAL Y MEMORIA REAL Una maquina con memoria real es una maquina comn y corriente que solamente utiliza memoria principal para soportar el mapa de memoria. Por el contrario, una maquina con memoria virtual soporta su mapa de memoria mediante dos niveles de jerarqua de memoria: la memoria principal y una memoria de respaldo, usualmente esta memoria de respaldo se realiza en disco, pero est la posibilidad que sea una memoria RAM expandida. La memoria virtual es una proyeccin del mapa de memoria (principal), se le dice virtual para diferenciarlo, cuando el procesador genera accesos los puede realizar en el mapa de memoria virtual, pero en realidad siempre se ha estado comunicando exclusivamente con la memoria principal. La memoria virtual utiliza la migracin automtica gestionada por el sistema operativo, el que a su vez requiere de una pieza de hardware exclusiva para la memoria, el MMU, Memory Management Unit (Unidad de gestin de memoria), tal como muestra la figura 1.3.

Fig. 1.3 Fundamento de la memoria virtual D.V.: Direccin virtual D.F.: Direccin fsica F.P.: Fallo pgina Los principales aspectos en los que se basa la memoria virtual son los siguientes: Las direcciones generadas por las instrucciones maquinas, tanto para referenciar datos como otras instrucciones, estn referidas al espacio virtual, es decir, forman parte del mapa de memoria virtual El mapa virtual asociado a cada programa en ejecucin esta soportado fsicamente por una zona del disco, denominada intercambio o swap, y por la memoria principal, se debe tener en cuenta que toda la informacin del programa debe estar obligatoriamente en algn soporte fsico, ya sea disco o memoria principal. Los trozos de mapa virtual no utilizados por los programas no tienen soporte fsico, es decir no

existe un consumo real de recursos. Aunque el programa genera direcciones virtuales, para que ste puede ejecutar, han de residir en memoria principal las instrucciones y los datos utilizados en cada momento. Los espacios virtual y fsico se dividen en paginas. Se denominan pginas virtuales a las pginas del espacio virtual, pginas de intercambio a las paginas residentes en el disco y marcos de pagina a los espacios en los que se divide la memoria principal. Normalmente, cada marco de pagina puede albergar una pagina virtual cualquiera. Existe una unidad hardware, denominada MMU, que traduce las direcciones virtuales a direcciones de memoria principal. Aplicando lo visto anteriormente, se puede decir que esta traduccin se limita a traducir el numero de pagina virtual en el correspondiente numero de marco de pagina. Debido a que en cada instante de tiempo solo existe un trozo de las paginas del programa, la traduccin no siempre es posible, si se diera el caso que se solicita traducir una palabra que no est en memoria principal la MMU se encargar de generar un fallo denominado excepcin de fallo de pgina. Se le llama conjunto residente al grupo de pginas residentes en marcos de pginas. Cualquier fallo de pgina debe ser advertido y solucionado por el sistema operativo, el cual se encarga de realizar la migracin entre niveles de memoria, este proceso se denomina paginacin. El objetivo de la paginacin es que el conjunto de instrucciones del programa en ejecucin estn en un conjunto residente.

LA TABLA DE PGINAS La tabla de pginas es una estructura de informacin donde se definen qu pginas estn asignadas a un programa en ejecucin, as como su ubicacin fsica. De por si las tablas de pginas suelen ser un tema demasiado complejo existiendo extensos documentos dedicados exclusivamente a este tema, pero en este documento se vern algunos conceptos de aplicacin en general. Puede existir una tabla nica para todos los programas en ejecucin o puede existir una tabla para cada programa, esta ltima es la ms utilizada, el que un programa en ejecucin cuente con un tabla propia se traduce en un espacio virtual propio, no se mezcla con el de otros programas. El tamao de una tabla puede ir desde unos meros bits hasta grandes cantidades de datos como petabits (PB), pero el sistema operativo se encarga de entregar en su justa medida tamaos acordes a los recursos y ajustados a el programa en ejecucin. En base a esto mismo una tabla de pagina ha de ser flexible, permitir una rpida traduccin de palabras y ser compacta. En el caso de que se tuviera una tabla inversa, es decir, ordenada por el marco de pgina sera eficiente en el tamao y permitira una gran flexibilidad pero sera inaceptable desde el punto de vista de velocidad de acceso y aunque existen alternativas para minimizar estos efectos son las tablas directas las ms usadas en la prctica. La figura 1.4 muestra como cada programa tiene una pgina de un nivel, para evitar que la tabla tenga elementos nulos ( que consecuentemente generaran cargas en el tamao), se usa el supuesto de que la memoria asignada es contina.

Fig. 1.4 Tabla de pginas de un nivel y espacio virtual asignado. Cada tabla tiene un elemento por pgina y el nmero de la pgina virtual se utiliza como ndice para ser accedida, adems cada elemento de la tabla tiene un bit para indicar s la pgina est en menora principal y el nmero de marco en el que se encuentra mencionada la pgina. La figura 1.5 muestra como se realizara una traduccin en el caso de tabla de pginas de un nivel, se supone que las pginas son de 1 KB, por lo que los 10 bits inferiores en la direccin virtual sirven para especificar el byte dentro e la pgina, el resto son usados para especificar la pgina virtual.

Fig. 1.5 Ejemplo de traduccin mediante tabla de pginas de un nivel. La pgina virtual es la 5. Entrando en la sexta posicin de la tabla se observa que la pgina est en memoria principal y que est en el marco n 6738. Concatenando el n de marco de los 10 bits inferiores de la direccin virtual se obtiene la direccin de memoria principal donde reside la informacin buscada. Uno de los mayores retos de las tablas de un nivel es su poca flexibilidad, por lo que se hace complicado evitar la existencias de entradas nulas, para solucionar esta problemtica la memoria virtual ha e ser seguida (pero los marcos de pginas han de estar repartidos por toda la memoria principal), sin embargo un programa est compuesto por varios elementos, tales como el propio programa objeto, la pila y los bloques de datos, estos dos ltimos deben poder crecer, por ello un esquema de tabla de nivel obliga a dejar grandes huecos de memoria virtual sin poder utilizar pero que estn utilizando espaci en la tabla y por

consiguiente dicho espacio se pierde. Lo anterior suea muy poco lgico si se trata de aprovechar al mximo los recursos (sobre todo s se considera que estos siempre son limitados) por esto mismo es que se usan esquemas de tablas de pgina de ms de un nivel, la figura 1.6 muestra una tabla de pginas de dos niveles. En este tipo de tablas la memoria asignada cuenta con "regiones de memoria" virtual, cada regin est formada por bytes contiguos, esta forma permite que los tamaos de las regiones sean variables y pueden crecer hasta el lmite de la siguiente regin, de esta forma se evitan los espacios vacos y el desperdicio de recursos. UNIDAD DE GESTIN DE MEMORIA (MMU) Tal como se ha mencionado anteriormente el sistema operativo es el encargado de administrar la memoria pero el sistema operativo es otro programa ms y si bien hoy los computadores permiten realizar tareas en paralelo an existen equipos mono procesadores por lo que es imposible ejecutar el programa de un usuario y el mismo sistema operativo al mismo tiempo, aqu es donde entra el hardware, la unidad de gestin de memoria es la encargada e asumir la administracin en las siguientes tareas: Traduccin de las direcciones. Marcado de pginas como sucias y accedidas. Vigilancia de los accesos para detectar posibles accesos incorrectos.

Fig. 1.6 Tabla de paginas de dos niveles.

La traduccin se lleva a cabo usando informacin de la tabla de paginas del programa en ejecucin y dado que el sistema operativo mantiene una tabla de pginas por cada programa, debe existir un registro para indicar a la MMU la direccin de memoria done se encuentra la tabla que se desea utilizar, dicho puntero solo guarda la informacin del comienzo de la tabla.

Como la tabla de pginas se almacena en memorial principal, en un sistema con tabla de pginas de dos niveles la MMU debe hacer dos accesos a memoria principal por cada traduccin, esto se transforma en un retardo en los accesos de memoria. Para disminuir estos accesos existe la unidad TLB (Translation Look-asise Buffer).

TLB La TLB es una memoria asociativa muy rpida que almacena parejas pgina-marco de las pginas que se han accedido recientemente, transformndose en una especie de cach exclusivo para pginas. En la mayora de los casos la MMU no acceder a la memoria principal, lo har a la TLB, acceder a la memoria principal solo cuando la TLB arroje fallo por esto mismo la velocidad y tasa de aciertos de la TLB debe ser elevada para que las traducciones se realicen en poco tiempo. La MMU soluciona los fallos de la TLB reemplazando la pareja pgina-marco desde la memoria principal hasta la TLB, as se va renovando constantemente la informacin contenida en la TLB.

OPERACIN EN MODO REAL Al arrancar una mquina, no existen tablas ni pginas ni marcos, por lo que bsicamente la MMU no puede funcionar, para evitar este problema la MMU tiene un modo especial llamado real, en la cual se convierte en una especie de pasarela transportando las direcciones recibidas desde el procesador hasta la memoria principal, es decir el equipo funciona como s no tuviese memoria virtual. BIBLIOGRAFA Carretero Prez, Jess. Garca Carbelleira, Flix. De Miguel Anasagasti, Pedro. Prez Costoya, Fernando. 2007. Sistemas Operativos, una visin aplicada. s.L.: McGraw-Hill Interamericana, 9788448165435.

You might also like