Consulta conceptual sobre implementacion de semaforos de conteo a partir de binarios.

Consulta conceptual sobre implementacion de semaforos de conteo a partir de binarios.

de Maria Jose Yañez Dacosta -
Número de respuestas: 3

Hola,

Estoy repasando concurrencia y estuve pensando esta implementación.

En las PPT veo que la liberación del mutex se hace cruzada, es decir, el proceso que hace el V(wait) no libera la zona crítica para que lo haga el otro proceso al que despierta.

Ahora bien, pensando un poco en esto, veo que el que despierta luego no modificar variables globales, por lo que me parece que podria ser valido tambien no liberar el mutex de forma cruzada.


Les comparto como me parece que podria funcionar tambien:



otra solucion
Les parece que esto tambien es valido?. Estoy tratando de corregir errores conceptuales que puedo tener, y sé que incluso con ejemplos simples como estos, uno puede ir haciéndolo.

Desde ya muchas gracias!!!.





En respuesta a Maria Jose Yañez Dacosta

Re: Consulta conceptual sobre implementacion de semaforos de conteo a partir de binarios.

de Alberto Castro -

La versión de las ppt obliga a la alternancia. En tu versión Vcont() se puede ejecutar indefinidamente y Pcont() puede sufrir de inanición.

Saludos,

Alberto.



En respuesta a Alberto Castro

Re: Consulta conceptual sobre implementacion de semaforos de conteo a partir de binarios.

de Maria Jose Yañez Dacosta -

Gracias por las respuestas. Pero no entendí está última, me ayudan a entender? :).

Por un lado, no veo porque estaría mal que  Vcont() se ejecute indefinidamente, porque en si los semáforos de conteo permiten que se ejecute tantas veces como se quiera el V. 

El mal uso del semáforo es otra cosa, pero en si los de conteo no limitan el uso de las ejecuciones del V.

Y lo de la inanición como se daría?. Tampoco lo estaría viendo.

Desde ya muchísimas gracias si me pueden ayudar a ver las cosas.