FANDOM



El sistema operativo Amoeba se originó en la universidad Vrije Universiteit, de Holanda en 1981, como un proyecto de investigación del computo distribuido y paralelo. En principio fue diseñado por Andrew S. Tanenmbaun y tres de sus estudiantes de doctorado. Lo novedoso de éste Sistema Operativo es que el proyecto partió de un plan totalmente limpio, a diferencia de otros proyectos de investigación de S.O. distribuidos que lo que hacián es partir de un S.O. existente le añadían uso de redes y un sistema compartido de archivos. Partiendo de 0 desarrolló un sistema nuevo cuyo propósito era experimentar con nuevas ideas sin tener que preocuparse pos la compatibilidad hacia atrás como por ejemplo hace Windows 95.

Uno de los objetivos principales era construir un sistema operativo distribuido y transparente, y otro era el de proporcionar un colchón de prueba para la realización de una programación distribuida y paralela.

Existen varias características que diferencian totalmente a Amoeba de los demás sistemas operativos, como he dicho antes Amoeba es un sistema distribuido y por tanto en Amoeba no existe el concepto de "máquina origen". El Shell inicial se ejecuta en cierta máquina arbitraria pero los comandos en general no se ejecutan en la misma máquina que el Shell, en lugar de esto el sistema busca automaticamente la máquina con menor carga para ejecutar cada nuevo comando. Otra de las características que lo diferencian es que todos los recursos pertenecen al Sistema, no son de usuarios específicos.

Éste sistema operativo esta basado en el modelo cliente servidor en el cual los clientes (procesos de usuario) realizan llamadas a los servidores para que les proporcionen lo pedido. Estos servidores son utilizados para gestionas los objetos ya que en Amoeba todo esta considerado como un objeto que tiene predefinido una serie de operaciones que se realizan sobre él. Se trata como objeto a los procesos, las CPU, los archivos, los directorios, los discos, etc. y por tanto existen servidores que se encargan de gestionar todo esto.

Además del concepto de Proceso amoeba soporta varios hilos de control dentro de un mismo proceso. Estos hilos de control se encuentran dentro de un mismo espacio de memoria pero poseen su propia pila. Un proceso con un sólo hilo es igual que un proceso en Minix o Linux , aunque en Amoeba los procesos se crean de forma distinta a Minix y Linux. Amoeba permite crear un proceso nuevo específico donde la imagen de memoria comience al principo, pero los procesos pueden ejecutarse en paralelo. Las llamadas para la gestión de procesos más importantes son EXEC que realiza un RPC al servidor de procesos específico, GETLOAD que regresa información sobre la velocidad de la CPU y STUM que permite que un hijo bloquee la ejecución del proceso padre.

La gestión del sistema de archivos en Amoeba la lleva a cabo el servidor de archivos que soporta las ordenes más comunes para los archivos pero a diferencia de otros los archivos en Amoeba son inmutables y estos a su vez puede estar comprometidos o no. Los archivos comprometidos no pueden ser modificados. Por otro lado tenemos el servidor de directorios el cual como función principal tiene la de proporcionar una asociación entre los nombres legibles para nosotros (código ASCII) y las posibilidades. Una de las llamadas más comunes que se utilizan de este servidor es una que regresa el conjunto de posibilidades que corresponden a un nombre en concreto. Para poder realizar copias de los objetos que proporciona el servidor de directorios se utiliza el servidor de réplicas. Este servidor además de utilizarse para la función anterior permite también comprobar los objetos que son útiles mediante la llamada TOUCH.

Existen varios modos de comunicación en Amoeba y por cada uno de ellos existe un servidor que se encarga de gestionarlos.

La primera de ellas es las llamadas a procedimiento remoto RPC. Para realizar este tipo de comunicación el servidor de RPC utiliza tres llamadas principalmente que son GET_REQUEST, PUT_REPLY y TRANS que permite la comunicación entre clientes y servidores.

La segunda forma de comunicación en Amoeba es la comunicación en grupo y las llamadas que proporciona para este tipo de comunicación nos permiten crear nuevos grupos, unir procesos a grupos existentes, enviar información a grupos y una serie tareas más para gestionar esta comunicación.

La capa más baja es el protocolo de internet fast local(FLIP) que se utiliza para la transmisión real de mensajes. FLIP está diseñado para su integración dentro del hardware por esta razón se le ha especificado un interfaz preciso con la capa inmediatamente superior(RPC y Comunicación por grupo). Este interfaz consta de nueve llamadas, siete para el tráfico de salida y dos para el tráfico de llegada.

Amoeba también posee un servidor de TC/IP que realiza las gestiones oportunas para comunicarse con máquinas que no son Amoeba y con máquinas Amoeba a través de internet.

Con todo esto se observa que el sistema Operativo Amoeba es un sistema compartido ideal donde cada usuario del sistema cree que está ejecutando el sistema en modo exclusivo pero en realidad no sabe donde se están ejecutando sus procesos y donde está guardando sus archivos. Es por esto que uno de los bloques más potentes de llamadas al sistema sea el de la comunicación.