Sistemas operativos modernos

transacción. Dichos cambios sólo son visibles para otros invocadores una vez que se confirma la transacción. Puede utilizarse un JavaSpace para sincronizar procesos comunicantes. Por ejemplo, en una situación de productor-consumidor, el productor coloca cosas en un JavaSpace a medida que las produce. El consumidor las saca con take, y se bloquea si no están disponibles. Java­ Space garantiza que todos los métodos se ejecutan en forma atómica, así que no hay peligro de que un proceso trate de leer una entrada que todavía no termina de escribirse. 8.4 INVESTIGACION SOBRE SISTEMAS CON MÚLTIPLES PROCESADORES En este capítulo examinamos tres fipos de sistemas con múltiples procesadores: multiprocesa­ dores, multicomputadoras y sistemas distribuidos. Demos un vistazo también a las investiga­ ciones en estos tres campos. Casi todas las investigaciones sobre multiprocesadores tienen que ver con el hardware; en particular, cómo construir la memoria compartida y mantener su cohe­ rencia. Sin embargo, también se ha investigado el uso de monitores de máquina virtual en mul­ tiprocesadores (Bugnion et al., 1997) y la administración de recursos en multiprocesadores (Govil et a i, 1999). La calendarización de subprocesos también es importante, desde el punto de vista del algoritmo de calendarización (Arora et al., 1998; Philbin et a i, 1996) y también desde la perspectiva de la competencia por la cola de ejecución (Dandamudi, 1997). Las multicomputadoras son mucho más fáciles de construir que los multiprocesadores. Lo único que se necesita es un conjunto de computadoras personales o estaciones de trabajo y una red de alta velocidad. Por este motivo, son un tema de investigación muy popular en las uni­ versidades. Una buena parte de los trabajos tiene que ver con la memoria compartida, distribui­ da en una forma u otra, a veces basada en páginas pero otras veces por completo en software (Cárter et a i, 1995; Feeley et al., 1995; Johnson et al., 1995; Itzkovitz y Schuster, 1999; Sca- les y Gharachorloo, 1997, y Stets et al., 1997). La optimización de la comunicación en el ni­ vel de usuario también es un tema de investigación (Von Eicken et al., 1995), lo mismo que el balanceo de la carga (Harchol-Balter y Downey, 1996). También hay muchos trabajos sobre sistemas distribuidos, por ejemplo sobre middleware (Bernstein, 1996), objetos (Dogac eííí/., 1998), sistemas inalámbricos (Liu etah, 1996), agen­ tes móviles (Chen et a i, 2000), entornos de programación (Jo, 1999), multimedia distribuida (Mourlas, 2000), teoría (Buchs y Guelfi, 2000) y cachés de Web (Wolman et al., 1999), entre otros. Los sistemas de archivos distribuidos (Alexandrov et al., 1998; Hartman y Ousterhout, 1995; Thekkath et al., 1997) y los sistemas de archivos móviles (Segarra y Andri, 1999) tam­ bién son populares. 8.5 RESUMEN La velocidad y confiabilidad de los sistemas de computación puede mejorarse utilizando múl­ tiples CPUs. Tres organizaciones para los sistemas de múltiples CPUs son los multiprocesado-

RkJQdWJsaXNoZXIy MjI4NDcx