1er parcial 2022 Setiembre, Ej3

1er parcial 2022 Setiembre, Ej3

de Nicolas Grosso San Roman -
Número de respuestas: 1

Hola!

  1. No me queda claro cómo se lleva la cuenta de los flotadores. Veo que la define pero nunca más la utiliza. La función dar_flotador ya se encarga supongo.
  2. Luego, en el procedimiento de los profesionales al salir de la piscina, en el último for donde despierta a los posibles amateurs esperando para entrar, solo llama a 29 y no a 30, por qué es esto? En el peor de los casos solo entran 15, si todos necesitan 2 flotadores, pero en el mejor solo entran hasta 30, y entendería que tengo que despertar a 30 posibles amateurs esperando. ¿Qué ocurre si despierto a 30?
  3. Esta misma duda me queda en la condición de acceso a los amateurs. Se los bloquea si cant_amateurs >= 29, pero no debería ser >=30? Ya que si hay 29 amateurs, y este necesita dos flotadores, igualmente lo dejo pasar y se trancará en dar_flotador hasta que le den los flotadores. Lo que pasa es que con esta lógica debería despertar a infinitos amateurs, total se van a trancar en dar_flotador, lo cual claramente está mal.

No estoy entendiendo del todo el funcionamiento de los flotadores y las condiciones.

Gracias.

En respuesta a Nicolas Grosso San Roman

Re: 1er parcial 2022 Setiembre, Ej3

de Jorge Merlino -
  1. No se precisa llevar la cuenta de los flotadores. Esa variable flotadores podría no estar.
  2. Si entran 30 amateurs que precisan dos flotadores puede ser que todos agarren uno y se queden en deadlock. Es el problema de los filósofos.
Saludos