Posible deadlock en solucion. Ej3 parcial 2022

Posible deadlock en solucion. Ej3 parcial 2022

de Ignacio Federico Alesina Acuña -
Número de respuestas: 1

Hola buenas tardes. Viendo el ejercicio 3 del parcial del 2022, plantee una respuesta un poco distinta a la dada en la solucion. Pero me quedaba la duda pues me daba cuenta de que si los 5 empleados entraban a la vez y perdian el procesador luego de chequear que su pedido era pesado, me originaba un deadlock en el caso de que los pedidos de los 5 fueran pesados. Entonces pense en agregar una condicion de que solo pudieran trabjar 4 a la vez, pero en realidad existe la posibilidad de que puedan trabajar 5 a la vez sin problemas. Para ver como lo habian resuelto ustedes vi la solucion y note que no chequean eso y si no me equivoco puede pasar lo mismo. Si hay 5 clientes que hacen pedidos pesados. Los 5 empleados pierden el procesador al hacer if(esPesado(p)), entonces todos entran al if y al subir la variable que lleva el conteo los otros ya estan dentro del if entonces se quedaran todos trancados en el receive(empleados_esperando_ayuda) indefinidamente.

Quisiera saber si estoy en lo correcto en dicho caso de deadlock o hay algun factor que no estoy considerando.

Saludos

En respuesta a Ignacio Federico Alesina Acuña

Re: Posible deadlock en solucion. Ej3 parcial 2022

de Jorge Merlino -

En la ferretería hay 6 empleados y a lo sumo 5 clientes. Si hay 5 clientes siendo atendidos por 5 empleados siempre va a haber un empleado libre para ayudar a alguien que lo necesite.

Saludos