[Examen Feb 2019] [Ejercicio 3 - Mailbox] Duda mutex

[Examen Feb 2019] [Ejercicio 3 - Mailbox] Duda mutex

de Maria Victoria Armand Ugon De Souza -
Número de respuestas: 3

Buenas tardes,

Tengo una duda de la solución de este ejercicio, en el procedimiento votante no me doy cuenta con que fin se usa el mailbox mb_mutex ya que al ejecutar mb_espero_mesa.receive() cumpliría la misma función que el mutex ya que controla que un votante o delegado solo puede ser atendido por la mesa. No seria redundante el mutex?

Agradezco me puedan sacar la duda.

Saludos!

///parte del código de votante

mb_espero_mesa.receive(); // cola de espera


mb_mutex.receive(); 

mb_identificador_mesa.send(documento); 

mb_espero_validacion.receive(ok)

 mb_mutex.send(NIL);

En respuesta a Maria Victoria Armand Ugon De Souza

Re: [Examen Feb 2019] [Ejercicio 3 - Mailbox] Duda mutex

de Jorge Merlino -

Ese mutex sirve para que no se desordenen los mensajes en la comunicación con la mesa. El problema sería algo así:


P1: mb_identificador_mesa.send(documento1);

P2: mb_identificador_mesa.send(documento2);

P2: mb_espero_validacion.receive(ok);

P1: mb_espero_validacion.receive(ok);


En ese caso P2 recibe el resultado del documento de P1 y viceversa.


En respuesta a Jorge Merlino

Re: [Examen Feb 2019] [Ejercicio 3 - Mailbox] Duda mutex

de German Moreira Bellini -
Buenas, pero ese caso se llega a dar en el ejercicio de la mesa de votación? La cola de mb_espero_mesa no se encarga de hacer que no se puedan mandar "al mismo tiempo" documentos de dos procesos diferentes, ya que uno va a quedar trancado ahí hasta que la mesa no termine de atender al primero?
En respuesta a German Moreira Bellini

Re: [Examen Feb 2019] [Ejercicio 3 - Mailbox] Duda mutex

de Jorge Merlino -
Creo que no me expliqué muy bien en el 2019. El problema es que la mesa no sincroniza la salida de los votantes por lo que la mesa puede atender al P2 del ejemplo antes de que el P1 haya ejecutado el receive.

Saludos