Sunteți pe pagina 1din 5

Tiempos, relojes y el ordenamiento de eventos en un Sistema Distribuido.

El concepto de ordenamiento temporal de eventos penetra en nuestra manera de pensar acerca de los sistemas. Un sistema distribuido consiste en una coleccin de distintos procesos los cuales espacialmente estn separados y se comunican con algn otro para intercambiar mensajes. Un sistema es distribuido si el retraso de la transmisin de mensajes no es insignificante comparado con el tiempo entre eventos en un solo proceso. Un sistema de multiprocesamiento en un nico equipo implica problemas similares a los de un sistema distribuido por la orden impredecible en el que ciertos eventos pueden ocurrir. En un sistema distribuido, algunas veces es imposible decir que uno o dos eventos ocurrieron primero. La relacin " happened before", es por lo tanto, slo un ordenamiento parcial de los acontecimientos en el sistema.

El ordenamiento parcial. La mayora de la gente probablemente dira que un evento a ocurre un paso antes de un evento b si ocurri en una fecha anterior a la b. Se podra justificar esta definicin en trminos de las teoras fsicas de tiempo. Sin embargo, si un sistema es cumplir con una especificacin correcta, entonces esa especificacin debe ser dada en trminos de hechos observables dentro del sistema. Si la especificacin es en trminos de tiempo fsico, entonces el sistema debe contener los relojes reales. Incluso si contiene los relojes reales, todava hay el problema de que tales relojes no son muy exactos y no guardan el tiempo fsico preciso. Por lo tanto, se definir la relacin " happened before" sin necesidad de utilizar relojes fsicos.

Definicin. La relacin "" en el conjunto de eventos de un sistema es la menor relacin que satisface la siguiente tres condiciones: (1) Si a y b son eventos en el mismo proceso, y a viene antes de b, entonces a b. (2) Si a es el el envo de un mensaje por un proceso y b es la recepcin del mismo mensaje por otro proceso, entonces ab. (3) Si a a y a c, entonces a c. Dos eventos distintos a y b se dice que son concurrentes si a --/-> b y b --/-> a. Suponemos que a --/->a para cualquier evento a. Esto implica que --/-> es ordenamiento parcial irreflexivo en el conjunto de todos los eventos en el sistema. un

Relojes lgicos Se define un Ci reloj para cada proceso Pi a ser una funcin que asigna un nmero Ci (a) en cualquier evento a en ese proceso. Todo el sistema de relojes est representado por la funcin C que asigna a cualquier evento b el nmero C (b), donde C (b) = C / (b) IFB es un acontecimiento en proceso Pj. Por ahora, no hacemos ninguna hiptesis sobre la relacin de los nmeros de CI(a) el tiempo fsico, por lo que podemos pensar en los relojes Ci tan lgico en lugar de relojes fsicos. Ellos pueden ser implementados por los contadores que no tienen mecanismo de tiempo real.

Nuestra definicin puede estar basada en el orden en el cual los eventos acurren. La condicin ms razonable es que si un evento a ocurre antes que otro evento b , entonces a puede suceder en un menor tiempo que b. Clock Condition. Para eventos a,b: If ab then C(a)<C(b). Es sencillo observar de nuestra definicin de la relacin que la Condicin de reloj es satisfecha si las siguientes dos condiciones se cumplen: C1. Si a y b son eventos en el proceso Pi, y a llega antes que b, entonces C(a)<C(b). C2. Si a es el enviado de un mensaje por el proceso Pi y b es el que recibe el mensaje por el proceso Pj, entonces C(a)<C(b). Para garantizar que el sistema de relojes satisface la condicin Clock Condition, podemos asegurar que satisface las condiciones C1 y C2. La condicin C1 es simple, los procesos solo necesitan obedecer la siguiente regla de implementacin. IR1. Cada proceso Pi incrementa Ci entre algunos eventos sucesivos. Para conocer la condicin C2, nosotros requerimos que cada mensaje m contenga un timestamp Tm el cual es igual al tiempo que el mensaje fue enviado. IR2. Si un evento a es el envo de unmensaje m por el proceso Pi, entonces el mensaje m contiene un timestamp Tm=Ci(a). Ordenando Totalmente Los Eventos Podemos usar un sistema de relojes que satisfagan las condiciones del reloj para un completo orden sobre el conjunto de todos los eventos del sistema. Simplemente podemos ordenar los eventos por fechas. Para romperlas, usamos un ordenamiento arbitrario que sea menor al proceso, es decir, si a es un evento en proceso Pi y b es un evento en proceso Pj,

