Está en la página 1de 9

Sincronizacin en sistemas distribuidos

Sincronizacin de relojes
En general los algoritmos distribuidos tienen las siguientes propiedades: 1. La informacin relevante se distribuye entre varias mquinas 2. Los procesos toman las decisiones slo con base en la informacin 3. Debe evitarse un punto de fallo en el sistema . !o e"iste un relo# com$n o alguna otra fuente precisa del tiempo global Algoritmo de Lamport Lamport se%al que la sincroni&acin de relo#es no tiene que ser absoluta. 'i dos procesos no interact$an no es necesario que sus relo#es est(n sincroni&ados. )dems lo que importa no es que los procesos concuerden de manera e"acta en la *ora+ sino que coincidan en el orden en el cual ocurren los eventos. )s, para cierta clase de algoritmos lo que importa es la consistencia interna de los relo#es+ no su particular cercan,a al tiempo. -ara estos algoritmos los relo#es se denominan relo#es lgicos. Lamport defini una relacin llamada .a ocurre antes de b. /ab0. Esta relacin se puede observar de manera directa en dos situaciones: 1. 'i a y b son eventos en el mismo proceso y a ocurre antes de b+ entonces ab es verdadero. 2. 'i a es el evento de env,o de un mensa#e por un proceso y b es el evento de la recepcin del mensa#e por otro proceso+ entonces ab tambi(n es verdadero. El algoritmo de Lamport consiste en lo siguiente+ cuando un proceso a env,a un mensa#e el mensa#e lleva consigo su marca de tiempo 1/a0+ si el proceso receptor b tiene un tiempo 1/b0 mayor que el del proceso a+ entonces el mensa#e es aceptado y no pasa nada. -ero si la marca de tiempo de a+ es decir 1/a0 es mayor que 1/b0+ entonces el proceso b a#usta su relo#+ toma la marca de tiempo 1/a0 y le suma uno /2er siguiente figura0. Lamport plantea que dos eventos no ocurren e"actamente al mismo tiempo. 1on este algoritmo se puede obtener un orden total para todos los eventos del sistema. 4 1 2 3 4 4 4 4 2 3 6 6 7 14 12 1 16 17 24 5 12 18 17 21 2 29 34 1 2 9 7 5 14 28 26 27 29 7 12 16 24 2 27 32 4 36

Algoritmo de Cristian 1uando un sistema *ace uso de un servidor de tiempo /qui& porque tiene instalado un receptor 332 para obtener un tiempo real0+ se puede usar el algoritmo de 1ristian. Este algoritmo consiste en que todos los clientes se sincronicen con el servidor de tiempo en forma peridica. 'eg$n el algoritmo de 1ristian el tiempo no debe correr *acia+ por lo tanto el cambio debe reali&arse de forma gradual+ esto se consigue *aciendo lo siguiente+ si se generan 144 interrupciones por segundo+ lo normal es que se tengan que a%adir 14 milisegundos en cada interrupcin. Entonces si se quiere atrasar un relo#+ se podr,an a%adir 5 o menos milisegundos en cada interrupcin *asta que el relo# est( sincroni&ado. 'i lo que se quiere es adelantar el relo# entonces en cada interrupcin *ay que a%adir 11 milisegundos *asta lograrlo.

