Sistemas operativos modernos
sería decir que, cuando se cierre cada archivo en tumo, su valor se enviará al servidor y el re sultado final dependerá de quién cierre al último. Una opción menos atractiva, pero un poco más fácil de implementar, es decir que el resultado final será uno de los candidatos, pero sin especificar cuál. Un enfoque alternativo de la semántica de sesión es usar el modelo de subir/bajar, pero bloquear en forma automática al archivo que se bajó. Si otros clientes intentan bajar el archi vo, no podrán hacerio sino hasta que el primer cliente lo devuelva. Si un archivo es muy soli citado, el servidor podría enviar mensajes al cliente que fiene el archivo, pidiéndole que se apresure, pero no hay garantía de que el cliente hará caso. En general, el problema de encon trar una semánfica de archivos compartidos correcta es complejo y no fiene soluciones elegan tes y eficientes. AFS Se han construido y desplegado varios sistemas de middleware basados en sistemas de archi vos. A confinuación describiremos en forma breve uno de ellos, AFS, que se basa en el mode lo de subir/bajar de la figura 8-34a. En el capítulo 10 estudiaremos uno (NFS) basado en el modelo de acceso remoto de la figura 8-34b. AFS se diseñó e implemento en la Universidad Camegie Mellon (Howard et al., 1988; Mo rris et al., 1986; Satyanarayanan et a i, 1985). En su origen se llamó Andrew File System en honor de los primeros benefactores de la universidad, Andrew Camegie y Andrew Mellon. La meta del proyecto, que se inició a principios de la década de 1980, era proveer a cada estudian te y profesor de CMU con una potente estación de trabajo personal que ejecutara UNIX, pero con un sistema de archivos compartido. En este caso, el sistema de archivos se usaría como middleware para convertir un conjunto de estaciones de trabajo en un sistema coherente. Cada usuario de AFS tiene una estación de trabajo privada que opera con una versión lige ramente modificada de UNIX. Las modificaciones consisten en añadir un fragmento de códi go llamado venus al kemel y en ejecutar un servidor de archivos llamado vice en el espacio de usuario (en un principio, venus también se ejecutaba en el espacio de usuario, pero después se pasó al kernel por motivos de desempeño). Las posiciones de venus y vice se muestran en la figura 8-37a. Las estaciones de trabajo de los usuarios se agrupan en células para fines admi nistrativos. Una célula podría ser una LAN o un conjunto de LANs interconectadas, o incluso todo un departamento académico. El espacio de nombres que los programas de usuario pueden ver semeja un árbol UNIX tra dicional, con la adición de los directorios /cmu y /cache, como se ilustra en la figura 8-37b. El di rectorio /cache contiene archivos remotos que se han colocado en caché. El directorio /cmu contiene los nombres de las células remotas compartidas, bajo los cuales están sus respectivos sistemas de archivos. En efecto, los sistemas de archivos remotos están montados en/cmu. Los de más directorios y archivos son estrictamente locales y no se comparten. Se permiten enlaces sim bólicos de nombres de archivos locales a archivos compartidos, como en el caso de sh de la figura 8-37b. La idea en que se basa AFS es que cada usuario haga lo más que pueda en forma local e interactúe lo menos posible con el resto del sistema. Cuando se abre un archivo, el código ve-
RkJQdWJsaXNoZXIy MjI4NDcx