You are on page 1of 18

Tecnolgico Nacional de Mxico

Instituto Tecnolgico de Apizaco


Ing. en Tecnologas de la Informacin y comunicaciones
Sistemas Operativos II
Catedrtico: Martn Rojas Ramrez
Marisol Mendieta Romano.
Uriel Miguel Morales Dominguez.
Christian Yahir Ascencio Galicia.
Sistemas Operativos 2

Lnes 04/09/2017
EXCLUSIN MUTUA
Visin general
Los algoritmos distribuidos de exclusin mutua pueden clasificarse en dos diferentes
categoras.
En las soluciones basadas en token, la exclusin mutua se logra pasando entre los
procesos un mensaje especial conocido como token. Slo hay un token disponible, y
quien lo tenga puede acceder al recurso compartido. Cuando termina, el token pasa
al siguiente proceso. Si un proceso tiene el token pero no est interesado en acceder
al recurso, simplemente lo pasa.
Las soluciones basadas en token tienen algunas propiedades importantes.
Primero, de acuerdo con la organizacin de los procesos, stos pueden garantizar
fcilmente que todos tendrn la oportunidad de acceder a los recursos. En otras
palabras, evitan la inanicin.
Segundo, el interbloqueo mediante los cuales diversos procesos se esperan unos a
otros para continuar pueden evitarse fcilmente, contribuyendo a su simplicidad.
Por desgracia, el principal inconveniente de las soluciones basadas en token es que,
cuando el token se pierde (por ejemplo, debido a que falla el proceso que lo tiene),
es necesario iniciar un intrincado proceso distribuido para garantizar la creacin de
un nuevo token, pero sobre todo, para que sea el nico token.
Como alternativa, muchos algoritmos distribuidos de exclusin mutua se derivan de
un mtodo basado en permisos. En este caso, un proceso que desea el primer
acceso a los recursos requiereel permiso de los otros procesos. Hay muchas formas
de garantizar tal permiso, y en las siguientes secciones consideraremos algunas.
Algoritmo centralizado
En un sistema distribuido, la manera ms directa de lograr la exclusin mutua
es simular lo que se hace en un sistema de un procesador. Se elige un proceso
como coordinador. Siempre que un proceso desea acceder a un recurso
compartido, enva un mensaje de peticin al coordinador mencionando el
recurso al que desea acceder, y solicita permiso. Si ningn otro proceso est
accediendo al recurso en ese momento, el coordinador devuelve una
respuesta en la que otorga el permiso.
Algoritmo descentralizado
Demos un vistazo a una solucin totalmente descentralizada. Lin y colaboradores
(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
de la siguiente manera. Se supone que cada recurso se replica n veces. 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 m n/2 coordinadores. A diferencia
del esquema centralizado que explicamos antes, asumimos que cuando un
coordinador no otorga el permiso para acceder a un recurso (lo que har cuando
haya otorgado el permiso a otro proceso), se lo informa al solicitante.
Este esquema bsicamente hace que la solucin original centralizada sea
menos vulnerable ante las fallas de un solo coordinador. La suposicin es que
cuando un coordinador falla, se recupera rpidamente pero habr olvidado
cualquier voto otorgado antes de fallar. Otra forma de ver esto es que el
coordinador se reinicia a s mismo en cualquier momento. El riesgo que
corremos es que un reinicio har que el coordinador olvide los permisos
otorgados previamente a algunos procesos para acceder al recurso. En
consecuencia, despus de su recuperacin puede nuevamente otorgar, de
manera incorrecta, permiso a otro proceso.
Algoritmo distribuido
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.
El algoritmo funciona de la siguiente manera. Cuando un proceso desea
acceder a un recurso compartido, elabora un mensaje que contiene el nombre
del recurso, su nmero de proceso, y el tiempo actual (lgico).
Cuando un proceso recibe un mensaje de peticin de otro proceso, la accin que tome
depender de su propio estado con respecto al recurso mencionado en el mensaje. Se deben
distinguir claramente tres casos:
1. Si el destinatario no accede al recurso y no desea acceder a l, enva un mensaje de OK al
remitente.
2. Si el destinatario ya cuenta con acceso al recurso, simplemente no responde. En vez de
eso, coloca la peticin en una cola.
3. Si el receptor tambin quiere acceder al recurso, pero an no lo ha hecho, compara el
registro de tiempo del mensaje entrante con el del mensaje que ya ha enviado a todos. El
menor gana. Si el mensaje entrante tiene un registro de tiempo menor, el receptor enva de
vuelta un mensaje de OK. Si su propio mensaje tiene un registro menor, el destinatario
coloca en la cola el mensaje entrante y no enva nada.
Algoritmo de anillo de token
Un mtodo completamente distinto para lograr de manera determinstica la
exclusin mutua aparece en la figura 6-16. Aqu tenemos una red de bus,
como podemos ver en la figura 6-16(a) (por ejemplo, ethernet), sin orden
inherente a alguno de los procesos. En software, un anillo lgico se construye
con cada proceso asignado a una posicin en el anillo, como lo muestra la
figura 6-16(b). 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.
Comparacin de los cuatro algoritmos
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 (para ello introducimos la variable k).
El algoritmo distribuido requiere n 1 mensajes de peticin, uno para cada
uno de los dems procesos, y los n 1 mensajes adicionales de autorizacin,
para un total de 2(n 1). (Suponemos que solamente se utilizan los canales
de comunicacin punto a punto.)
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, para un promedio de un
mensaje por regin crtica introducida. Por otra parte, en ocasiones el token
puede circular por horas sin que ningn proceso se interese en l. En este
caso, el nmero de mensajes por entrada a una regin crtica es ilimitado.
!!Gracias excelente lunes.

You might also like