:tro problema en este algoritmo es que el tiempo que tarda el servidor en responder al emiso es distinto de cero. -ero este retraso depende de factores como+ por e#emplo la carga de ese momento en el sistema. ;na forma de medirlo es tomando el tiempo inicial <= y el tiempo final <> obtener la diferencia y dividirlo entre 2+ /<> ?<=0@2. Algoritmo de Berkeley En el algoritmo de 1ristian el servidor de tiempo es pasivo. En el caso del algoritmo de AerBeley est activo y reali&a un muestreo de forma peridica a todas las mquinas para preguntarles su tiempo. En base al tiempo de todas las mquinas incluy(dose (l mismo+ obtiene el promedio y les indica a cada mquina cuanto tiempo deben adelantarse o retrasarse para lograr la sincroni&acin. )l igual que en 1ristian+ para adelantar o retrasar el relo# *ay que *acerlo paulatinamente de acuerdo a las interrupciones que genera el cronmetro. -rocedimiento. 1. El servidor de tiempo le envia a cada mquina su tiempo 2. Las mquinas cliente le indican el n$mero de segundos que estn adelantadas o retrasadas con respecto al tiempo del servidor+ si es un n$mero positivo entonces estn adelantadas y si es negativo estn atrasadas. 3. El servidor suma todos estos datos y los divide entre el n$mero de mquinas incluy(ndose (l mismo. . El resultado lo suma a su propio tiempo obteniendo <+ y calcula el n$mero de segundos que le falta o le sobra a una mquina para llegar a ese tiempo <+ y se lo env,a a la mquina. Lo mismo *ace para cada mquina. 8. Las mquinas reciben el resultado y sincroni&an su tiempo. ;na modificacin es considerar el tiempo que tardan los mensa#es y sumarlo a la respuesta del servidor. E#emplo: 'upongamos que tenemos mquinas y una de ellas es el servidor de tiempo. Las mquinas tienen los siguientes tiempos /en este caso mane#aremos el tiempo en minutos0: 18:12 D62 1 :14 16:44 <C/D62E 7E2 0@ CE2 Le suma 2 al servidor. 18:1 E6 1 :14 16:44 D 6 D22 18:36 E 7 E2 18:36

;na me#ora es eliminar los tiempo que est(n muy ale#ados del tiempo del servidor.

Exclusin mutua
Un algoritmo centralizado 'e elige un proceso coordinador y cuando un proceso desea entrar a la regin cr,tica+ env,a un mensa#e de solicitud al coordinador donde indica la regin cr,tica a la que desea entrar y pide permiso. 'i ning$n otro proceso esta por el momento en esa regin cr,tica+ el coordinador le otorga el permiso. 'i e"iste un proceso en la regin cr,tica+ el servidor no constesta y el proceso se bloquea. El servidor forma en una fila la solicitud del

