You are on page 1of 10

7.5.

2 COMUNICACIN EN GRUPO EN AMOEBA Un grupo en amoeba consta de uno o ms procesos que cooperan para llevar a cabo cierta tarea o proporcionar algn servicio. Los procesos pueden ser miembros de varios grupos al mismo tiempo. Los grupos son cerrados, lo que significa que solo los miembros pueden realizar transmisiones al grupo. Primitivas para la comunicacin en grupo Las operaciones disponibles para la comunicacin en un grupo en amoeba son las siguientes Crategroup: crea un nuevo grupo y regresa un identificador de grupo que se utiliza en las llamadas posteriores para indicar el grupo del cual se trata. Los parmetros especifican varios tamaos y la tolerancia de fallas necesarias. JoinGroup y LeaveGroup: permite la entrada y la salida de procesos de los grupos existentes. Uno de los parmetros de JoinGroup es un pequeo mensaje que se enva a todos los miembros del grupo para anunciar la llegada de un nuevo miembro. leaveGroup:es otro pequeo mensaje que se enva a todos los miembros para despedirse y desearle buena suerte en sus prximas actividades. La idea de los pequeos mensajes es permitir que todos los miembros del grupo sepan quienes son sus compaeros SendToGroup: transmite de manera atmica un mensaje a todos los miembros de un grupo determinado, a pesar de que existan mensajes perdidos, buffers finitos o fallas del procesador. receiveFromGroup: intenta obtener un mensaje de un grupo determinado. Si no se dispone de un mensaje(es decir, uno guardado en el buffer por el ncleo), el proceso que hace la llamada se bloquea en espera de l. El protocolo garantiza que sin fallas del procesador, no se perdern de manera irremediable los mensajes. resetGuoup, se utiliza para la recuperacin en caso de fallas, especifica el nmero mnimo de miembros de un grupo. Si el ncleo puede establecer

contacto con el nmero solicitado de procesos y puede reconstruir el grupo, regresa el tamao del nuevo grupo.

El protocolo de transmisin confiable de Amoeba


Amoeba trabaja mejor en las LAN que soporta la multitransmision o la transmisin simple o ambas como es el caso de Ethernet. La idea fundamental que forma la base de la implantacin de la comunicacin en grupo es la transmisin confiable. Esto quiere decir que si un proceso usuario transmite un mensaje, el mensaje proporcionado por el usuario se enva de manera correcta a todos los miembros del grupo, incluso aunque el hardware pueda perder los paquetes.

Se puede utilizar la siguiente secuencia de eventos para lograr un transmisin confiable. 1.-el proceso usuario hace un sealamiento al ncleo y le transfiere el mensaje 2.- el ncleo acepta el mensaje y bloquea al proceso usuario. 3.- el ncleo enva un mensaje puntual al secuenciador. 4.-Cuando el secuenciador recibe el mensaje, le asigna el siguiente nmero secuencial disponible, coloca este nmero en un campo

reservado para l en el encabezado y transmite el mensaje (y el nmero secuencial). 5.-Cuando el ncleo emisor ve que el mensaje ha sido transmitido, elimina el bloqueo del proceso para que contine su ejecucin.

Comunicacin en grupo tolerante de fallas


Cuando un procesador falla, al principio nadie detecta este evento. Sin embargo, tarde o temprano, alguno de los ncleos notara que los mensajes enviados a la maquina fallida no son reconocidos, por lo que el ncleo seala al procesador fallido como muerto y al grupo como inutilizable. Todas las primitivas de comunicacin en un grupo en esa mquina fallan (regresan un estado de error) hasta reconstruir el grupo.

Vemos un grupo de seis maquinas, de las cuales la maquina 5, el secuenciador, acaba de fallar. Los nmeros de los cuadros indican el ltimo mensaje recibido de forma correcta por cada mquina. Dos mquinas, 0 y 1, detectan al mismo tiempo la falla del secuenciador y

