Download Enunciado de la primera práctica
Document related concepts
no text concepts found
Transcript
AMPLIACIÓN DE SISTEMAS OPERATIVOS. ALGORITMO “BULLY” DE ELECCIÓN (ver. 0.1) Guillermo González Talaván 24 de febrero de 2010 1. Objetivo de la práctica Programar mediante JAVA-RMI un conjunto de procesos distribuidos que, de un modo tolerante a fallos, elijan a un coordinador. 2. Descripción de la práctica El algoritmo que se usará será el del abusón o bully, el cual se explica con más en detalle en la sección siguiente. Este algoritmo es usado para permitir que un grupo de procesos acuerden la elección de un coordinador único de entre todos ellos, a pesar de que los procesos pueden en cualquier momento fallar y recuperarse. El funcionamiento del algoritmo es tal que siempre se llegue al resultado de que el coordinador es aquel proceso activo que tiene el identificador más alto. Se asume que la comunicación es fiable, aunque los procesos pueden fallar en cualquier momento (incluido durante el procedimiento de elección que el algoritmo desencadena). 1 2.1. Entorno y herramientas El programa se hará en JAVA-RMI, pudiendo elegir para su desarrollo, pruebas y defensa tanto las versiones de Windows como de Linux instaladas en el Laboratorio. 2.2. Modo de operación La práctica en funcionamiento debe consistir en arrancar de forma automática seis procesos java en tres nodos distintos (dos procesos en cada máquina). Los procesos implicados interrogarán continuamente al coordinador cada 0.5-1.0 segundos (se elegirá como intervalo entre dos peticiones consecutivas un número aleatorio uniformemente distribuido en dicho intervalo). Esta interrogación simula la petición de cualquier resultado al coordinador. El coordinador tarda 0.2 segundos en atenderla. Los procesos estarán preparados para que cuando se invoque un determinado método via RMI desde otro proceso programado al efecto, impriman todos ellos por la pantalla el identificador del coordinador. Durante la ejecución de la práctica, los procesos deberán poder ser arrancados y cancelados manualmente varias veces para ver si el algoritmo está realizado correctamente. Se deberán programar scripts de modo que permitan arrancar automáticamente los procesos en todas las máquinas, sin tener que hacerlo manualmente. 2.3. Forma de entrega y defensa Las prácticas se realizarán en parejas, salvo causa justificada para realizarlas individualmente (consultad primero). Se abrirá un plazo en DIAWEB para formar grupos de prácticas, depositar el código fuente y entregar la copia impresa. Permaneced atentos a la página web de la parte práctica de la asignatura: http://avellano.fis.usal.es/~gyermo/assoo/ 2 Una vez superado el plazo de entrega, la práctica no será modificada ni se admitirá enmienda alguna. La práctica estará formada por tres ficheros fuente con extensión “.java”: Bully.java, Interfaz.java y Gestor.java. El primero se encargará de los procesos que gestionan el algoritmo. El segundo, se podrá usar para especificar la interfaz remota. Finalmente, la clase Gestor servirá para realizar peticiones a los procesos, como por ejemplo que se les pida que impriman cuál de ellos es el coordinador. Se entregará un listado del código fuente de la práctica, en letra de espaciado fijo, impreso por las dos caras del folio y al que se adjuntará una portada que se obtendrá de la dirección: http://majuelo.fis.usal.es/Latex/PortadaASSOO.html 2.4. Evaluación En la defensa se evaluará tanto las prácticas como la actuación de cada miembro de la pareja. La nota individual de defensa servirá para modular la nota obtenida en la práctica. La defensa se realizará en el mismo acto por los dos miembros del grupo de prácticas en el Laboratorio de Informática. Para obtener una nota de 5 en la práctica, basta con que funcione correctamente en el Windows o en el Linux de clase. Esta condición es inexcusable, incluso para aquellas personas que por razones de trabajo o de otra ı́ndole no pueden asistir a clase. A partir de ahı́, y dependiendo de la calidad del trabajo realizado, la nota que se puede obtener es superior. Se entenderá que la ejecución de la práctica es correcta si realiza bien el algoritmo bully, sin provocar interbloqueo ni inanición. Caso de que no ocurra ası́, o no se haga con las especificaciones expresadas en este documento, la práctica no se considerará aprobada. 3. El algoritmo del abusón Se trata de un algoritmo que pretende garantizar la existencia de un coordinador único de entre un conjunto de procesos aunque algunos de ellos 3 puedan fallar. 3.1. Premisas 1. Cada proceso participante tiene un número identificador único 2. Los procesos guardan en una variable el identificador del proceso coordinador actual 3. En cada momento, la aplicación del algoritmo debe garantizar que todos los procesos ven al mismo coordinador, que será además aquel proceso vivo cuyo identificador es el mayor 3.2. 3.2.1. Funcionamiento del algoritmo Tipos de mensajes que se envı́an los procesos 1. ELECCIÓN: el proceso se postula como coordinador 2. OK: un proceso de identificador mayor le dice que no 3. COORDINADOR: un proceso informa a los demás de que es el nuevo coordinador 3.2.2. Protocolo de actuación 1. Partimos de un estado en que todos los procesos coinciden en la identidad del coordinador. Cada cierto tiempo, sondean al proceso para ver si sigue vivo. 2. Si cualquier proceso no obtiene respuesta del coordinador a uno de sus sondeos, supone que ha muerto. Toma entonces la iniciativa e inicia un proceso de elecciones enviando un mensaje ELECCIÓN a todos los procesos de identificador mayor que el suyo 3. Si nadie responde a ese mensaje, se erige coordinador e informa de ello mediante un mensaje COORDINADOR 4. Si alguno responde con un mensaje de OK diciéndole que no, la iniciativa la tienen procesos mayores que él. Se esperará a ver si llega un 4 mensaje con el nuevo coordinador y lo escribe en su variable. Si pasara el tiempo y este mensaje no llegara, inicia un nuevo procedimiento de elección. 3.2.3. Importancia del tiempo El tiempo es un factor muy importante en este algoritmo. La falta de respuesta del coordinador durante un intervalo prefijado inicia el procedimiento de elección. La ausencia de respuestas a mensajes de ELECCIÓN, permite erigirse a un proceso como nuevo coordinador. Si se recibe un mensaje desalentador de OK y transcurre cierto intervalo sin que llegue el mensaje de nuevo coordinador, el proceso inicia un proceso de elecciones otra vez. 4. Consideraciones adicionales Permaneced atentos a las versiones que pueden aparecer de este enunciado, para corregir posibles errores, por ejemplo. 5