Sistemas operativos modernos

4.3.3 Búferes de consulta para traducción En casi todos los esquemas de paginación, las tablas de páginas se mantienen en la memoria, debido a su gran tamaño. Este diseño podría tener un impacto enorme en el desempeño. Por ejemplo, consideremos una instrucción que copia un registro en otro. Si no hay paginación, la instrucción sólo efectúa una referencia a la memoria, para traer la instrucción. Si hay pagina­ ción, se requerirán referencias adicionales a la memoria para tener acceso a la tabla de pági­ nas. Puesto que la velocidad de ejecución por lo general está limitada por la velocidad con que la CPU puede sacar instrucciones y datos de la memoria, tener que hacer dos referencias a la tabla de páginas por cada referencia a la memoria reduce el desempeño en 2/3. En tales condi­ ciones, nadie usaría paginación. Los diseñadores de computadoras han estado conscientes de este problema desde hace años, y han ideado una solución basada en la observación de que los programas tienden a hacer un gran número de referencias a un número pequeño de páginas, y no al revés. Por lo tanto, sólo una fracción pequeña de las entradas de la tabla de páginas se lee mucho; el resto casi no se usa. La solución que se halló consiste en equipar las computadoras con un pequeño dispositivo de hardware que traduce direcciones virtuales a direcciones físicas, sin pasar por la tabla de pá­ ginas. Este dispositivo, llamado búfer de consulta para traducción (TLB; translation looka- side buffer), también conocido como memoria asociativa, se ilustra en la figura 4-14. Por lo regular está en el interior de la MMU y consiste en un número pequeño de entradas, ocho en el ejemplo, pero casi nunca más de 64. Cada entrada contiene información sobre una página, incluido el número de página virtual, un bit que se establece cuando la página se modifica, el código de protección (permisos para leer/escribir/ejecutar) y el marco de página físico en el que está la página. Estos campos fienen una correspondencia uno a uno con los campos de la tabla de páginas. Otro bit indica si la entrada es válida (o sea, si se está usando) o no. Válida Página virtual Modificada Protección Marco de página 1 140 1 RW 31 1 20 0 R X 38 1 130 1 RW 29 1 129 1 RW 62 1 19 0 R X 50 1 21 0 R X 45 1 860 1 RW 14 1 861 1 RW 75 Figura 4-14. Un TLB para acelerar la paginación. Un ejemplo que podría generar el TLB de la figura 4-14 es un proceso que está ejecutando un ciclo que abarca las páginas virtuales 19, 20 y 21, por lo que estas entradas del TLB tienen có

RkJQdWJsaXNoZXIy MjI4NDcx