Está en la página 1de 7

El buffer de traduccin: Las tablas de pginas en casi todos los sistemas de paginacin se mantiene en la memoria, por ejemplo una

instruccin que copia un registro en otro, el cual sin paginacin solo viene referenciado por la memoria para traer la instruccin, pero si hay paginacin se requieren referencias adicionales para tener acceso a la tabla de pginas. Sabiendo que la velocidad de procesamiento de informacin est limitada por la velocidad con la CPU puede sacar dichas instrucciones y datos de la memoria, se estaran haciendo dos referencias a la memoria y luego a la tabla de pginas, por cada referencia a la memoria se reduce el procesamiento en 2/3, si as fuera nadie usara paginacin. Los programas tienden a hacer un gran nmero de referencias a un nmero pequeo de pginas, y no al revs. Por tanto solo una pequea fraccin de las entradas de la tabla de pginas se lee mucho; el resto casi no se usa. La solucin descubierta a este problema consiste en equipar a las computadoras con un pequeo dispositivo de hardware que traduce direcciones virtuales a direcciones fsicas, sin pasar por la tabla de pginas. Este dispositivo es llamado buffer de consulta para traduccin (TLB; translation lookaside buffer), tambin conocido como memoria asociativa.) Por lo regular esta en el interior de la MMU (Unidad de Manejo de Memoria) y consiste en un gran nmero pequeo de entradas, ocho por ejemplo pero no muy pocas veces ms de 64. Cada entrada contiene informacin sobre una pgina, incluido el nmero de pgina virtual, un bit que se establece cuando la pgina se modifica, el cdigo de proteccin (permisos para leer/escribir /ejecutar) y el marco de pagina fsico en el que esta la pagina. Estos campos tienen una correspondencia uno a uno con los campos de la tabla de paginas. Otro bit indica si la entrada es valida (si se usa o no).

Valida 1 1 1 1 1 1 1 1

Pagina virtual 140 20 130 129 19 21 860 861

Modificada 1 0 1 1 0 0 1 1

Proteccion RW RX RW RW RX RX RW RW

Marco de pagina 31 38 29 62 50 45 14 75

Un ejemplo

que puede generar el TLB de esta figura es un proceso que esta ejecutando un ciclo que abarca las paginas virtuales 19,20,21, por lo que estas entradas del TLB tienen cdigos de proteccin para leer y ejecutar. Los principales datos usados estn en las paginas 129 y 130. La pagina 140 contiene los ndices que se usan en los clculos del arreglo. Por ultimo la pila esta en las paginas 860 y 861.

Funcionamiento del TLB


Cuando se presenta una direccin virtual a la MMU para que la traduzca, el hardware verifica primero si su numero de pagina virtual esta presente en el TLB o no, comparndolo con todas las entradas de manera simultanea (es decir, en paralelo). Si encuentra el numero y cumple al no violar los bits de proteccin, el numero de marco de pagina se toma directo del TLB, pero la instruccin , sin usar la tabla de paginas. Si el numero de pagina esta presente en el TLB pero la instruccin trata de escribir en un pagina de solo lectur, producir un fallo de proteccin, igual que se generara a partir de una entrada en la tabla de paginas. Pero cuando el numero de pagina virtual no esta en el TLB. La MMU detecta esto y realiza una consulta ordinaria de la tabla de paginas. Luego desaloja una de las entradas del TLB, y la sustituye por la entrada de tabla de paginas que acaba de buscar que acaba de

buscar. De este modo, si la pagina en cuestin e vuelve a usar pronto, la segunda vez si se hallara en el TLB, el bit modificado se copia de nuevo en la entrada correspondiente de la tabla de paginas en la memoria. Los dems valores ya estn ah. Cuando el TLB, se encarga de la tabla de paginas, todos los campos que se toman de la memoria. El buffer de traduccin (TLB) es una arreglo de hardware de memoria asociativa usado por el procesador para acelerar el acceso a la memoria. Conforme el administrador de la mquina virtual trae las paginas a la memoria, les crea entradas en el (TLB). Si una direccin virtual no est en el TLB, puede aun estar en la memoria. Contiene partes de la tabla de paginacin, es decir, relaciones entre direcciones virtuales y reales. Posee un nmero fijo de entradas y se utiliza para obtener la traduccin rpida de direcciones. Puede residir entre la CPU y la cach de la misma o entre esta cach y la unidad de memoria primaria. Si un acierto de TLB requiere 1 ciclo de reloj, un fallo requiere 30 ciclos, y siendo el ratio de fallos 1%, el ratio de ciclos de memoria efectiva es una media de ciclos de reloj por acceso a memoria. En pocas palabras el buffer de traduccin de instrucciones o Translation Lookaside Buffer (TLB), es un cach de CPU que emplea el hardware de administracin de memoria (MMU) para mejorar la velocidad de traduccin de direcciones virtuales. Dada una direccin virtual, el procesador examina el bfer TLB: Si se encuentra la entrada de la tabla de pgina (hit), se lee el nmero del marco y se forma la direccin real. Si no se encuentra la entrada de la tabla de pgina (miss), el nmero de la pgina se usa como ndice en la tabla de pgina del proceso. El TLB contiene las entradas de tablas de pgina que han sido usadas ms recientemente.