entonces ab si y slo si (i) Ci <a> <Cj<b> o (ii) Ci<a> =cj<b> y Pi < Pj. En otras palabras, la relacin es una forma de que sucedi antes del ordenamiento parcial al total. El ordenamiento depende de los sistemas de reloj Ci, y este no es nico. Obteniendo cualquier relacin de ordenamiento total, con su extensin, existe un sistema de relojes que satisfacen la condicin de reloj. Consideremos un sistema compuesto de una coleccin de procesos con un solo recurso. Solo un proceso puede usarse el recurso del tiempo, as que el proceso debe sincronizarse para evitar conflictos. Deseamos encontrar un algoritmo para garantizar el recurso del proceso que satisfaga las siguientes tres condiciones: 1) Un proceso que deben reflejarse los recursos que antes de otro. 2) Diferentes respuestas para los recursos deben garantizar el orden en el que se hicieron. 3) Si cada proceso debe ser garantizado el recurso eventualmente se borra. Estos son los requerimientos naturales, y especifican que esto es para una solucin correcta. Esto es importante para realizar lo que es un problema no trivial, usando un proceso central de escudo con respuestas en el orden en el que se recibieron para no trabajar. Suponga que P1 enva una respuesta a P0 y ste enva un mensaje a P2. Despus de recibir el mensaje, P2 enva una respuesta a P0. Para resolver este problema, se implementa un sistema de relojes con reglas |R1 y |R2, y se usa para definir un ordenamiento total de todos los eventos, lo cual provee un ordenamiento total de todas las respuestas y operaciones borradas. Para simplificar el problema, hacemos algunas suposiciones, esto no es esencial, pero son introducidos para no tener distracciones en los detalles de implementacin. Primero asumimos que esto es para dos procesos Pi y Pj, los mensajes se envan desde Pi hasta Pj son recibidos en el mismo orden como se enviaron. Adems asumimos que cada mensaje es recibido, y que un proceso puede enviar mensajes directamente a otros procesos. Cada proceso mantiene una cola de respuestas que nunca alterarn otros procesos. Cada cola de respuestas contiene inicialmente el mensaje recurso de repuesta T0:P0, donde P0 es el proceso inicial y T0 es el valor inicial del reloj. El algoritmo es definido por las siguientes cinco reglas: 1) Para responder el recurso, el proceso Pi enva el mensaje recurso de respuesta Tm:Pi para todos los dems procesos y pone el mensaje en la cola de respuestas, donde Tm es el timestamp del mensaje.

2) Cuando el proceso Pj recibe el mensaje, este toma lugar en la cola de respuestas y enva un mensaje (timestamp) a Pi. 3) Para borrar el recurso, el Proceso Pi remueve cualquier mensaje de recurso de respuesta Tm:Pi de la cola de respuestas. 4) Cuando el proceso Pj recibe el mensaje Pi, borra cualquier Tm:pi de la cola de respuestas. 5) El Proceso Pi es garantizado el recurso cuando satisface las dos siguientes condiciones: i) Existe un mensaje Tm:Pi en la cola de respuestas que es ordenado antes de cualquier otra respuesta en esta cola por la relacin . Y ii) Pi, recibe un mensaje de todos cada proceso despus del timestamp Tm. Esto es fcil para verificar que el algoritmo se define por las reglas que satisfacen las condiciones. Esto es un algoritmo distribuido. Cada proceso independientemente sigue estas reglas, y esto no es un proceso central sincronizado o de almacenamiento central. Aproximadamente esto es garantizado para implementar cualquier diseo de sincronizacin para un sistema distribuido multiproceso. La sincronizacin es especificada en trminos de una maquina de estados, que consiste un conjunto C de posibles comandos, un conjunto S de posibles estados y una funcin e: CxS S. Cada proceso independiente simula la ejecucin de la maquina de estados, usando comandos usados por todos los procesos. La sincronizacin es archivada porque todos el orden de comando de procesos es acuerdo a los tiempos de vida. Relojes fsicos Vamos a introducir una coordenada de tiempo fsico en nuestra el espacio-tiempo, y vamos a Ci (t) la lectura de Ci del reloj en el tiempo t fsica. Se supone que los relojes funcionan de forma continua en lugar de en discretas "ticks". (Un reloj discreto puede ser pensarse como un continuo en el que hay un error de hasta "tick" en la lectura). Suponer que Ci (t) es una funcin contina, diferenciable de t excepto por discontinuidades de salto aislados donde el reloj se restablece. Para que el Cg reloj a ser un reloj fsico verdadero, debe funcionar a aproximadamente la velocidad correcta. Es decir, que debe tener dCi(t)/dt -~ 1 para todo t. PCI. Existe una constante k<< 1 x Tal que para todo i| dCi(t)/dt -~ 1 |<x. Para tpicos relojes controlados de cristal, k10-6. No es suficiente para que los relojes de forma individual para funcionar a aproximadamente la tasa correcta. PC2. Para todo i, j: [Ci (t) - CY (t) [<.

PC2 establece que la variacin en la altura de una lnea nica tick es menos que . Desde hace dos relojes diferentes que nunca se ejecutar exactamente la misma velocidad, tendern a desplazarse ms y ms aparte. Nuestro algoritmo para asegurar que PC2 se mantiene. Sea m un mensaje que se enva en el momento de fsica t y recibida en el tiempo t Vm=t-t Yo para ser el retardo total del mensaje m. Este retraso, por supuesto, No se sabe que el proceso que recibe m. Sin embargo, asumimos que el proceso de recepcin sabe algo de mnima retrasar la m 0 tal que m Vm. IR 1 '. Para cada i, si Pi no recibe un mensaje en t fsicas de tiempo, entonces C / es diferenciable en t y dCi (t) / dt > 0. IR2. (A) Si Pg enva un mensaje m en el tiempo t fsica, entonces m contiene una marca de tiempo Tm = C / (T). (B) Una vez recibiendo un mensaje m en el tiempo t ', el proceso P / juegos / C (t') igual al mximo (Cj (t '- 0), + Tm / Zm). Aunque las normas de especificacin formal en trminos de el parmetro de tiempo fsico, un proceso slo necesita conocer su propio reloj y la lectura de las marcas de tiempo de los mensajes que recibe. Vamos a demostrar que este algoritmo de sincronizacin de reloj se puede utilizar para satisfacer la condicin PC2. Suponemos que el sistema de procesos se describe mediante un grfico dirigido en la que un arco de Pi proceso para procesar P / representa una lnea de comunicacin sobre la cual se envan mensajes directamente de Pi / P. Decimos que un mensaje se enva a travs este arco cada T segundos, si por cualquier t, Pi enva al menos un mensaje a P / entre lo fsico tiempos t y t +-R.

S-ar putea să vă placă și