Sistemas operativos modernos

ca conforme es necesario. Puesto que no siempre es posible prever cuáles páginas serán escri- bibles, en muchos sistemas DSM, cuando un proceso trata de leer una página remota, se hace una copia local y ambas copias se configuran en sus respectivas MMU como de sólo lectura. Mientras todas las referencias sean lecturas, todo marchará bien. Sin embargo, si algún proceso trata de escribir en una página replicada, surge un problema potencial de consistencia porque no es aceptable modificar una copia y dejar las demás como estaban. Esta situación es análoga a la que se presenta en un multiprocesador cuando una CPU intenta modificar una palabra que está presente en múlfiples cachés. La solución en ese caso era que la CPU, antes de efectuar la escritura, enviara una señal por el bus pidiendo a todas las demás CPUs desechar su copia del bloque de caché. Los sistemas DSM por lo regular funcio­ nan de la misma manera. Antes que pueda escribirse una página compartida, debe enviarse un mensaje a todas las demás CPUs que tengan una copia de la página, diciéndoles que desma- peen y desechen la página. Cuando todas hayan contestado que terminaron de desmapear, la CPU original podrá efectuar la escritura. También es posible tolerar múlfiples copias de páginas escribibles en ciertas circunstancias cuidadosamente restringidas. Una posibilidad es permifir que un proceso adquiera un bloqueo para una porción del espacio de direcciones virtual, y luego efectuar múlfiples operaciones de lectura y escritura con la memoria bloqueada. Cuando se quite el bloqueo, los cambios podrán propagarse a otras copias. En tanto sólo una CPU pueda bloquear a una página en un momen­ to dado, este esquema mantendrá la consistencia. Como alternafiva, cuando una página potencialmente escribible se escribe en realidad por primera vez, se crea una copia fimpia y se guarda en la CPU que está realizando la escritura. Es posible obtener bloqueos para la página, actualizarla y liberar dichos bloqueos. Más tarde, cuando un proceso de una máquina remota trate de obtener un bloqueo para la página, la CPU que la escribió antes comparará el estado actual de la página con la copia limpia y creará un mensaje enumerando todas las palabras que han cambiado. Esta Usta se envía entonces a la CPU que desea adquirir el bloqueo para que pueda actualizar su copia en lugar de anular su va­ lidez (Keleher et a i, 1994). 8.2.6 Calendarización de multicomputadoras En un mulfiprocesador, todos los procesos residen en la misma memoria. Cuando una CPU ter­ mina su tarea actual, escoge un proceso y lo ejecuta. En principio, todos los procesos son can­ didatos potenciales. En una mulficomputadora la situación es muy disfinta. Cada nodo fiene su propia memoria y su propio conjunto de procesos. La CPU 1 no puede decidir de repente eje­ cutar un proceso situado en el nodo 4 sin realizar primero una cantidad considerable de trámi­ tes para conseguirlo. Esta diferencia implica que la calendarización en las multicomputadoras es más fácil, pero la asignación de procesos a nodos es más importante. A continuación estu­ diaremos estas cuestiones. La calendarización de mulficomputadoras es un tanto similar a la calendarización de mul­ fiprocesadores, pero no todos los algoritmos de la primera se pueden aplicar a la segunda. Sin embargo, el algoritmo de multiprocesador más simple—mantener una sola lista central de pro

RkJQdWJsaXNoZXIy MjI4NDcx