proceso bloqueado por el momento. 1uando el primer proceso sale de la seccin cr,tica+ el servidor le avisa al proceso bloqueado que ya puede entrar a la seccin cr,tica. El m(todo garanti&a e"clusin mutua. -ero tiene limitaciones. El coordinador puede fallar y todo se viene aba#o. 'i un cliente no obtiene respuesta+ cmo distingue entre un servidor muerto o la negacin del permisoF. 'e podr,a enviar un mensa#e de negacin de permiso. Un algoritmo distribuido. /El algoritmo de Gicart y )graHala 0 Este algoritmo requiere de un orden total de todos los eventos en el sistema. -ara cualquier pare#a de mensa#es debe quedar claro qui(n ocurri primero. 1uando un proceso desea entrar a la regin cr,tica+ construye un mensa#e con el nombre de (sta+ su n$mero de proceso y la *or actual+ y la env,a a todos los dems procesos y de forma conceptual a (l mismo. 'e puede utili&ar comunicacin en grupo confiable. 1uando un proceso recibe un mensa#e de solicitud de otro proceso para entrar a una regin cr,tica+ debe distinguir tres casos: 1. 'i el receptor no est en la regin cr,tica y no desea entrar a ella+ env,a de regreso un mensa#e oB al emisor. 2. 'i el receptor desea entrar a la regin cr,tica+ no responde+ sino que forma la solicitud en una fila. 3. 'i el receptor desea entrar a la regin cr,tica+ pero no lo *a logrado todav,a+ compara la marca de tiempo en el mensa#e recibido con la marca contenida en el mensa#e que envi a cada uno. La menor de las marcas gana. 'i el mensa#e recibido es menor+ el receptor env,a un mensa#e oB. 'i su propio mensa#e tiene una marca menor+ el receptor forma la solicitud en una fila y no env,a nada. ;n proceso puede entrar a la regin cr,tica si obtiene permiso de todos. 'i es as,+ entra y cuando sale env,a mensa#es oB a todos los procesos de su fila y elimina los elementos de la fila. 1on este m(todo la e"clusin mutua queda garanti&ada sin bloqueo ni inanicin. El n$mero de mensa#es necesarios por entrada es de 2/nD10+ donde n es el n$mero total de procesos en el sistema. E#emplo: 'upongamos que tenemos procesos numerados del 4 al 3+ los procesos 1 y 3 desean entrar a la regin cr,tica+ 4 no desea entrar a la regin cr,tica y 2 esta dentro de la regin cr,tica. Los procesos 1 y 3 env,an mensa#e casi al mismo tiempo+ pero la marca de 3 es menor a la de 1 /1 tiene marca de tiempo igual a 3 y 3 tiene marca de tiempo igual a 20. 1uando 4 recibe el mensa#e de 3 le otorga el permiso+ como la marca de tiempo de 3 es menor que la de 1 entonces 1 debe enviar un mensa#e de oB a 3+ 2 esta dentro de la regin cr,tica por lo que forma el mensa#e de 3 en una fila. 1uando 4 recibe el mensa#e de 1 le responde con un oB+ 3 al recibir el mensa#e de 1 c*eca su propia marca de tiempo+ como su marca de tiempo es menor que la de 1 entonces forma la solicitud de 1 es una fila y no responde nada. El proceso 2 al recibir mensa#e de 1+ forma el mensa#e en una fila ya que 2 esta en la r.c.

3 4 2 3 1 2 2 3 3
Los procesos 1 y 3 env,an mensa#es con su marca de tiempo

2
Esta dentro de la r.c.

oB 4 oB 1 oB
1 fila Gespuesta de los procesos al mensa#e de 1 y3

3 1 fila

El proceso 3 tiene el permiso de 4 y 1 para entrar a la regin cr,tica+ y el proceso 1 tiene el permiso de 4. 1uando 2 sale de la regin cr,tica env,a mensa#es de oB a los procesos de su fila+ en este caso+ a los procesos 3 y 1.

oB

1 oB

2 sale de la r.c.

3
1

3 1 fila

El proceso 3 ya tiene el permiso de todos por lo tanto puede entrar a la r.c.+ mientras que el proceso 1 debe esperar a que 3 salga de la regin cr,tica. 1uando 3 salga de la regin cr,tica debe enviar un mensa#e de oB al proceso 1. )*ora e"isten n puntos de falla. 'ino *ay respuesta+ se interpretar como ua negacin de permiso+ a$n cuando el proceso *aya muerto+ podr,a *aber bloqueos. ;na posible modificacin es la siguiente+ cada ve& que se *aga una solicitud debe *aber una respuesta negativa o positiva. >unciona bien con comunicacin en grupo+ donde se tenga un registro de los integrantes del grupo+ qui(nes entran y qui(nes *an salido o *an fallado. >unciona bien con grupos peque%os. El algoritmo es ms lento+ ms comple#o y ms caro y menos robusto que el centrali&ado. -ero sirve para estimular a investigadores a producir algoritmos $tiles. Algoritmo de anillo de ic!as 'e necesita construir un anillo lgico+ donde a cada proceso se le asigna una posicin en el anillo. 'e da una fic*a al primer proceso+ la cual circula en todo el anillo. 'i necesita entrar a la regin cr,tica y tiene la fic*a+ entonces entra+ cuando sale de ella entrega la fic*a al siguiente proceso. !o se permite entrar a una segunda regin cr,tica con la misma fic*a. 'i un proceso no esta interesado en entrar a la regin cr,tica solo pasa la fic*a. -roblemas. La fic*a se puede perder+ *ay que regenerarla I1unto tiempo un proceso debe esperar para considerar que la fic*a se *a perdidoF <al ve& alguien la est( ocupando. 'i un proceso falla+ se puede solucionar solicitando un reconocimiento al vecino al recibir la fic*a. 'i no *ay reconocimiento se da por muerto y se entrega la siguiente fic*a al siguiente proceso. 'e debe actuali&ar el grupo de procesos.

Algoritmos de eleccin
En muc*os algoritmos distribuidos es necesario que un proceso act$e como coordinador Icmo elegirloF. 'upondremos que cada proceso tiene asociado un n$mero $nico. En general+ los algoritmos de eleccin intentan locali&ar el proceso con el m"imo n$mero de proceso y designarlo como coordinador. )dems supondremos que cada proceso conoce el n$mero de proceso de todos los dems. El ob#etivo de un algoritmo de eleccin es garanti&ar que al inicio de una eleccin+ (sta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador. El algoritmo del granduln "#arc$a%&olina '()*+ ;n proceso - reali&a una eleccin cuando se da cuenta que el coordinador no responde+ de la siguiente forma: 1. - env,a un mensa#e eleccin a los dems procesos con un n$mero mayor. 2. 'i nadie responde+ - gana la eleccin y se convierte en el coordinador. 3. 'i uno de los procesos con un n$mero mayor responde+ toma el control. El traba#o de - termina.

1uando un proceso toma el papel del coordinador debe enviar un mensa#e coordinador a los dems procesos par que (stos se den por enterados.. 'i un proceso inactico se activa+ reali&a una eleccin. 'i tiene el n$mero mayor+ ganar la eleccin. De a*, el nombre de .algoritmo del grandulnJ.
falla 8 4 eleccin oB

1 2

falla 8 4 4 8

falla

1 2 falla 8 4

1 2

coordinador 3 2

Un algoritmo de anillo Este algoritmo no utili&a una fic*a. 'uponemos que los procesos tienen un orden y que conocen a su sucesor. 1uando alg$n proceso observa que el coordinador no funciona+ construye un mensa#e eleccin con su propio n$mero de proceso y env,a el mensa#e a su sucesor. 'i (ste est inactivo+ el emisor pasa sobre el sucesor y va *acia el siguiente n$mero del anillo. El emisor a%ade su propio n$mero de proceso a la lista en el mensa#e.

1uando el mensa#e da toda la vuelta /el proceso recibe un mensa#e con su propio n$mero0. Entonces circula de nuevo el mensa#e anunciando quien es el nuevo coordinador /el del n$mero ms grande0 y adems se anuncia qui(nes son miembros del anillo. E#emplo: 'upongamos que tenemos 6 procesos numerados del 4 al 8+ el proceso 8 es el coordinador pero *a fallado+ el primero en darse cuenta en el proceso 2+ as, que env,a mensa#es de eleccin+ cuando recibe un oB+ sabe que su traba#a *a terminado. 3 envia mensa#es de eleccin lo mismo que + no recibe ning$n oB+ por lo que asume que (l es el nuevo coordinador.

,ransacciones atmicas
'on una abstraccin de mayor nivel+ que oculta aspectos t(cnicos y permite a los programadores concentrarse en los algoritmos y la forma en que los procesos traba#an #untos en paralelo. 1uando un proceso desea llevar a cabo una transaccin les pregunta a los procesos que llevarn a cabo las operaciones si se comprometen+ en caso de que se comprometan todos+ entonces los resultados se vuelven permanentes+ si uno de ellos o ms no se compromenten entonces la transaccin se aborta. K todo debe regresar al estado *asta antes de empe&ar la transaccin+ sin que e"istan efectos colaterales. ;n e#emplo de transaccin es cuando se lleva a cabo una operacin bancaria. El modelo de transaccin 'e supone que el *ardHare subyacente mane#a de manera transparente los errores de comunicacin /retransmisiones+ almacenamiento de informacin en b$feres+ etc.0 Almacenamiento estable El almacenamiento estable tiene tres categor,as: 1. G)L 2. Disco duro+ que puede da%arse debido a problemas con la cabe&a lectora del disco. 3. )lmacenamiento estable. 'e puede implantar con dos disco ordinarios. 1ada bloque en la unidad 2 es una copia e"acta del bloque correspondiente en la unidad 1. 'e supone que la unidad 1 es correcta. -rimiti.as de transaccin Los sistemas que mane#an transacciones deben tener al menos las siguientes primitivas. 1. AEM=!N<G)!')1<=:! 2. E!DN<G)!')1<=:! 3. )A:G<N<G)!')1<=:! . GE)D 8. 3G=<E Lo que est dentro de AEM=!N<G)!')1<=:! y E!DN<G)!')1<=:! se debe llevar a cabo todo o nada. -ropiedades de las transacciones "AC/0+ Las transacciones tienen cuatro propiedades fundamentales. Las transacciones son: 1. )tmicas. -ara el mundo e"terior+ la transaccin ocurre de manera indivisible. 2. 1onsistentes. La transaccin no viola los invariantes del sistema. 3. )isladas. Las transacciones concurrentes no interfieren entre s,. 'i dos o ms transacciones se e#ecutan al mismo tiempo+ para cada una de ellas y para los dems procesos+ el resultado final aparece como si todas las transacciones se e#ecutasen de manera secuencial en cierto orden /el resultado no debe verse afectado en caso de intercalar los procesos0. . Durables. ;na ve& comprometida una transaccin+ los cambios son permanentes. ,ransacciones anidades Las transacciones pueden contener subtransacciones+ a menudo llamadas transacciones. La transaccin de nivel superior puede producir *i#os que se e#ecuten en paralelo entre s,+ en procesadores distintos+ para me#orar el desempe%o. 1ada *i#o puede a su ve& tener ms *i#os. 'i una subtransaccin falla+ entonces la transaccin de orden superior /de la cual derivan todas0 debe abortar+ asi los compromisos *ec*os por las dems subtransacciones deben des*acerse. -or lo tanto la durabilidad slo se aplica a las transacciones del nivel ms alto.

/mplantacin

Espacio de trabajo pri.ado 1uando un proceso inicia una transaccin se le otorga un espacio de traba#o privado+ si la transaccin se compromete+ se copia el estado del espacio de traba#o privado al realO pero si aborta+ no pasa nada y el espacio de traba#o real no se modifica. ;na me#ora es crear en el espacio de traba#o privado+ apuntadores a los bloques con los cuales la transaccin va a traba#arO si la operacin es una escritura+ se copia el bloque al espacio privado y se modifica. 1uando la transaccin se compromete+ los apuntadores se despla&an *acia el espacio de traba#o real de forma atmica+ y los que estaban en el espacio de traba#o real se marcan como bloques libres. 'i la operacin es una lectura no *ay necesidad de copiar los bloques. 'i la transaccin aborta+ los bloques en el espacio de traba#o privado /las copias0 se marcan como bloques libres y los apuntadores se eliminan. Bit1cora de escritura anticipada En este caso antes de cambiar cualquier bloque+ primero se escribe un registro de la bitcora de escritura anticipada la transaccin que reali&a el cambio+ el arc*ivo y bloques modificados y los valores anterior y nuevo. Despu(s de esto se reali&a el cambio en el arc*ivo. 'i la transaccin se compromete se escribe un registro en la bitcora acerca de esta accin+ las estructuras de datos ya no tienen que modificarse puesto que ya estn modificadas. En caso de que la transaccin aborte+ solo *ay que reali&ar las operaciones de la bitcora de la $ltima ala primera para des*acer cada cambio reali&ado. ) esta accin se le llama retroalimentacin. -rotocolo de compromiso de dos ases En un sistema distribuido el llevar a cabo una transaccin requiere+ muc*as de las veces+ de la cooperacin de varios procesos en diferentes mquinas. La idea del protocolo de dos fases es la siguiente: ;no de los procesos funge como coordinador y es quien realmente e#ecuta la transaccin. El protocolo de compromiso comien&a cuando el coordinador escribe una entrada en la bitcora indicando el inicio del protocolo+ despu(s env,a un mensa#e a cada uno de los procesos implicados para que est(n listos para el compromiso. 1uando uno de los procesos implicados recibe el mensa#e+ verifica si esta listo para comprometerse+ escribe una entrada en la bitcora y env,a de regreso su decisin. 1uando el coordinador recibe todas las respuestas+ sabe si establece el compromiso o aborta. 'i uno o ms procesos no se comprometen /o no responden0+ la transaccin aborta. De cualquier modo+ el coordinador escribe una entrada en la bitcora y env,a entonces un mensa#e a cada subordinado para informarle de la decisin. El uso de la bitcora permite que si el coordinador falla pueda recuperarse puesto que todo lo *a escrito en la bitcora.

Control de concurrencia
Cerradura 1uando un proceso necesita leer o escribir en un arc*ivo como parte de una transaccin+ primero cierra el arc*ivo. El control de cerraduras puede implantarse a trav(s de un controlador centrali&ado o uno local en cada mquina+ (ste controlador mantendr una lista de los arc*ivos cerrados y rec*a&ar los intentos+ de otros procesos+ por cerrar un arc*ivo ya cerrado. -ara me#orar este esquema se podr,an distinguir las cerraduras de lectura de las de escritura. 'e puede compartir una cerradura para lectura /varios procesos pueden leer del mismo arc*ivo pero se e"cluyen los escritores para que no puedan modificar el arc*ivo0+ pero la cerradura de escritura debe ser e"clusiva de un solo proceso. Cerradura de dos ases La adquisicin y liberacin de las cerraduras en el preciso momento en que se necesiten o se de#en de necesitar puede conducir a cierta inconsistencia y a bloqueos. En ve& de esto+ si el proceso durante su e#ecucin necesita de varias cerraduras+ primero las adquiere en la fase de crecimiento y las libera en la fase de contraccin. )s, si un proceso no puede adquirir todas las cerraduras que necesita+ entonces libera las que llevaba *asta el momento+ espera y vuelve a comen&ar. Cerradura estricta de dos ases En este caso el proceso adquiere primero todas las cerraduras y las libera solo *asta que la transaccin *aya terminado o aborte Control optimista de la concurrencia

El control optimista de la concurrencia mantiene un registro de los arc*ivos le,dos o en los que se *a escrito algo. En el momento del compromiso+ se verifican todas las dems transacciones para ver si alguno de los arc*ivos *a sido modificado desde el inicio de la transaccin. 'i esto ocurre+ la transaccin aborta+ sino se reali&a el compromiso. Esto se traba#a me#or si se utili&a espacio de traba#o particular. &arcas de tiempo

Blo2ueos en sistemas distribuidos


1. 2. 3. . El algoritmo del avestru& Deteccin -revencin Evitar los bloqueos /mediante la asignacin cuidadosa de recursos0

0eteccin centralizada de blo2ueos En este esquema un coordinador central mantiene la grfica de recursos de todo el sistema. 1uando el coordinador detecta un ciclo+ elimina uno de los procesos para romper el ciclo. 1uando un proceso actuali&a su grfica+ le env,a un mensa#e al coordinador para que actuali&a la grfica global. ;n problema que se podr,a presentar es que los mensa#es no lleguen a tiempo y el coordinador vea un bloqueo. ;na solucin podr,a ser utili&ar el algoritmo de Lamport para disponer de un tiempo global+ as, cuando el coordinador detecte un bloqueo+ primero env,a un mensa#e a todas las mquinas por si *ay un mensa#e con tiempo anterior al $ltimo recibido que provoc el bloqueo+ tal ve& (ste ayude a eliminar el ciclo. -re.encin distribuida de blo2ueos. La prevencin de bloqueos consiste en el dise%o cuidadoso del sistema+ que cada proceso ocupe solo un recurso a la ve&+ e"igir que los procesos soliciten los recursos desde un principio y *acer que liberen todo cuando soliciten uno nuevo. Llevar esto a la prctica puede ser un poco dif,cil. Aasndose en un sistema distribuido con tiempo global y transmisiones atmicas+ son posibles algoritmos para evitar esto. Estos se basan en asignarle a cada transaccin una marca de tempo en el inicio y esta es $nica. E"isten dos algoritmos bsicos siguiendo esta idea. 1.D espera%muerte En este se clasifican los procesos en dos: antiguos y vie#os. 1on esto tenemos dos casos: a0 El proceso nuevo esta ocupando un recurso+ debido a que el antiguo ya lleva muc*o tiempo en e#ecucin y *a consumido recursos con anterioridad+ se opta por de#ar que el proceso espere *asta que el #oven termine para que pueda continuar su e#ecucin. b0 ;n proceso #oven requiere un recurso que esta siendo ocupado por uno vie#o. )qu, se opta por matar al proceso #oven para que el vie#o contin$e su e#ecucin+ teniendo en cuenta que el proceso al ser #oven volver *a ser invocado un poco despu(s+ por lo que en alg$n momento al e#ecutar este proceso encontrar el recurso libre.

2.D !erida%espera En este se retoma la idea anterior de proceso #oven y vie#o por lo que volvemos a tener los mismos casos. a0 ;n proceso vie#o requiere recursos ocupados por uno #oven. )qu, se elimina la transaccin del proceso #oven y el proceso vie#o toma su lugar. b0 ;n proceso #oven requiere recursos que tiene un proceso vie#o. )qu, el proceso #oven espera *asta que el vie#o termine+ de este modo se evita el estar matando a un proceso continuamente.