Está en la página 1de 12

Prctica 2

Algoritmo de Ricart y Agrawala



Objetivo
Programar mediante Java-RMI un
conjunto de procesos distribuidos
que autorregulen el acceso a una
zona de exclusin mutua comn

Descripcin

Para ello usaremos el algoritmo de Ricart y


Agrawala

Transparencias de teora 5.15 5.18

RICART, G.; AGRAWALA, A.K.: An Optimal Algorithm for


Mutual Exclusion in Computer Networks, Communications of
the ACM, Vol. 24, No.1, pp.917, 1981

Este algoritmo se basa en el algoritmo de


marcas de tiempo de Lamport (transparencias
4.30-4.37)

Como requisito auxiliar necesitaremos un


algoritmo como el de NTP (transparencia 4.20)

Modo de operacin: despliegue

a prctica consiste en ! procesos java en tres


nodos distintos "2 procesos por m#uina$

%e debern programar scripts #ue permitan


arrancar automticamente los procesos en
todas las m#uinas desde un &nico nodo'

Modo de operacin: proceso

(odos los procesos ejecutan el mismo


programa) garanti*ando tiempos aleatorios
independientes

Mediante una llamada a sleep) simulan la


reali*acin de un clculo de duracin aleatoria)
distribuida uni+ormemente entre ,'- y ,'.s

uego entrarn en una seccin cr/tica com&n de


gestin distribuida "%0$

Permanecern en ella de ,'1 a ,'-s

Repetirn el clculo 2 estancia en %0 1,, veces



Modo de operacin: logs

0ada ve* #ue un proceso entra en la %0)


escribe en un +ic3ero de log una l/nea como:

Px 4 tiempo

x es el identi+icador de proceso "del 1 al !$

tiempo es el n&mero de milisegundos transcurridos


desde el 1 de enero de 156,) seg&n el reloj de la
m#uina local "%ystem'current(imeMillis"$$

0uando abandone la %0) imprimir

Px % tiempo

Mismas especi+icaciones #ue para la entrada



Modo de operacin: comprobacin

7na ve* +inali*ada la ejecucin) debern unirse


los +ic3eros de log y veri+icar #ue no 3a 3abido
violacin de la seccin cr/tica

0omo los relojes de cada m#uina no estn


sincroni*ados) debemos

0alcular mediante un algoritmo similar al 8(P los


desv/os de las m#uinas respecto a una de ellas)
#ue se tomar como re+erencia) y el error cometido
en la medida del desv/o

Modo de operacin: comprobacin

Dic3o algoritmo se ejecutar 1, veces al


principio y 1, veces al +inal del programa) para
estimar desviacin y error cometido'

os tiempos se corregirn con la estimacin del


desv/o calculada

a comprobacin slo admitir la simultaneidad


dentro de la seccin cr/tica si el tiempo de
colisin es in+erior al error obtenido en la
estimacin del desv/o de los relojes

8(P
Modo de operacin: resumen
8(P 91,
91,
%imular clculos
4stancia %0
,'-:,'. s
,'1:,'- s
4ntrada %0
%alida %0
P9 4 tiempo
P9 4 tiempo
%lo en la m#uina
de re+erencia
Recoger logs 0orregir tiempos
;usionar y
comprobar logs
91,,

Detalles

4l programa se 3ar en <A=A:RM>

Debe +uncionar en una de las versiones de


?indows o inu9 del laboratorio

as prcticas se reali*an en parejas

Pla*os de entrega y de+ensa en la entrada de la


asignatura:
3ttp:@@vis'usal'es@rodrigo@(eac3ing@(eac3ing'3tml

7na ve* pasado el pla*o de entrega) la prctica


no se puede modi+icar

a deteccin de copia implica suspender


automticamente la asignatura

Detalles

Deben entregarse los +ic3eros +uente del


programa) comprimidos

7n +ic3ero por clase java

4n principio) un &nico +ic3ero es necesario

%cripts de lan*amiento

a entrega se reali*ar por e-mail desde la


direccin #ue tengis de la usal "dos correos
por pareja) con los mismos +ic3eros$

4l asunto del mensaje debe ser: AApellidos)


8ombre) D8>: prctica 2B'

Al correo rodriCusal'es

4valuacin

Para obtener un .) basta con #ue +uncione


correctamente en el ?indows o inu9 de clase

%e considera correcto:

Due realice bien el algoritmo) sin provocar interbloqueo


ni inanicin.

ue lo !aga siguiendo los requisitos de"inidos

a comprobacin de logs no debe detectar violaciones


de la %0
A partir de a3/) se valorar la calidad del trabajo:

Documentacin del cdigo +uente

Principios de ingenier/a "modularidad) claridad) etc$

De+ensa del trabajo "evaluacin individual$

También podría gustarte