Sistemas operativos modernos

Cliente 1 Uniprocesador 1, Escribir “c" (a) Figura 8-36. a) Consistencia secuencial. b) En un sistema distribuido con cachés, la lectura de un archivo podría devolver un valor obsoleto. en sus cachés privados. Sin embargo, si el cliente 1 modifica un archivo que puso en su caché local y poco después el cliente 2 lee ese archivo del servidor, el segundo cliente obtendrá una copia obsoleta, como se ilustra en la figura 8-36b. Una forma de resolver este problema es propagar de inmediato al servidor todos los cam­ bios efectuados a archivos que estén en cachés. Aunque este enfoque es sencillo desde el punto de vista conceptual, resulta poco eficiente. Una solución alterna sería relajar la semántica del compartimiento de archivos. En vez de exigir que un read perciba los efectos de todos los wri­ te anteriores, puede decretarse una nueva regla que diga: “Los cambios efectuados a un archivo abierto sólo son visibles al principio para el proceso que los efectuó. Es preciso cerrar el archi­ vo para que los cambios sean visibles para los demás procesos.” La adopción de semejante re­ gla no cambia lo que sucede en la figura 8-36b, pero sí redefine el comportamiento real (que B obtenga el valor original del archivo) como un comportamiento correcto. Cuando el cliente l cierre el archivo, enviará una copia al servidor, y las lecturas subsiguientes obtendrán el nuevo valor, como se estipula. En realidad, éste es el sistema de subir/bajar de la figura 8-34. Esta re­ gla de semántica se implementa en forma amplia y se conoce como semántica de sesión. El uso de una semánfica de sesión hace surgir la pregunta de qué sucede si dos o más clien­ tes fienen al mismo fiempo en caché el mismo archivo y lo están modificando. Una solución

RkJQdWJsaXNoZXIy MjI4NDcx