1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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”.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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.
17. 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
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
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 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
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 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
28. 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.
29. 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.
30. 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/
31. 6. Resumen
Amoeba es un moderno sistema
operativo distribuido que está diseñado
para un ambiente consistente de
múltiples computadores.