Você está na página 1de 22

EXCLUSION MUTUA EN LOS SISTEMAS DISTRIBUIDOS Para los sistemas distribuidos resultan fundamentales la concurrencia y la colaboracin entre diversos

procesos. En muchos casos, esto significa tambin que los procesos necesitarn de acceso simultneo a los mismos recursos. Para evitar que tales accesos concurrentes corrompan los recursos, o que los vuelvan inconsistentes, se necesita encontrar soluciones que garanticen que los procesos tengan acceso mutuamente exclusivo.

REQUERIMIENTOS PARA PROVEER EXCLUSION MUTUA EM1:(seguridad) A lo ms un proceso puede ejecutarse en su seccin crtica (sc) a la vez.

EM2: (vitalidad) A un proceso que requiere entrada a su sc, eventualmente se le conceder. Cualquier proceso que se ejecute en su sc, eventualmente la abandonar. (Libre de deadlock e inanicin)
EM3: (ordenamiento) La entrada a la sc debe ser otorgada en orden pas antes.

CLASIFICACION DE LOS ALGORITMOS DISTRIBUIDOS DE EXCLUSION MUTUA En las soluciones basadas en token.- Se logra pasando entre los proceso un mensaje especial conocido como token. Solo hay un token disponible y quien lo tiene accede al recurso compartido. Caractersticas: Evitan la inanicin El interbloqueo puede evitarse fcilmente. Un mtodo basado en permisos.- Un proceso que dese el primer acceso a los recursos requiere el permiso de otros procesos.

UN ALGORITMO CENTRALIZADO.

Un nodo es asignado como NODO DE CONTROL.


Este nodo de control accede a todos los objetos compartidos. Solo el nodo de control toma decisiones sobre la alocacin de los recursos compartidos.

Toda la informacin necesaria es concentrada en el nodo de control.


Si el nodo de control falla, la exclusin mutua se cae.

ALGORITMO CENTRALIZADO
0 1
OK

2
No hay respuesta

0
Liberacin

1
OK

(a)

(b)

(c)

DESCRIPCION: El proceso 1 solicita permiso al coordinador para acceder a un recurso compartido. El permiso es otorgado, (b) Luego el proceso 2 solicita permiso para acceder al mismo recurso. El coordinador no responde, (c) Cuando el proceso 1 libera el recurso, ste se lo indica al coordinador, que despus le responde a 2.

Ventajas: Se puede generalizar para asignacin de recursos en general. Es justo, las peticiones son atendidas en el orden que son realizadas. Requiere slo de tres mensajes (requerir, otorgar, liberar) Desventajas: Centralizado Si el coordinador no enva respuesta ante la negacin, el solicitante no sabe si la respuesta no le llega por negacin o por falla.

UN ALGORITMO DESCENTRALIZADO Lin y colaboradores en el ao 2004 proponen el uso de un algoritmo de votacin que puede ejecutarse con un sistema basado en DHT. En esencia, su solucin se extiende al coordinador central, cada rplica tiene su propio coordinador para controlar el acceso de procesos concurrentes . Sin embargo, siempre que un proceso desee acceder al recurso, ste simplemente tendr que lograr una votacin mayoritaria a partir de > /2 coordinadores.

Este esquema bsicamente hace que la solucin original centralizada sea menos vulnerable ante las fallas de un solo coordinador. El riesgo que corremos es que un reinicio har que el coordinador olvide los permisos otorgados previamente a algunos procesos para acceder al recurso. Sea p la probabilidad de que un coordinador se remide durante un intervalo de tiempo . La probabilidad, P[k], de que cada k de m coordinadores se reinicie durante el mismo intervalo es:

= (1 )

ALGORITMOS DISTRIBUIDOS

En 1978, el artculo de Lamport sobre la sincronizacin de relojes present el primero de tales algoritmos. Ricart y Agrawala (1981) lo hicieron ms eficiente. El algoritmo de Ricart y Agrawala requiere un ordenamiento total de todos los eventos del sistema. Es decir, para cualquier par de eventos, tales como los mensajes, debe ser inequvoco cul de ellos realmente ocurre primero.

PAUTAS QUE DEBEN CUMPLIR TODOS LOS ALGORITMOS DISTRIBUIDOS

Todos los nodos tiene igual cantidad de informacin, en promedio. Cada nodo tiene solo una visin parcial del sistema total y debe tomar decisiones en base a esta informacin. Todos los nodos tienen igual responsabilidad sobre la decisin final. Todos los nodos realizan el mismo esfuerzo, en promedio, para llegar a la decisin final. Falla en un nodo, en general, no resulta en un colapso total del sistema. No existe un reloj comn con el cual regular el tiempo de los eventos.