Fallo

En las arquitecturas modernas se pueden observar dos mtodos de tratar un fallo de TLB.

Con el manejo hardware del TLB, la propia CPU comprueba las tablas de paginacin para ver si hay alguna entrada vlida para la direccin virtual especificada. Si la entrada existe, se lleva a la TLB y se reintenta el acceso; esta vez el acceso ser un acierto, y el programa podr proceder con normalidad. Si la CPU no encuentra una entrada vlida para la direccin virtual en las tablas de pgina, se genera una excepcin de fallo de pgina, la cual deber manejar el sistema operativo. El manejo de los fallos de pgina normalmente implica llevar los datos pedidos a la memoria fsica, generando una entrada en la tabla de paginacin para mapear la direccin virtual que faltaba para corregir la direccin fsica, y reiniciar el programa.

Con el manejo software de las TLB, un fallo genera una excepcin "fallo de TLB", y el sistema operativo debe acceder a las tablas de paginacin y realizar la traduccin por software. Entonces, el sistema operativo carga la traduccin en el TLB y reinicia el programa desde la instruccin que caus el fallo. Como en el sistema de manejo hardware, si el SO no encuentra una traduccin vlida en las tablas, ocurre un fallo de pgina y el SO deber manejarlo de la manera correspondiente.

Actualmente lo mayora de los procesadores de computadoras (como x86) utilizan un TLB para mapear espacios de direcciones fsicas y virtuales.

http://es.wikipedia.org/wiki/Translation_Lookaside_Buffer http://es.wikipedia.org/wiki/Memoria_virtual http://www.alegsa.com.ar/Dic/translation%20lookaside%20buffer.php Tanenbaum Andrew - Sistemas Operativos Modernos*

Hiperpaginacin Si se produce una falta de pagina en nuestro Sistema, cualquiera de los algortimos analizados puede ayudar, con mayor o menor efectividad, a seleccionar la pagina a sustituir. El sistema debe asegurar, a todo proceso, un numero minimo de paginas en memoria , marcado por la instruccin mas exigente de entre el juego de instrucciones de maquinas suyas. Se puede definir como un minimo estructural impuesto por la arquitectura del ordenador. Si, por cualquier razn (sustitucin de paginas, procesos prioritarios,etc) un proceso queda con menos marcos de los indicados por dicho minimo el sistema deber suspenderlo. No obstante, cualquier proceso en un momento dado utilizara activamente un numero mayor de paginas. Suponiendo que, por su prioridad u otra razn, no pueda recurrir a robarle marcos a otros procesos, deber sustituir una de sus paginas activas provocando casi inmediatamente otra falta de pagina, y asi sucesivamente entrando en una situacin de hiperpaginacion o trashing en el cual consume mas tiempo paginndose que procesndose. Esto debido a tantos procesos que requieran mas y mas paginas sin tener fin por lo cual siempre se estarn sustituyen y faltando en mas corto tiempo, esto se puede evitar si se reduce la multiprogramacin. Si un proceso aumenta su necesidades de memoria, provocara faltas de paginas que sern atendidas por el sistema, sustituyendo paginas de otros procesos. Estos ltimos necesitaranposteriormente dichas paginas y producirn nuevas faltas, sustituyendo de los otros procesos,etc. todos quedaran a la espera de las operaciones de E/S necesarias en los dispositivos de paginacin (discos, tambores, etc), por lo cual decrecer la utilizacin del procesador. El sistema detecta esta menor utilizacin e inicia nuevos procesos que necesitaran sustituir paginas ajenas aadindose a la cola de espera, baja la

utilizacin del procesador e inician nuevos procesos y el sistema entra en HIPERPAGINACION. http://books.google.com.mx/books?id=3Hb6f3gyCxUC&pg=PA108&dq =hiperpaginacion+sistemas+operativos&hl=en&sa=X&ei=4P6ST_mYN Kfi2QXInu2PBQ&redir_esc=y#v=onepage&q=hiperpaginacion%20siste mas%20operativos&f=false http://books.google.com.mx/books?id=LY2P_VSuZ3cC&pg=PA300&dq =hiperpaginacion+sistemas+operativos&hl=en&sa=X&ei=fPeST_7MK MPq2QX9lf2UBQ&redir_esc=y#v=onepage&q=hiperpaginacion%20sis temas%20operativos&f=false