Articulo de referencia

El algoritmo de Maekawa

El algoritmo de Maekawa es un algoritmo de exclusión mutua en un sistema distribuido . La base de este algoritmo es un enfoque similar al de un quórum , donde cada sitio solo ne...

El algoritmo de Maekawa es un algoritmo de exclusión mutua en un sistema distribuido . La base de este algoritmo es un enfoque similar al de un quórum , donde cada sitio solo necesita solicitar permisos a un subconjunto de otros sitios.

Algoritmo

Terminología

  • Un sitio es cualquier dispositivo informático que ejecuta el algoritmo de Maekawa.
  • Para cualquier solicitud de acceso a la sección crítica :
    • El sitio solicitante es el sitio que solicita acceder a la sección crítica.
    • El sitio receptor es cualquier otro sitio que reciba la solicitud del sitio solicitante.
  • ts se refiere a la marca de tiempo local del sistema según su reloj lógico.

Algoritmo

Sitio solicitante :

  • Un sitio solicitantePAGi{\displaystyle P_{i}}envía un mensajepedido(ts,i){\displaystyle {\text{solicitud}}(ts,i)}a todos los sitios en su conjunto de quórumRi{\displaystyle R_{i}}.

Sitio receptor :

  • Al recibir unpedido(ts,i){\displaystyle {\text{solicitud}}(ts,i)}mensaje, el sitio receptorPAGj{\displaystyle P_{j}}voluntad:
    • Si el sitioPAGj{\displaystyle P_{j}}no tiene un sobresalienteconceder{\displaystyle {\text{subvención}}}mensaje (es decir, unconceder{\displaystyle {\text{subvención}}}mensaje que no ha sido publicado), entonces el sitioPAGj{\displaystyle P_{j}}envía unconceder(j){\displaystyle {\text{grant}}(j)}mensaje al sitioPAGi{\displaystyle P_{i}}.
    • Si el sitioPAGj{\displaystyle P_{j}}tiene una excepcionalconceder{\displaystyle {\text{subvención}}}mensaje con un proceso con mayor prioridad que la solicitud, luego sitioPAGj{\displaystyle P_{j}}envía unfallido(j){\displaystyle {\text{falló}}(j)}mensaje al sitioPAGi{\displaystyle P_{i}}y sitioPAGj{\displaystyle P_{j}}pone en cola la solicitud del sitioPAGi{\displaystyle P_{i}}.
    • Si el sitioPAGj{\displaystyle P_{j}}tiene una excepcionalconceder{\displaystyle {\text{subvención}}}mensaje con un proceso de menor prioridad que la solicitud, luego el sitioPAGj{\displaystyle P_{j}}envía unpreguntar(j){\displaystyle {\text{inquire}}(j)}mensaje al proceso al que actualmente se le ha concedido acceso a la sección crítica por parte del sitioPAGj{\displaystyle P_{j}}. (Es decir, el sitio con la destacadaconceder{\displaystyle {\text{subvención}}}mensaje.)
  • Al recibir unpreguntar(j){\displaystyle {\text{inquire}}(j)}mensaje, el sitioPAGk{\displaystyle P_{k}}voluntad:
    • Enviar unproducir(k){\displaystyle {\text{rendimiento}}(k)}mensaje al sitioPAGj{\displaystyle P_{j}}si y solo si el sitioPAGk{\displaystyle P_{k}}ha recibido unfallido{\displaystyle {\text{fallido}}}mensaje de algún otro sitio o siPAGk{\displaystyle P_{k}}ha enviado un rendimiento a otro sitio pero no ha recibido uno nuevoconceder{\displaystyle {\text{subvención}}}.
  • Al recibir unproducir(k){\displaystyle {\text{rendimiento}}(k)}mensaje, sitioPAGj{\displaystyle P_{j}}voluntad:
    • Enviar unconceder(j){\displaystyle {\text{grant}}(j)}Mensaje dirigido a la solicitud que se encuentra en la parte superior de su propia cola de solicitudes. Tenga en cuenta que las solicitudes que se encuentran en la parte superior tienen la máxima prioridad.
    • LugarPAGk{\displaystyle P_{k}}en su cola de solicitudes.
  • Al recibir unliberar(i){\displaystyle {\text{liberar}}(i)}mensaje, sitioPAGj{\displaystyle P_{j}}voluntad:
    • BorrarPAGi{\displaystyle P_{i}}de su cola de solicitudes.
    • Enviar unconceder(j){\displaystyle {\text{grant}}(j)}mensaje a la solicitud que se encuentra en la parte superior de su cola de solicitudes.

Sección crítica :

  • SitioPAGi{\displaystyle P_{i}}entra en la sección crítica al recibir unaconceder{\displaystyle {\text{subvención}}}mensaje de todos los sitios enRi{\displaystyle R_{i}}.
  • Al salir de la sección crítica,PAGi{\displaystyle P_{i}}envía unliberar(i){\displaystyle {\text{liberar}}(i)}mensaje a todos los sitios enRi{\displaystyle R_{i}}.

Conjunto de quórum (Rincógnita{\displaystyle R_{x}}) : Un conjunto de quórum debe cumplir las siguientes propiedades:

  1. ij[RiRj]{\displaystyle \forall i\,\forall j\,[R_{i}\bigcap R_{j}\neq \emptyset ]}
  2. i[PAGiRi]{\displaystyle \forall i\,[P_{i}\in R_{i}]}
  3. i[|Ri|=K]{\displaystyle \forall i\,[|R_{i}|=K]}
  4. SitioPAGi{\displaystyle P_{i}}está contenido exactamenteK{\displaystyle K}conjuntos de solicitudes
Por lo tanto:|Ri|norte1{\displaystyle |R_{i}|\geq {\sqrt {N-1}}}

Actuación

  • Número de mensajes de red;3norte{\displaystyle 3{\sqrt {N}}}a6norte{\displaystyle 6{\sqrt {N}}}
  • Retraso de sincronización: 2 retrasos en la propagación de mensajes
  • El algoritmo puede bloquearse si no se implementan protecciones. [ 1 ] [ 2 ]

Véase también

Referencias

  1. "Algoritmo de exclusión mutua de Maekawa: enfoque de votación" .
  2. "Exclusión mutua distribuida" (PDF) .
  • M. Maekawa, "Un algoritmo √N para la exclusión mutua en sistemas descentralizados", ACM

Transacciones en Sistemas Informáticos, vol. 3, núm. 2, págs. 145–159, 1985.

  • Mamoru Maekawa, Arthur E. Oldehoeft, Rodney R. Oldehoeft (1987). Sistemas operativos: conceptos avanzados. Benjamin/Cummings Publishing Company, Inc.
  • B. Sanders (1987). La estructura de información de los algoritmos de exclusión mutua distribuidos. ACM Transactions on Computer Systems, vol. 3, n.º 2, págs.  145-159.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Maekawa%27s_algorithm&oldid=1306919367 "