Segundo Parcial 2018 Ej 3. Semaphore

Segundo Parcial 2018 Ej 3. Semaphore

de Jaime Horacio Zamora Almiron -
Número de respuestas: 4

Buenas,


Tengo un par de dudas sobre la solución para la implementación con semaphore del ejercicio.

1 - No entiendo como se esta dando prioridad al Inspector solo utilizando el semaforo tanque? ya que entiendo que de esa forma esta compitiendo de igual a igual con las generadoras y embotelladoras.

2 - Para que se utiliza el semaforo mutexProdEmb? entiendo que restringe el acceso a las generadoras y embotelladoras de a uno pero eso ya lo estaria haciendo el semaforo tanque?

3 - Relacionado a la duda 1, sería valido una solucion para dar prioridad al inspector utlizando una variable booleana que indique que esta el inspector, modificada al competir el inspector por el tanque, y las embotelladoras y generadoras pregunten por la variable y en caso de estar prendido se duerman, luego de usar el tanque el inspector despierta a los que se hayan dormido por esta variable.


Gracias.

En respuesta a Jaime Horacio Zamora Almiron

Re: Segundo Parcial 2018 Ej 3. Semaphore

de Jorge Merlino -

1 y 2) El semáforo mutexProdEmb sireve para implementar la prioridad del inspector. No permite que las máquinas se encolen en el semáforo tanque para darle prioridad al inspector en poder obtenerlo.

3) Si, se puede implementar usando una variable booleana.

En respuesta a Jorge Merlino

Re: Segundo Parcial 2018 Ej 3. Semaphore

de Juan Santiago De Leon Guedes -

De esa manera se asegura a un 100% la prioridad del inspector?
Para el caso en el que la productora esté usando el tanque y estén esperando para usarlo una embotelladora y un inspector, no podría darse esta secuencia de ejecución?secuencia de ejecución

En respuesta a Juan Santiago De Leon Guedes

Re: Segundo Parcial 2018 Ej 3. Semaphore

de Jorge Merlino -

Cosas parecidas a esas siempre pueden pasar.

En general cuando hay prioridades hay que limitar un punto a partir de que el sistema se enteró que el proceso prioritario ha llegado y a partir de ese momento darle prioridad. Si el proceso prioritario ya se inició pero no tuvo forma de indicarle su presencia al sistema no hay forma de darle prioridad dado que no se lo conoce.

En tu secuencia de ejecución no es correcto decir que el inspector "está esperando" dado que en realidad empieza a esperar en el paso 7. Lo que pasó ahí fue que simplemente la embotelladora llegó antes que el inspector.