Examen Febrero 2019 Mailboxes

Examen Febrero 2019 Mailboxes

de Ignacio Carlos Monzalvo Milan -
Número de respuestas: 1

Buenas, tengo una duda sobre la solución del proceso Mesa().


El proceso ejecuta las siguientes instrucciones:

while(true)  do 

  mb_atencion.receive(); 

  mb_fila_prioridad.receive(esperando);


En la solución solo se ejecuta la instruccion ¨mb_fila_prioridad.send(espeando);¨ luego de que un votante termino de votar. 

Segun entiendo el proceso quedaria bloqueado hasta que otro proceso ejecute la instruccion  ¨mb_fila_prioridad.send(espeando);¨, pero esta solo se ejecuta una vez que esta habilitado para votar. Esto no generaría un deadlock?

En respuesta a Ignacio Carlos Monzalvo Milan

Re: Examen Febrero 2019 Mailboxes

de Santiago Iturriaga -

Hola Ignacio:

El mailbox mb_fila_prioridad se usar como contador. Adentro de ese mailbox siempre debería haber un mensaje con la cantidad de votantes esperando. Lo que falta en la solución es inicializar el mailbox con 0 haciendo mb_fila_prioridad.send(0); en el main.

Saludos,

Santiago.