Sistemas operativos modernos
Al presentar estos problemas no estamos sugiriendo que RPC no tiene remedio. De hecho, se utiliza ampliamente, pero hay que respetar algunas restricciones y tener cuidado para que funcione bien en la práctica. 8.2.5 Memoria compartida distribuida Aunque RFC tiene cierto atractivo, muchos programadores siguen prefiriendo los modelos de memoria compartida y les gustaría seguirlos usando, incluso en una multicomputadora. Por sorprendente que parezca, es posible mantener una ilusión convincente de memoria comparti da, aunque no exista en realidad, empleando una técnica llamada memoria compartida dis tribuida (DSM; Distributed Shared Memory) (Li, 1986; Li y Hudak, 1989). Con DSM, cada página está en una de las memorias de la figura 8-1. Cada página tiene su propia memoria vir tual y sus propias tablas de páginas. Cuando una CPU ejecuta LOAD o STORE sobre una pá gina que no posee, se efectúa un salto hacia el sistema operativo. A continuación, éste localiza la página y pide a la CPU que la fiene en ese momento que anule la correspondencia entre la página y su memoria y envíe la página por la red de interconexión. Cuando llegue, la página se mapea y se reinicia la instrucción que causó el fallo. En realidad, el sistema operativo tan sólo está manejando los fallos de página, trayendo la página desde una RAM remota, en lugar de traerla desde un disco local. Para el usuario, parece como si la máquina tuviera memoria com partida. La diferencia entre una memoria compartida real y DSM se ilustra en la figura 8-22. En la figura 8 - 22 a se muestra un verdadero multiprocesador con memoria compartida física imple- mentada por el hardware. En la figura 8-22b se exhibe DSM, implementada por el sistema ope rativo. En la figura 8-22c vemos una tercera forma de memoria compartida, implementada por niveles aún más altos de software. Volveremos a esta tercera opción en una sección posterior del capítulo, pero por ahora nos concentraremos en DSM. Ahora veamos con cierto nivel de detalle cómo funciona DSM. En un sistema con DSM, el espacio de direcciones se divide en páginas, las cuales se reparten entre todos los nodos del sistema. Cuando una CPU hace referencia a una dirección que no es local, hay una interrup ción de sistema, y el software de DSM trae la página que contiene la dirección y reinicia la ins trucción que generó el fallo, la cual ahora sí logra terminar de ejecutarse. Este concepto se ilustra en la figura 8-23a con un espacio de direcciones de 16 páginas y cuatro nodos, cada uno de los cuales puede contener cuatro páginas. En este ejemplo, si la CPU Ohace referencia a instrucciones o datos en las páginas O, 2, 5 0 9, las referencias se efectúan en forma local. Las referencias a otras páginas causan interrup ciones de sistema. Por ejemplo, una referencia a una dirección en la página 10 causará un sal to (por interrupción de sistema) al software de DSM, que entonces pasará la página 10 del nodo 1 al nodo O, como se muestra en la figura 8-23b. Replícación Una modificación del sistema básico, la cual puede mejorar en forma considerable el desem peño, consiste en reproducir o replicar páginas que son de sólo lectura, como el texto de los
RkJQdWJsaXNoZXIy MjI4NDcx