FUNCIONAMIENTO El proceso que quiere entrar en su seccin crtica enva un mensaje a los dems n-1 procesos y a s mismo. Posibles respuestas de los n-1 procesos restantes: Si el receptor no est en su seccin crtica enva un OK al proceso emisor. Si el receptor est en la seccin crtica no contesta. Pone el pedido en cola. Si quiere entrar en la seccin crtica compara las estampillas de los mensajes, la menor (mas antigua) gana.

ALGORITMO DE RICART Y AGRAWALA


0
8
12 OK

0
OK

0
Accede al recurso

1
12

(a)

(b)

(c)

DESCRIPCION: Dos procesos desean acceder a un recurso compartido en el mismo momento, (b) El proceso 0 contiene el menor registro de tiempo, de modo que gana, (c) Cuando el proceso 0 se lleva a cabo, enva tambin un OK, de modo que el 2 puede seguir adelante.

Ventajas Est libre de interbloqueos. Est libre de inanicin dado que la entrada en la seccin crtica est planificada de acuerdo a un ordenamiento basado en estampillas de tiempo. Este tipo de ordenamiento asegura que los procesos son atendidos en orden primero en llegar-primero en ser servido. El nmero de mensajes por entrada a la seccin crtica es 2(n-1) Este es el mnimo nmero de mensajes requeridos por entrada a la seccin crtica cuando los procesos actan independientemente y concurrentemente.

Problemas:

Si cualquier proceso falla no es posible responder a las peticiones hechas (se puede interpretar incorrectamente). Probabilidad de falla contra un proceso coordinador es n veces mayor.
Primitiva de comunicacin de membresa de grupo.

UN ALGORITMO DE ANILLO DE TOKEN Un mtodo completamente distinto para lograr de manera determinstica la exclusin mutua aparece en la figura. En software, un anillo lgico se construye con cada proceso asignado a una posicin en el anillo. En el anillo, las posiciones se pueden localizar con el orden numrico de las direcciones de red o por otros medios. No importa cul es el orden. Todo lo que importa es que

cada proceso sabe cul es el siguiente despus de l.

FUNCIONAMIENTO: La idea es ordenar los n procesos en un anillo lgico, y hacer pasar un token en la direccin del reloj.

Si un proceso quiere entrar a su sc, esperar el token y lo retendr. Al salir de la sc, pasar el token a su vecino. Si un proceso que no quiere entrar a su sc recibe el token, lo pasa inmediatamente al vecino.
Se requerirn de 1 a n-1 mensajes para obtener el token.

ALGORITMO DE ANILLO DE TOKEN

DESCRIPCION: (a) Un grupo desordenado de procesos en una red. (b) Un anillo lgico construido en el software.

COMPARACION ENTRE LOS CUATRO ALGORITMOS Se listan los algoritmos anteriormente descritos y tres propiedades clave: El nmero de mensajes requeridos para que un proceso acceda y libere un recurso compartido. El retraso antes de que pueda darse el acceso (si suponemos que los mensajes se pasan de manera secuencial sobre una red). Algunos problemas asociados con cada algoritmo.

CUADRO DE COMPARACION
ALGORITMO MENSAJES POR ENTRADA / SALIDA RETRASO ANTES DE LA ENTRADA (DURANTE EL TIEMPO DEL MENSAJE) PROBLEMAS

Centralizado

Falla el coordinador

Descentraliza do
Distribuido Anillo Token de

3mk, k = 1, 2,
2(n-1) 1a

2m

Inanicin, baja eficiencia.

2(n-1) 0 a n-1

Falla de cualquier proceso. Perdida del token, falla del proceso.

CONCLUSIONES
El algoritmo centralizado es el ms simple y tambin el ms eficiente. Slo requiere de tres mensajes para entrar y salir de una regin crtica: una peticin, un permiso para entrar, y una liberacin para salir. En el caso descentralizado, vemos que estos mensajes necesitan ser realizados por cada uno de los m coordinadores, pero ahora es posible que se necesiten varios intentos. Con el algoritmo de anillo de token, el nmero es variable. Si cada proceso requiere entrar de manera constante a una regin crtica, entonces cada token arrojar como resultado una entrada y una salida.

Por ltimo, todos los algoritmos excepto el descentralizado sufren mucho en el caso de una falla. Debemos incluir medidas especiales y complejidad adicional para evitar que una falla tire todo el sistema.

Você também pode gostar