[Examen 30 de julio 2018] Problema 3 - ADA - Por qué cant_paletas >= 2?

[Examen 30 de julio 2018] Problema 3 - ADA - Por qué cant_paletas >= 2?

de Juan Guillermo Alvez Santestevan -
Número de respuestas: 1

Buenas, en este ejercicio en la tarea panaderia se definen los encuentros "damePaleta(p : out integer)" y "dameOtraPaleta(p : out integer)" , en la solución no me queda muy claro por qué es necesario diferenciar entre la primer paleta que toma el panadero de la segunda. Estoy viendo que la única diferencia entre las guardas de los 2 encuentros que ofrece es que uno pregunta si cant_paletas >= 2 para ofrecer el encuentro damePaleta. Pienso que esa diferenciación puede ser para evitar un posible deadlock. Pero no pasaría que si hay una paleta disponible, y hay un panadero sin tomar todavía su primer paleta esta no se ofrezca?


Gracias.


En respuesta a Juan Guillermo Alvez Santestevan

Re: [Examen 30 de julio 2018] Problema 3 - ADA - Por qué cant_paletas >= 2?

de Jorge Merlino -

Si, puede pasar que haya una sola paleta disponible y no se le ofrezca a un panadero que quiere su primer paleta, pero eso es necesario para evitar deadlock.

Es como el problema de los filósofos, si todos agarran un tenedor y quieren el segundo quedan en deadlock. Necesariamente para evitarlo van a haber situaciones en que hay un tenedor disponible para un filósofo pero no se le puede dar para que no se produzca deadlock.