AMOEBA Qué es Amoeba ? Es un sistema operativo de propósito general. Está diseñado para tomar un conjunto de máquinas y hacerlas funcionar como un solo sistema integrado.
Los usuarios no se dan cuenta del número y localización de procesadores que corren sus comandos. Está propuesto para ambos: -  Computación distribuida:  múltiples usuarios independientes trabajan en diferentes proyectos. -  Computación paralela:  un usuario usando 50 CPU’s juega ajedrez en paralelo.
1. Objetivos del diseño Las metas básicas del diseño fueron: Distribución :  conectar juntas muchas máquinas. Paralelismo :  permitir a trabajos individuales usar múltiples CPU’s fácilmente. Transparencia :  tener una colección de computadores actuando como un solo sistema. Rendimiento :  archivar todo de una manera eficiente.
2. Arquitectura del Sistema Un típico sistema Amoeba consistirá de tres clases funcionales de máquinas. Primero  cada usuario tiene su estación de trabajo para correr la interfase de usuario, el sistema X window. Esta estación de trabajo puede ser de ingeniería, o una terminal especializada X. Segundo   existe un conjunto de procesadores que son dinámicamente asignados a usuarios, como son requeridos.
Estos procesadores pueden ser parte de un multiprocesador o multicomputador, ser una colección de computadores de una sola tarjeta o un grupo de estaciones de trabajo asignados para este propósito. Tercero , hay servidores especializados como son servidores de archivo y de directorio que corren todo el tiempo. Ellos pueden correr en un procesador del conjunto de procesadores, o en hardware dedicado, o como se desee.
3. CONCEPTOS FUNDAMENTALES EN AMOEBA 3.1 Microkernel + arquitectura de Servidor . Fue diseñado con arquitectura microkernel. Esto significa que cada máquina en un sistema Amoeba corre una pequeña, e idéntica pieza de software llamada el Kernel. El kernel soporta procesos básicos, comunicación y objetos primitivos. También manipula dispositivos de I/O y administración de memoria. Así el sistema está estructurado como una colección de procesos independientes. Algunos de estos son procesos de usuario corriendo aplicaciones de programa. Los procesos son llamados  clientes  y otros  servidores .
La función básica del microkernel es proveer un ambiente en el cual clientes y servidores puedan correr y comunicarse unos con otros. 3.2 Threads (hilos) En muchos sistemas operativos tradicionales un proceso consiste de un espacio de direcciones y de un solo hilo de control. En Amoeba, cada proceso tiene su propio espacio de direcciones, pero puede contener múltiples “threads de control”. Cada hilo tiene su propio contador de programa y su propia pila, pero comparte código y datos globales con otros hilos en sus procesos.
3.3 Llamadas a procedimientos remotos RPC Los hilos a menudo necesitan comunicarse unos con otros. Los hilos en un solo proceso pueden comunicarse vía memoria compartida, pero los hilos ubicados en procesos diferentes necesitan un mecanismo diferente. El mecanismo de comunicación básico de Amoeba es el RPC. La comunicación consiste de un hilo cliente enviando un mensaje a un hilo servidor, mientras el hilo servidor bloqueado envía un mensaje de retorno, en el cual el cliente a la vez es desbloqueado.
Amoeba tiene una librería especial de procedimientos llamada stubs y es la que provee el servicio de acceso remoto, además tiene un lenguaje especial llamado Amoeba Interface Languaje (AIL) para generar automáticamente estos procedimientos stub. 3.4 Comunicación en grupo. Para muchas aplicaciones la comunicación, uno a varios es necesaria, en el cual un solo transmisor envía un mensaje a múltiples receptores. Amoeba provee una facilidad básica, fiable en los grupos de comunicación totalmente ordenado, en el cual todos los receptores están garantizando conseguir todos los mensajes de grupo en exactamente el mismo orden.
3.5 Objetos y capacidades Hay dos conceptos fundamentales en Amoeba: objetos y capacidades. Todos los servicios y comunicación están en base a ellos. Un objeto es conceptualmente un tipo de dato abstracto. Esto es, un objeto es una estructura de datos en el cual ciertas operaciones están definidas. Por ejemplo, un directorio es un objeto al cual ciertas operaciones pueden ser aplicadas, como son “ingresar nombre” y “mirar nombre”.
Cuando un objeto es creado, el servidor  crea un valor de 128 bit llamado una capacidad y retorna al llamador. Las capacidades son protegidas criptográficamente para prevenir  interferencias. Todos los objetos en el sistema son nombrados y protegidos usando éste, un esquema simple y transparente.
3.6 Administración de memoria El modelo es simple y eficiente. Un espacio de direcciones del proceso consiste de uno o más segmentos mapeados a direcciones virtuales de un usuario específico.  Cuando un proceso es ejecutado todos los segmentos están en memoria. No hay paginación ni  swapping  en el presente, así solamente puede correr programas que quepan en la memoria física. La primera ventaja de este esquema es simplicidad y alto rendimiento. La primera desventaja también es que no es posible correr programas más grandes que la memoria física.
3.7 Entrada/Salida E/S es también manipulada por los hilos del kernel. Para leer bloques desde un disco, por ejemplo, un proceso de usuario tiene la autorización apropiada, hace RPC con un hilo de disco E/S en el kernel.
4. Software fuera del kernel El trabajo del microkernel de Amoeba es soportar hilos, RPC, administración de memoria y E/S.  4.1 Servidor de archivos Bullet El servidor de archivos ha sido diseñado para alto rendimiento y es llamado el servidor  Bullet . Almacena archivos contiguamente en disco, excepto para archivos muy grandes. Debe existir una máquina con 16 Mb de RAM dedicada para este fin.
4.2 Servidor de directorios . El contraste a algunos sistemas operativos el manejador de archivos y archivo de nombres están separados en Amoeba. 4.3 Compiladores Existen los compiladores de C estándar, Pascal, Modula 2, BASIC y Fortran 77.
4.4 Programación en paralelo Un nuevo lenguaje llamado  Orca  ha sido desarrollado y permite a los programadores crear sus propios tipos de datos en cualquier proceso en diferentes máquinas en rutas compartidas controladas. Las operaciones en cada objeto son ejecutadas en cada ruta para proveer la ilusión de la existencia de una sola copia compartida por todas las máquinas.
4.5 Utilidades Amoeba provee un gran número de utilidades modelados después de los programas que vienen con UNIX. Entre otros, estos incluyen  awk, basename, cal, cat, ediff, chmod, cmp, comm, compress, cp, cpdir, rm, rmdir, time, who, tty, tail, tar, etc., y muchos otros
4.6 Emulación UNIX Para ayudar a los programas UNIX de puertos en el ambiente Amoeba, una librería de emulación, llamada Ajax, ofrece mejor compatibilidad con POSIX P1003.1. Algunos programas que conforman POSIX trabajan sin modificación. Ellos simplemente tienen que ser compilados y enlazados en Amoeba.
4.7 TCP/IP Si bien el mecanismo básico de comunicación en Amoeba es el protocolo Amoeba FLIP, un servidor especial es proveído para permitir la comunicación TCP/IP por medio de RPC’s al servidor TCP/IP. De esta manera las máquinas pueden ser accedidas por medio del Internet.
4.8 X Windows La interfase de usuario de Amoeba es el estándar de la industria el Sistema X Window (X11R6).  Para servidores X corriendo en estaciones de trabajo, una versión especial de X está disponible aquel usa el Amoeba RPC para comunicaciones de alto rendimiento.
4.9 Conexión a UNIX . Un driver especial para UNIX es proveído con Amoeba que puede enlazar al kernel de Unix de SunOS 4.1.1 (o superior), permitiendo a los programas UNIX comunicarse con los programas de Amoeba.
5. ASPECTOS NO TÉCNICOS DE AMOEBA 5.1 Disponibilidad del código fuente. Todas las distribuciones académicas de Amoeba contienen el código fuente completo. Los binarios para el soporte de las máquinas son también incluidos.
5.2 Amoeba sin las trabas de la licencia AT&T Amoeba fue escrito de la nada. Aunque se provee de una emulación POSIX, no contiene código AT&T de ninguna clase. 5.3 Documentación Amoeba viene con una documentación sobre las 1000 páginas. Están organizadas en varios volúmenes.
Consta de : Una colección de papeles científicos describen las ideas básicas. Una guía de usuario. Una guía del programador Una guía del sistema administrador Toda la documentación está libremente disponible desde: http:// www.am.cs.vu.nl/
5.4 Máquinas en las que corre Amoeba Amoeba actualmente corre en las siguientes arquitecturas: Sun 4c y MicroSPARC SPARCstations Intel 386/486/Pentium/Pentium Pro (IBM AT bus, PCI bus) Tarjetas 68030 VME – bus  Estaciones de trabajo Sun 3/60 & Sun 3/50
5.5 Configuración requerida. Amoeba es un sistema distribuido heterogéneo. Aunque en teoría trabaja en una sola máquina, en la práctica más de una máquina es requerida. Recomendamos por lo menos 5 máquinas: un servidor de archivos, una estación de trabajo y 3 conjuntos de procesadores.
Configuración mínima para sistemas 386/486/Pentium . Servidor de archivos :  >= 16MB RAM, un disco de 300 MB, unidad floppy 3.5”, tarjeta ethernet, tarjeta VGA, teclado, monitor, ratón. Estación de trabajo : >= 8 MB RAM, tarjeta ethernet, tarjeta VGA, teclado, monitor, ratón. Conjunto de procesadores : >= 4 MB RAM, unidad floppy 3.5”, tarjeta ethernet. Soporte a tarjetas ethernet : SMC/WD 8013, NE 2100, NE2000, 3Com 503
5.6 Precio Amoeba es gratuito para universidades que tienen acceso FTP o WWW. Conjuntos de manuales pueden ser impresos por 500 US. Licencia comercial y soporte está proveído por ACE, b.v. en Amsterdam.
5.7 Soporte Aunque Amoeba es todavía un sistema experimental, en vez de calidad de producción y producto pulido (por ejemplo la emulación UNIX no está completa al 100%), puede ser usado tranquilamente por cualquiera que esté interesado en sistemas distribuidos.
5.8 Procedimiento de orden Amoeba está disponible para universidades bajo licencia “shrink-wrap” en la cual la universidad está de acuerdo usar Amoeba solamente para educación. Para el acceso FTP se debe registrar y obtener el nombre y el password. Esto se hace en http://www.am.cs.vu.nl/
6. Resumen Amoeba es un moderno sistema operativo distribuido que está diseñado para un ambiente consistente de múltiples computadores.