ambas llaman a resetGroup para iniciar la recuperacin. Esta llamada hace que el ncleo envi un mensaje a todos los dems miembros para que participen en la recuperacin, solicitndoles el numero secuencial mximo de los mensajes advertidos por ellos. En este momento se descubre que dos procesos se han declarado a s mismos coordinadores. Una vez que el coordinador entra en funciones, este recoge de los dems miembros los mensajes que podran haberse perdido. Ahorra esta actualizado y puede convertirse en el nuevo secuenciador. 7.5.3 el protocolo internet Fast Local (FLIP) Amoeba utiliza un protocolo adaptado llamado FLIP(PROTOCOLO LOCAL RAPIDO INTERNET) para la transmisin real de los mensajes. Este protocolo En trminos de OSI, FLIP es un protocolo con capas de red, mientras que la RPC es ms un protocolo de sesin o transporte sin conexin(es discutible la posicin exacta, puesto que OSI fue diseado para las redes orientadas a conexiones).Desde un punto de vista conceptual, FLIP se puede remplazar por cualquier otro protocolo con capas de red, como IP, pero esto provocara la perdida de transparencia por parte de amoeba. Aunque FLIP fue diseado en el contexto de amoeba, se pretende que sea til en otros sistemas.

Requisitos de protocolo para los sistemas distribuidos

Una caracterstica cada vez ms importante es el soporte de la migracin de un proceso. Un proceso debe poder desplazarse de una maquina a

otra, incluso a una maquina en una red distinta, sin que nadie la note. Los protocolos tales como OSI, X.25 y TCP/IP, los cuales utilizan las direcciones de las mquinas para identificar los procesos, dificultan la migracin de estos, puesto que un proceso no puede cargar su direccin al desplazarse. La seguridad tambin es un aspecto importante. Aunque los puertos de envo y recepcin proporcionan la seguridad en amoeba, tambin debe existir un mecanismo de seguridad en el protocolo de paquetes de forma que se pueda utilizar en el caso de los sistemas operativos que no tengan direcciones seguras del tipo cifrado que posee amoeba.

La interfaz FLIP
El protocolo FLIP y su arquitectura asociada fueron diseados para cubrir todos estos requisitos. La siguiente figura muestra una configuracin tpica FLIP. Aqu vemos 5 mquinas, dos en una Ethernet y tres en un anillo de fichas. Cada mquina tiene un proceso usuario, desde A hasta E. Una de las maquinas se conecta a ambas redes y funciona de manera automtica como una compuerta. Las compuertas tambin pueden ejecutar clientes y sevidores, como los dems nodos.

El ncleo contiene dos capas. La capa superior controla las llamadas de los procesos usuario para los servicios de RPC o la comunicacin en grupo. La capa inferior controla el protocolo FLIP.por ejemplo, cuando un cliente llama a trans, hace un sealamiento al ncleo. La capa RPC examina el encabezado y el buffer, construye en mensaje mediante ambos y transfiere este hacia la capa FLIP para su transmisin. Una direccin FLIP es en realidad dos direcciones, una publica y otra privada, relacionadas por Direccin-publica=DES(direccin-privada) Donde DES son las siglas en ingles del estndar para el cipramiento de datos (Data Encription Standard).Para calcular la direccin pblica por medio de la direccin privada, esta ltima se utiliza como clave DES para cifrar un bloque de ceros con una longitud de 64 Bits. FLIP est diseado no solo para funcionar con amoeba, sino con otros sistemas operativos. Tambin existe una versin de UNIX, y no existe una razn para que no funciones con MS-DOS. La segudidad proporcionada por el esquema de las direcciones pblica y privada tambin funciona la comunicacin entre sistemas UNIX, mediante FLIP, de manera independiente a Amoeba. Adems, FLIP est diseado para su integracin dentro del hardware; por ejemplo, como parte del circuito de interfaz de la red. Por esta razn, se ha especificado una interfaz precisa con la capa inmediata superior. La interfaz entre la capa FLIP y la capa por encima de ella (que llamaremos la capa RPC) tiene nueve primitivas, siete para el trfico de salida y dos para el trfico de entrada. Cada una de ellas tiene un procedimiento de biblioteca que la llama. Las siete llamadas se muestran en la siguiente figura.

