School Work">
Amoeba
Amoeba
Amoeba
HISTORIA
Caractersticas
Amoeba se diseo con dos hiptesis respecto al hardware:
1.- Los sistemas tienen un nmero muy grande de CPU
2.- Cada CPU tendr decenas de megabytes en memoria
Los CPU en una pila pueden tener distintas arquitecturas; por ejemplo, una
mezcla de maquinas 680x0, 386 o SPARC. Amoeba est diseado de forma
que puede trabajar con varias arquitecturas y sistemas heterogneos. Incluso
es posible que los hijos de un proceso se ejecuten en arquitecturas
diferentes.
La pila de procesadores no es tomada por usuario alguno. Cuando un usuario
escribe un comando, el sistema operativo asigna en forma dinmica uno o
ms procesadores para ejecutar ese comando. Al terminar el comando se
terminan los procesos y los recursos regresan a la pila, en espera del
siguiente comando, que muy probablemente sea de un usuario diferente. si
existe una reduccin en el numero de procesadores en la pila, se comparte el
tiempo de los procesadores individuales, de modo que los nuevos procesos
sean asignados al CPU con menor carga.
Otro componente importante de la configuracin de Amoeba son los
servidores especializados, como los servidores de archivos, que por razones
de hardware o software necesitan ejecutarse en un procesador aparte, en
ciertos casos es posible que un servidor se ejecute en un procesador de pila,
para que se inicie cuando sea necesario, pero por razones de desempeo es
mejor que se ejecute todo el tiempo.
Micro ncleo
Amoeba consta de 2 partes un micro ncleo que se ejecuta en cada
procesador, y una coleccin de servidores que proporcionan la mayor parte
de la funcionalidad de un sistema operativo tradicional.
Servidores Amoeba
Todo lo que no se lleva a cabo dentro del ncleo lo realizan los
procesos servidores, como el sistema de archivos y otros dispositivos no se
integran al ncleo, estos se pueden modificar con facilidad y se pueden
ejecutar en forma simultnea varias versiones para las distintas poblaciones
de usuarios.
Amoeba se basa en el modelo cliente-servidor, los clientes son escritos
en general por los usuarios, mientras que los servidores son escritos ir los
programadores del sistemas, el concepto de objeto es central en el diseo de
todo el software, un objeto es como un tipo de dato abstracto, cada objeto
consta de datos encapsulados, con ciertas operaciones definidas en ellos.
El servidor ms importante es el servidor de archivos ya que
proporciona las primitivas para la administracin de archivos, creacin,
lectura, eliminacin, etc. a diferencia de la mayora de los servidores de
archivos, los archivos creados son inmutables. Una vez creado, un archivo no
se puede modificar, pero si puede ser eliminado, los archivos inmutables
facilitan la rplica automtica, puesto que evitan muchas de las condiciones
de competencia inherentes en la rplica de archivos sujetos a modificaciones
durante tal proceso.
Administracin de procesos
Un proceso en Amoeba es bsicamente un espacio direcciones y una
coleccin de hilos que se ejecuten en el. un proceso con un hilo es muy
semejante a un proceso UNIX o en MS-DOS, en trminos de su
comportamiento o funcin.
Son un objeto, al crearse el proceso padre obtiene una posibilidad para
el proceso hijo, al igual que con cualquier otro objeto recin creado mediante
esta posibilidad, el hijo se puede suspender, reiniciar o destruir.
Algunas de las llamadas para la administracin de procesos utilizan una
estructura de datos llamada descriptor del proceso donde se proporciona la
Hilos
Amoeba soporta un modelo sencillo de hilos, al iniciar el proceso, este tiene
al menos un hilo durante la ejecucin el proceso puede crear ms hilos y los
existentes pueden terminar su labor. As el numero de hilos es dinmicos, al
crearse uno nuevo, los parmetros de la llamada especifican el
procedimiento por ejecutar y el tamao de la pila inicial.
Si un hilo desea crear y utilizar variables globales a todos sus
procedimientos pero invisibles para los dems hilos, se dispone de
procedimientos de biblioteca para tales fines, tales variables son locales. Un
COMUNICACION
Amoeba soporta dos formas de comunicacin RPC, mediante
tranferencia puntual de mensajes y la comunicacin en grupo, en el nivel mas
bajo una RPC consta de un mensaje de solicitud seguido de un mensaje de
respuesta. La comunicacin en grupo tiliza la transmision en hardware o
multitransmision si se dispone de esta en caso contrario, la simula de manera
transparente mediante mensajes individuales.
RPC
La comunicacin puntual en Amoeba consta de un cliente que enva un
mensaje a un servidor, seguida de una respuesta del servidor al cliente. No es
posible que un cliente enve un mensaje y despus haga otra cosa, excepto al
pasar por alto la interfaz RPC, lo cual ocurre slo bajo circunstancias muy
Cuando un servidor desea irse a dormir en espera de que llegue una solicitud,
llama a gel_request. Este procedimiento tiene los tres parmetros siguientes:
get_request(&header, buffer, bytes)
El primero apunta al encabezado de un mensaje, el segundo a un buffer de
datos y el tercero indica el tamao del buffer. Esta llamada es similar a
read(fd, buffer, bytes)
en UNIX OMS-DOS, en donde el primer parmetro identifica lo que se lee, el
Segundo proporciona un buffer donde colocar los datos y el tercero indica el
tamao del buffer.
Cuando se transmite un mensaje a travs de la red, ste contiene un
encabezado y (de manera opcional) un buffer de datos. El encabezado es una
estructura fija de 32 bytes y se muestra en la figura 7-8. Lo que hace el
primer parmetro de la llamada guet_request es indicar al ncleo dnde
colocar el encabezado que est por recibir. Adems, antes de hacer la
llamada get_request, el servidor debe inicializar el campo Puerto del
encabezado para que contenga al puerto que est escuchando. Esta es la
razn por la cual el ncleo sabe cul servidor est escuchando a cul puerto.
El encabezado recibido esoribe encima del iniciado por el servidor.
servicio proporcionado por un grupo es que realice una RPC con alguno de
sus miembros. Ese miembro utiliza entonces la comunicacin en grupo
dentro del mismo, en caso necesario, para determinar Io que debe realizar
cada miembro.
Este diseo se eligi para obtener mayor grado de transparencia que en el
caso de una estructura de grupos abiertos. La idea detrs de } es que los
clientes utilizan por lo general la RPC. para conversar con servidores
individuales, por lo que tambin utilizan RPC para conversar con los grupos.
La alternativa (grupos abiertos y el uso de RPC para comunicarse con un
Servidor pero utilizar comunicacin en grupo para hablar con los servidores
del grupo) es mucho menos transparente. (El uso de la comunicacin en
grupo para todo eliminara las mltiples ventajas de RPC ya analizadas.) Una
vez determinado que los clientes fuera de un grupo utilizarn RPC para
hablar con el (en realidad, para hablar con un proceso del grupo), desaparece
la necesidad de los grupos abiertos, por lo cual son adecuados los grupos
cerrados, que adems son ms fciles de implantar.
PROTOCOLO INTERNET FAST LOCAL (FLIP)
Amoeba utiliza el protocolo adaptado llamado FLIP (siglas en ingles del
Protocolo local rapido internet) para la transmision real de los mensajes. Ete
protocolo controla tanto la RPC como la comunicacin en grupo y esta por
debajo de ellos en la jerarquia de protocolos. En trminos de OSI, FLIP es un
protocolo con capas de red, mientras que la RPC es mas un protocolo de
sesin o transporte sin conexion. FLIP se puede reemplazar por cualquier
otro protocolo con capas de red, como IP, pero esto provocaria la perdida de
transparencia por parte de Amoeba. Aunque FLIP fue diseado en el contexto
de Amoeba, se pretende que sea util en otros sistemas
INTERFAZ FLIP
Protocolo FLIP y su arquitectura asociada fueron diseados para cubrir
todos estos requisitos, aque vemos cinco maquinas, dos en una Ethernet y
tres en un anillo de fichas. Cada maquina tiene un proceso usuario, desde A
RESUMEN
Amoeba es un nuevo sistema operativo diseado para hacer que una
coleccin de computadoras independientes aparezca ante sus usuarios como
un sistema de tiempo compartido. En general, los usuarios no estn
conscientes del sitio donde se ejecutan sus procesos (o incluso el tipo de CPU
utilizado), ni del sitio donde se almacenan sus archivos o las copias de ellos
mantenidas por razones de disponibilidad y desempeo. Sin embargo, los
usuarios explcitamente interesados en la programacin paralela pueden
explotar la existencia de varios CPU mediante la subdivisin de un solo
trabajo en varias mquinas.
Amoeba se basa en un microncleo que controla los procesos de bajo nivel,
la administracin de la memoria, la comunicacin y la E/S. El sistema de
archivos y el resto del sistema operativo se pueden ejecutar como procesos
usuario. Esta divisin del trabajo mantiene el ncleo pequeo y sencillo.
Amoeba tiene un mecanismo para nombrar y proteger a todos los objetos:
las posibilidades. Cada posibilidad contiene los derechos que indican las
operaciones permitidas mediante su uso. Las posibilidades se protegen por
cifrado mediante las funciones de un solo sentido. Cada una contiene un
campo para la suma de verificacin, la cual garantiza la seguridad de la
posibilidad.
Se soportan tres mecanismos de comunicacin: RPC y FLIP simple para la
comunicacin puntual y la comunicacin confiable en grupo para la
comunicacin entre varias partes. La RPC garantiza una semntica "al menos
una vez". La comunicacin en grupo se basa en la transmisin confiable
proporcionada por el algoritmo del secuenciador. Ambos mecanismos Se
soportan sobre el protocolo FLIP y estn fuertemente integrados. El FLIP
simple slo se utiliza en circunstancias especiales.
El sistema de archivos de Amoeba consta de tres servidores: el servidor de
archivos para el almacenamiento de stos, el servidor de directorios para
otorgar nombres y el servidor de replicas para la rplica de archivos. El