Amoeba

  • 1.
    AMOEBA Qué esAmoeba ? Es un sistema operativo de propósito general. Está diseñado para tomar un conjunto de máquinas y hacerlas funcionar como un solo sistema integrado.
  • 2.
    Los usuarios nose dan cuenta del número y localización de procesadores que corren sus comandos. Está propuesto para ambos: - Computación distribuida: múltiples usuarios independientes trabajan en diferentes proyectos. - Computación paralela: un usuario usando 50 CPU’s juega ajedrez en paralelo.
  • 3.
    1. Objetivos deldiseño Las metas básicas del diseño fueron: Distribución : conectar juntas muchas máquinas. Paralelismo : permitir a trabajos individuales usar múltiples CPU’s fácilmente. Transparencia : tener una colección de computadores actuando como un solo sistema. Rendimiento : archivar todo de una manera eficiente.
  • 4.
    2. Arquitectura delSistema Un típico sistema Amoeba consistirá de tres clases funcionales de máquinas. Primero cada usuario tiene su estación de trabajo para correr la interfase de usuario, el sistema X window. Esta estación de trabajo puede ser de ingeniería, o una terminal especializada X. Segundo existe un conjunto de procesadores que son dinámicamente asignados a usuarios, como son requeridos.
  • 5.
    Estos procesadores puedenser parte de un multiprocesador o multicomputador, ser una colección de computadores de una sola tarjeta o un grupo de estaciones de trabajo asignados para este propósito. Tercero , hay servidores especializados como son servidores de archivo y de directorio que corren todo el tiempo. Ellos pueden correr en un procesador del conjunto de procesadores, o en hardware dedicado, o como se desee.
  • 6.
    3. CONCEPTOS FUNDAMENTALESEN AMOEBA 3.1 Microkernel + arquitectura de Servidor . Fue diseñado con arquitectura microkernel. Esto significa que cada máquina en un sistema Amoeba corre una pequeña, e idéntica pieza de software llamada el Kernel. El kernel soporta procesos básicos, comunicación y objetos primitivos. También manipula dispositivos de I/O y administración de memoria. Así el sistema está estructurado como una colección de procesos independientes. Algunos de estos son procesos de usuario corriendo aplicaciones de programa. Los procesos son llamados clientes y otros servidores .
  • 7.
    La función básicadel microkernel es proveer un ambiente en el cual clientes y servidores puedan correr y comunicarse unos con otros. 3.2 Threads (hilos) En muchos sistemas operativos tradicionales un proceso consiste de un espacio de direcciones y de un solo hilo de control. En Amoeba, cada proceso tiene su propio espacio de direcciones, pero puede contener múltiples “threads de control”. Cada hilo tiene su propio contador de programa y su propia pila, pero comparte código y datos globales con otros hilos en sus procesos.
  • 8.
    3.3 Llamadas aprocedimientos remotos RPC Los hilos a menudo necesitan comunicarse unos con otros. Los hilos en un solo proceso pueden comunicarse vía memoria compartida, pero los hilos ubicados en procesos diferentes necesitan un mecanismo diferente. El mecanismo de comunicación básico de Amoeba es el RPC. La comunicación consiste de un hilo cliente enviando un mensaje a un hilo servidor, mientras el hilo servidor bloqueado envía un mensaje de retorno, en el cual el cliente a la vez es desbloqueado.
  • 9.
    Amoeba tiene unalibrería especial de procedimientos llamada stubs y es la que provee el servicio de acceso remoto, además tiene un lenguaje especial llamado Amoeba Interface Languaje (AIL) para generar automáticamente estos procedimientos stub. 3.4 Comunicación en grupo. Para muchas aplicaciones la comunicación, uno a varios es necesaria, en el cual un solo transmisor envía un mensaje a múltiples receptores. Amoeba provee una facilidad básica, fiable en los grupos de comunicación totalmente ordenado, en el cual todos los receptores están garantizando conseguir todos los mensajes de grupo en exactamente el mismo orden.
  • 10.
    3.5 Objetos ycapacidades Hay dos conceptos fundamentales en Amoeba: objetos y capacidades. Todos los servicios y comunicación están en base a ellos. Un objeto es conceptualmente un tipo de dato abstracto. Esto es, un objeto es una estructura de datos en el cual ciertas operaciones están definidas. Por ejemplo, un directorio es un objeto al cual ciertas operaciones pueden ser aplicadas, como son “ingresar nombre” y “mirar nombre”.
  • 11.
    Cuando un objetoes creado, el servidor crea un valor de 128 bit llamado una capacidad y retorna al llamador. Las capacidades son protegidas criptográficamente para prevenir interferencias. Todos los objetos en el sistema son nombrados y protegidos usando éste, un esquema simple y transparente.
  • 12.
    3.6 Administración dememoria El modelo es simple y eficiente. Un espacio de direcciones del proceso consiste de uno o más segmentos mapeados a direcciones virtuales de un usuario específico. Cuando un proceso es ejecutado todos los segmentos están en memoria. No hay paginación ni swapping en el presente, así solamente puede correr programas que quepan en la memoria física. La primera ventaja de este esquema es simplicidad y alto rendimiento. La primera desventaja también es que no es posible correr programas más grandes que la memoria física.
  • 13.
    3.7 Entrada/Salida E/Ses también manipulada por los hilos del kernel. Para leer bloques desde un disco, por ejemplo, un proceso de usuario tiene la autorización apropiada, hace RPC con un hilo de disco E/S en el kernel.
  • 14.
    4. Software fueradel kernel El trabajo del microkernel de Amoeba es soportar hilos, RPC, administración de memoria y E/S. 4.1 Servidor de archivos Bullet El servidor de archivos ha sido diseñado para alto rendimiento y es llamado el servidor Bullet . Almacena archivos contiguamente en disco, excepto para archivos muy grandes. Debe existir una máquina con 16 Mb de RAM dedicada para este fin.
  • 15.
    4.2 Servidor dedirectorios . El contraste a algunos sistemas operativos el manejador de archivos y archivo de nombres están separados en Amoeba. 4.3 Compiladores Existen los compiladores de C estándar, Pascal, Modula 2, BASIC y Fortran 77.
  • 16.
    4.4 Programación enparalelo Un nuevo lenguaje llamado Orca ha sido desarrollado y permite a los programadores crear sus propios tipos de datos en cualquier proceso en diferentes máquinas en rutas compartidas controladas. Las operaciones en cada objeto son ejecutadas en cada ruta para proveer la ilusión de la existencia de una sola copia compartida por todas las máquinas.
  • 17.
    4.5 Utilidades Amoebaprovee un gran número de utilidades modelados después de los programas que vienen con UNIX. Entre otros, estos incluyen awk, basename, cal, cat, ediff, chmod, cmp, comm, compress, cp, cpdir, rm, rmdir, time, who, tty, tail, tar, etc., y muchos otros
  • 18.
    4.6 Emulación UNIXPara ayudar a los programas UNIX de puertos en el ambiente Amoeba, una librería de emulación, llamada Ajax, ofrece mejor compatibilidad con POSIX P1003.1. Algunos programas que conforman POSIX trabajan sin modificación. Ellos simplemente tienen que ser compilados y enlazados en Amoeba.
  • 19.
    4.7 TCP/IP Sibien el mecanismo básico de comunicación en Amoeba es el protocolo Amoeba FLIP, un servidor especial es proveído para permitir la comunicación TCP/IP por medio de RPC’s al servidor TCP/IP. De esta manera las máquinas pueden ser accedidas por medio del Internet.
  • 20.
    4.8 X WindowsLa interfase de usuario de Amoeba es el estándar de la industria el Sistema X Window (X11R6). Para servidores X corriendo en estaciones de trabajo, una versión especial de X está disponible aquel usa el Amoeba RPC para comunicaciones de alto rendimiento.
  • 21.
    4.9 Conexión aUNIX . Un driver especial para UNIX es proveído con Amoeba que puede enlazar al kernel de Unix de SunOS 4.1.1 (o superior), permitiendo a los programas UNIX comunicarse con los programas de Amoeba.
  • 22.
    5. ASPECTOS NOTÉCNICOS DE AMOEBA 5.1 Disponibilidad del código fuente. Todas las distribuciones académicas de Amoeba contienen el código fuente completo. Los binarios para el soporte de las máquinas son también incluidos.
  • 23.
    5.2 Amoeba sinlas trabas de la licencia AT&T Amoeba fue escrito de la nada. Aunque se provee de una emulación POSIX, no contiene código AT&T de ninguna clase. 5.3 Documentación Amoeba viene con una documentación sobre las 1000 páginas. Están organizadas en varios volúmenes.
  • 24.
    Consta de :Una colección de papeles científicos describen las ideas básicas. Una guía de usuario. Una guía del programador Una guía del sistema administrador Toda la documentación está libremente disponible desde: http:// www.am.cs.vu.nl/
  • 25.
    5.4 Máquinas enlas que corre Amoeba Amoeba actualmente corre en las siguientes arquitecturas: Sun 4c y MicroSPARC SPARCstations Intel 386/486/Pentium/Pentium Pro (IBM AT bus, PCI bus) Tarjetas 68030 VME – bus Estaciones de trabajo Sun 3/60 & Sun 3/50
  • 26.
    5.5 Configuración requerida.Amoeba es un sistema distribuido heterogéneo. Aunque en teoría trabaja en una sola máquina, en la práctica más de una máquina es requerida. Recomendamos por lo menos 5 máquinas: un servidor de archivos, una estación de trabajo y 3 conjuntos de procesadores.
  • 27.
    Configuración mínima parasistemas 386/486/Pentium . Servidor de archivos : >= 16MB RAM, un disco de 300 MB, unidad floppy 3.5”, tarjeta ethernet, tarjeta VGA, teclado, monitor, ratón. Estación de trabajo : >= 8 MB RAM, tarjeta ethernet, tarjeta VGA, teclado, monitor, ratón. Conjunto de procesadores : >= 4 MB RAM, unidad floppy 3.5”, tarjeta ethernet. Soporte a tarjetas ethernet : SMC/WD 8013, NE 2100, NE2000, 3Com 503
  • 28.
    5.6 Precio Amoebaes gratuito para universidades que tienen acceso FTP o WWW. Conjuntos de manuales pueden ser impresos por 500 US. Licencia comercial y soporte está proveído por ACE, b.v. en Amsterdam.
  • 29.
    5.7 Soporte AunqueAmoeba es todavía un sistema experimental, en vez de calidad de producción y producto pulido (por ejemplo la emulación UNIX no está completa al 100%), puede ser usado tranquilamente por cualquiera que esté interesado en sistemas distribuidos.
  • 30.
    5.8 Procedimiento deorden Amoeba está disponible para universidades bajo licencia “shrink-wrap” en la cual la universidad está de acuerdo usar Amoeba solamente para educación. Para el acceso FTP se debe registrar y obtener el nombre y el password. Esto se hace en http://www.am.cs.vu.nl/
  • 31.
    6. Resumen Amoebaes un moderno sistema operativo distribuido que está diseñado para un ambiente consistente de múltiples computadores.