Sincronizacion en los Sistema Distribuidos

Sincronización de Relojes

La sincronización de relojes en un sistema distribuido involucra un proceso de determinar o forzar un orden de eventos en las señales electrónicas; siempre que la sincronización se realiza con tiempo determinado o limitado se puede, o no, percibir un fallo, a diferencia de la ausencia de fallos al no limitar el tiempo de sincronización. La dificultad de sincronización, si la hubiese, depende de lo previsible de los eventos relativos al reloj local.
Cabe destacar que internamente cada computadora contiene un
reloj físico, el cual cuenta la frecuencia de las oscilaciones de un cristal para medir el tiempo a través de una estampa o marca de tiempo. Cada máquina puede interpretar de forma distinta los pulsos de reloj, aunque la diferencia puede ser prácticamente nula, después de un tiempo se pueden ver los efectos.





Exclusión Mutua

            La exclusión mutua se lleva a cabo dentro de los sistemas distribuidos con la finalidad de evitar que dos o mas procesos soliciten un mismo recurso a un mismo tiempo o mejor conocido como concurrencia, por ejemplo, el hecho de que tres procesos soliciten imprimir un documento en una misma impresora podría causar estragos a la hora de decidir a quien darle prioridad, para esto se realiza el proceso de exclusión mutua, encolando los procesos, bien sea por orden de llegada o por prioridad.



Agoritmos de elección

Para eniciar los mensajes, los procesos necesitan conocer las direcciones de red de todo el grupo de procesos en busca de coordinador de modo que la eleccion ya estaria hecha de antemano, el requisito que debe cumplir una eleccion de coordinador es unica, es decir ellos realizan una solucion de procesos para coordinar, iniciar y realizar secuencias que garantizan que al momento de realizar una eleccion, esta incluya con el acuerdo de todos los procesos con respecto a la identidad de nuevo coordinador. Muchos de los algoritmos distribuidos necesitan que uno de los procesos que interviene en ellos, actúe como el coordinador,
iniciador, secuenciador o que desempeñe en cierta forma un papel
especial.
• Por ejemplo en el coordinador del algoritmo centralizado.
• No importa cual de todos los procesos que intervienen sea el
que sea el que asuma esta responsabilidad, uno de ellos debe
de hacerlo. 


Algoritmo de Anillo

Los procesos están organizados formando una estructura de anillo, donde a cada proceso se le asigna una posición en la estructura, de tal modo que cada proceso conoce a sus vecinos. Al inicializar el anillo se le da al proceso 0 el token, que circula en todo el anillo. Dicha ficha circula del proceso[k] al proceso[k + 1]. Como es obvio, el token estará circulando por todos los procesos, ya que estos se encuentran referenciados mediante una suerte de lista circular. Cuando un proceso obtiene la ficha de su vecino verifica si intenta entrar a una región crítica. En caso positivo el proceso entra a la región crítica (como se muestra en la zona marcada de rojo en la figura siguiente), hace el proceso necesario y sale de ella. Después de salir pasa la ficha a lo largo del anillo no se puede entrar a una segunda región crítica con la misma ficha (token o permiso).



El algoritmo del Grandulón

Cuando un proceso observa que su coordinador no le responde, el proceso procede de la siguiente manera: le envía un mensaje a todos los demás procesos, si responde un proceso con un PID mayor el proceso ha proceso habrá terminado su trabajo. Si ningún otro proceso responde, el proceso asume el rol de coordinador. En cualquier momento, un proceso puede recibir un mensaje de elección de uno de sus compañeros con un número menor. Cuando llega dicho mensaje, el receptor envía de regreso un mensaje OK al emisor para indicar que está vivo y que tomará el control. El receptor realiza entonces una elección, a menos que ya esté realizando alguna. En cierto momento, todos los procesos se rinden, menos uno, el cual se convierte en el nuevo coordinador. Anuncia su victoria al enviar un mensaje a todos los procesos para indicarles que a partir de ese momento es el nuevo coordinador. El mensaje se va propagando hacia el más “grande”.



Algoritmo de Paso de Testigo

            Otra forma de asegurar la exclusión mutua en el acceso a una sección crítica es organizar los procesos de la aplicación "como un anillo lógico, Por el anillo va circulando un testigo. Cuando un proceso desea entrar en la sección crítica, debe esperar a estar en posesión del testigo. Mientras el testigo no llegue a ese proceso, éste no podrá pasar a ejecutar dentro de la sección crítica. Cada vez que el testigo llega a un proceso, se comprueba si el proceso desea entrar en la sección crítica. En caso de no querer entrar, envía el testigo al siguiente proceso del anillo. En caso contrario no reenvía él testigo y pasa a ejecutar dentro de la sección crítica. El testigo permanece en el proceso hasta que abandone la sección crítica. Una vez abandonada, la sección crítica se envía el testigo al siguiente proceso, dándole la oportunidad de entrar en la sección crítica.




No hay comentarios.:

Publicar un comentario