Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sincronizacion
Sincronizacion
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
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.