amoeba 100716124109-phpapp01 (1)

31
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.

Upload: markiups-basantes

Post on 16-Feb-2017

126 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amoeba 100716124109-phpapp01 (1)

AMOEBAQué 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.

Page 2: Amoeba 100716124109-phpapp01 (1)

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.

Page 3: Amoeba 100716124109-phpapp01 (1)

1. Objetivos del diseñoLas 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.

Page 4: Amoeba 100716124109-phpapp01 (1)

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.

Page 5: Amoeba 100716124109-phpapp01 (1)

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.

Page 6: Amoeba 100716124109-phpapp01 (1)

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.

Page 7: Amoeba 100716124109-phpapp01 (1)

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.

Page 8: Amoeba 100716124109-phpapp01 (1)

3.3 Llamadas a procedimientos remotos RPCLos 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.

Page 9: Amoeba 100716124109-phpapp01 (1)

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.

Page 10: Amoeba 100716124109-phpapp01 (1)

3.5 Objetos y capacidadesHay 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”.

Page 11: Amoeba 100716124109-phpapp01 (1)

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.

Page 12: Amoeba 100716124109-phpapp01 (1)

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.

Page 13: Amoeba 100716124109-phpapp01 (1)

3.7 Entrada/SalidaE/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.

Page 14: Amoeba 100716124109-phpapp01 (1)

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 BulletEl 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.

Page 15: Amoeba 100716124109-phpapp01 (1)

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 CompiladoresExisten los compiladores de C estándar,

Pascal, Modula 2, BASIC y Fortran 77.

Page 16: Amoeba 100716124109-phpapp01 (1)

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.

Page 17: Amoeba 100716124109-phpapp01 (1)

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

Page 18: Amoeba 100716124109-phpapp01 (1)

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.

Page 19: Amoeba 100716124109-phpapp01 (1)

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.

Page 20: Amoeba 100716124109-phpapp01 (1)

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.

Page 21: Amoeba 100716124109-phpapp01 (1)

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.

Page 22: Amoeba 100716124109-phpapp01 (1)

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.

Page 23: Amoeba 100716124109-phpapp01 (1)

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.

Page 24: Amoeba 100716124109-phpapp01 (1)

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/

Page 25: Amoeba 100716124109-phpapp01 (1)

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

Page 26: Amoeba 100716124109-phpapp01 (1)

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.

Page 27: Amoeba 100716124109-phpapp01 (1)

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

Page 28: Amoeba 100716124109-phpapp01 (1)

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.

Page 29: Amoeba 100716124109-phpapp01 (1)

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.

Page 30: Amoeba 100716124109-phpapp01 (1)

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/

Page 31: Amoeba 100716124109-phpapp01 (1)

6. Resumen

Amoeba es un moderno sistema operativo distribuido que está diseñado para un ambiente consistente de múltiples computadores.