2. Algoritmo de Ricart y
Agrawala
Jack Brayan Rojas Jimenez
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Computación
Sistemas distribuidos
Enero, 2021
4. El algoritmo de Ricart y
Agrawala es un algoritmo de
exclusión mutua distribuida
desarrollado en 1981 por Glenn
Ricart y Ashok Agrawala
Historia
Fue desarrollado como una
alternativa mejorada al
algoritmo centralizado, el cual,
es el algoritmo más sencillo de
exclusión mutua.
El algoritmo de Ricart y Agrawala
está basado en la comunicación
por medio de mensajes entre
distintos nodos que no
comparten ninguna zona de
memoria.
5. El algoritmo de Ricart y Agrawala se basa en la coordinación entre N procesos para
conceder la entrada a una determinada región crítica, es decir, en la implementación de
exclusión mutua entre N procesos. La idea básica es que los procesos que deseen entrar en
una sección crítica deben tener la aprobación de todos los demás nodos involucrados en
la coordinación. Sin la aprobación de todos los demás un nodo no puede acceder a dicha
sección crítica.
Descripción
6. Para tener la aprobación de todos
los procesos que participan en la
exclusión mutua, el nodo inicial
debe crear un mensaje de petición
. Cuando a un proceso le llegue el
mensaje de petición de otro debe
responder inmediatamente para
conceder el permiso, si es que está
en condiciones de dárselo, o
mantenerlo a la espera de su
respuesta, si el nodo que realiza la
petición no está en condiciones de
que se le conceda la entrada
Descripción
7. Descripción
Cabe indicar que cada proceso tendrá una variable de estado propia en función de si
está fuera de la sección crítica, LIBERADA, si quiere entrar en la sección crítica,
BUSCADA, o si se encuentra en la sección crítica, TOMADA. Cuando un proceso
recibe la petición de otro de los procesos, tomará una de las siguientes acciones en
función de su estado:
ACCIONES EN FUNCIÓN DE SU ESTADO
LIBERADA BUSCADA TOMADA
8. Descripción
ACCIONES EN FUNCIÓN DE SU ESTADO
LIBERADA TOMADA
Si el proceso receptor está fuera de la
región crítica, tiene su variable de estado
en LIBERADA, y no quiere entrar,
responde inmediatamente al proceso
remitente.
Si el proceso receptor se encuentra dentro
de la región crítica, tiene su variable de
estado TOMADA, no responde y pone en
cola esa petición
9. Descripción
ACCIONES EN FUNCIÓN DE SU ESTADO
BUSCADA
Si el proceso receptor también quiere entrar en la región crítica pero aún no lo ha hecho,
tiene su variable de estado BUSCADA, comparará la marca de tiempo que lleva el
mensaje con la marca de tiempo de su propio mensaje de petición. Entonces, si la marca
de tiempo de su solicitud es menor que la que tiene el mensaje que ha recibido, encolar
dicho mensaje y no responderá. En caso contrario, al tener su propio mensaje una marca
de tiempo más alta que la del mensaje que le ha llegado responderá inmediatamente al
proceso remitente.
10. Ejemplo
Para illustrate el algoritmo, proponemos Una Situación Que involucra a Tres Procesos, , y .
P1, P2 y P3