La primera, init, permite a la capa RPC asigna una entrada en una tabla e iniciarla con apuntadores a dos procedimientos (o bien, en una implantacin en hardware, dos vectores de interrupcin). Estos procedimientos son los que se llaman cuando arriban paquetes normales o paquetes no entregables, respectivamente. End libera la entrada cuando la maquina se desactiva. Se llama a register para anunciar una direccin FLIP del proceso a la capa FLIP. Se le llama cuando se inicia un proceso (o al menos, en el primer intento por obtener o enviar un mensaje). La capa FLIP ejecuta de manera inmediata la direccin pblica ofrecida mediante la funcin DES y guarda la direccin publica en sus tablas. Si un paquete entrante se dirige a la direccin FLIP publica, ser transmitido a la capa RPC para su entrega. La llamada unregister elimina una entrada de las tablas de la capa FLIP. Las siguientes tres llamadas son para el envo de mensajes puntuales, los mensajes de multitransmision o de transmisin simple, se utilizan los

reconocimientos. Para que la comunicacin en grupo sea confiable, aun con prdida de paquetes, se utiliza el protocolo del secuenciador ya analizado. Las ltimas dos llamadas son para el trfico de entrada. La primera es para los mensajes que se originan en cualquier parte, dirigidos a esta mquina. La segunda es para los mensajes enviados por esta mquina pero que regresan como no entregados.

Operacin de la capa FLIP


Los paquetes transferidos por la capa RPC o la capa para la comunicacin en grupo a la capa FLIP se direcciona mediante las direcciones FLIP, por lo que la capa FLIP convierte estas direcciones en la red para su transmisin real. Para llevar a cabo esta funcin, la capa FLIP mantiene una tabla de ruteo como la que se muestra en el siguiente figura.

Cada vez que un paquete llegue a una mquina, primero se controla en la capa FLIP, la cual extrae de l la direccin FLIP y la direccin en la red del emisor. Tambin se registra el nmero de saltos hechos por el paquete. Puesto que el contador de saltos solo se incrementa si un paquete es antecedido por una compuesta, el contador de saltos indica el nmero de compuertas por las que ha pasado el paquete. As, este contador es una medida burda de la lejana de la fuente. (En realidad, las cosas son poco mejores que esto, ya que las redes lentas cuentan como varios saltos.) Si la direccin FLIP no est presente en la tabla de ruteo, entra en ella. Esta entrada se puede utilizar despus para l envi de paquetes hacia esa

direccin FLIP, puesto que ahora se conocen su nmero y direccin en la red. Un bit adicional en cada paquete indica si la trayectoria del paquete esta por completo contenida en redes confiables. Esto es controlado por las compuertas. Si el paquete ha pasado por una o ms redes no confiables, hay que cifrar los paquetes hacia la direccin fuente si se desea total seguridad. En las redes confiables no es necesario el cifrado. El ltimo campo de cada entrada de la tabla de ruteo proporciona la edad de dicha entrada. Su valor es 0 si el paquete se recibe de la direccin FLIP correspondiente. Todas las edades se incrementan de manera peridica. Este campo permite a la capa FLIP determinar una entrada adecuada en la tabla para eliminarla si la tabla se colma (un nmero grande indica que no ha habido trfico durante mucho tiempo).

FLIP en las redes de rea implica


Tambin funciona de manera transparente en las redes de rea amplia. En la siguiente figura tenemos 3 redes de rea local conectadas mediante una red de rea amplia.

La comunicacin a travs de la red de rea amplia se encapsula en todo protocolo necesario para la red. Por ejemplo, en una red TCP/IP, C podra tener conexiones con D y G abiertas todo el tiempo. Otra alternativa es que la implantacin decida cerrar cualquier conexin no utilizada durante cierto periodo. La comunicacin en grupo tambin utiliza FLIP, cuando se enva un mensaje a varios destinos, FLIP utiliza la multitransmision o la transmisin simple en hardware en aquellas redes donde estn disponibles. En aquellas donde no estn disponibles, se simula la transmisin mediante el envo de mensajes individuales, tal como hemos visto en la red de rea amplia. La capa FLIP elige el mecanismo, con la misma semntica del usuario en todos los casos.

You might also like