LOCUS es un sistema operativo distribuido descontinuado desarrollado en UCLA durante la década de 1980. Fue notable por proporcionar una implementación temprana de la idea de imagen de un solo sistema , donde un grupo de máquinas parecía ser una máquina más grande. [1]
Desarrollador | UCLA |
---|---|
Familia OS | Unix |
Estado de trabajo | Histórico |
Modelo fuente | Fuente cerrada |
Tipo de grano | Núcleo monolítico |
Licencia | Propiedad |
El deseo de comercializar las tecnologías desarrolladas para LOCUS inspiró la creación de Locus Computing Corporation, que pasó a incluir ideas de LOCUS en varios productos, incluido OSF / 1 AD y, finalmente, el producto SCO - Tandem UnixWare NonStop Clusters .
Descripción
El sistema LOCUS fue creado en UCLA entre 1980 y 1983, la implementación inicial fue en un clúster de PDP-11 /45 usando redes de anillo de 1 y 10 megabit , en 1983 el sistema se estaba ejecutando en 17 VAX-11/750 usando una Ethernet de 10 megabit . El sistema era compatible con Unix y proporcionaba una vista de raíz única del sistema de archivos y un espacio de proceso unificado en todos los nodos.
El desarrollo de LOCUS fue apoyado por un contrato de investigación ARPA , DSS-MDA-903-82-C-0189.
Sistema de archivos
Con el fin de permitir un acceso rápido y confiable al sistema de archivos de todo el clúster, LOCUS utilizó la replicación , los datos de los archivos podrían almacenarse en más de un nodo y LOCUS mantendría las diversas copias actualizadas. Esto proporcionó tiempos de acceso particularmente buenos para los archivos que se leían con más frecuencia de la que se escribían, el caso normal de los directorios, por ejemplo.
Con el fin de garantizar que todo el acceso se realizó a la versión más reciente de cualquier archivo, LOCUS nominaría un nodo como el "sitio de sincronización actual" (CSS) para un sistema de archivos en particular. Todos los accesos a los archivos de un sistema de archivos deberían coordinarse con el CSS adecuado.
Archivos dependientes del nodo
Al igual que con otros sistemas SSI , LOCUS a veces encontró necesario romper la ilusión de un solo sistema, en particular para permitir que algunos archivos fueran diferentes por nodo. Por ejemplo, fue posible construir un clúster LOCUS que contenga máquinas PDP-11/45 y VAX 750, pero los conjuntos de instrucciones utilizados no eran idénticos, por lo que se necesitarían dos versiones de cada programa objeto [nota 1]
La solución fue reemplazar los archivos que debían ser diferentes por nodo por directorios ocultos especiales. Estos directorios contendrían las diferentes versiones del archivo. Cuando un usuario accede a uno de estos directorios ocultos, el sistema verifica el contexto del usuario y abre el archivo apropiado.
Por ejemplo, si el usuario estaba ejecutando uno de los PDP-11/45 y escribió el comando /bin/who
, el sistema encontraría que en /bin/who
realidad era un directorio oculto y ejecutaría el comando /bin/who/45
. Otro usuario en un nodo VAX que escribió /bin/who
ejecutaría el comando /bin/who/vax
.
Dispositivos
LOCUS proporcionó acceso remoto a dispositivos de E / S.
Procesos
LOCUS proporcionó un único espacio de proceso. Los procesos se pueden crear en cualquier nodo del sistema. Tanto la bifurcación de Unix como las llamadas ejecutivas examinarían una lista de consejos que determinaba en qué nodo se ejecutaría el proceso. LOCUS fue diseñado para trabajar con nodos heterogéneos (por ejemplo, una combinación de VAX 750 y PDP 11/45) y podría decidir ejecutar un proceso en un nodo diferente si necesitaba un conjunto de instrucciones en particular. Como optimización, se agregó una llamada de ejecución que era equivalente a una combinación de fork y exec, evitando así la sobrecarga de copiar la imagen de la memoria del proceso a otro nodo antes de sobrescribirla con la nueva imagen. [nota 2]
Tubería
Los procesos pueden utilizar conductos para la comunicación entre nodos, incluidos conductos con nombre ,
Fraccionamiento
El sistema LOCUS fue diseñado para poder hacer frente a la partición de la red : uno o más nodos se desconectan del resto del sistema. A medida que se replicaba el sistema de archivos, los nodos desconectados podían seguir accediendo a los archivos. Cuando se volvieran a conectar los nodos, los archivos modificados por los nodos desconectados se fusionarían de nuevo en el sistema. Para algunos tipos de archivos (por ejemplo, buzones de correo), el sistema realizaría la fusión automáticamente, para otros se informaría al usuario (por correo) y se proporcionarían herramientas para permitir el acceso a las diferentes versiones del archivo.
Notas
Referencias
- ^ Walker, Bruce (1983). "El sistema operativo distribuido LOCUS" (PDF) . doi : 10.1145 / 800217.806615 .