Solución ejercicio 3
La solución no es correcta, ya que se bloquearía el proceso que ejecuta el while del productor y también el del consumidor, y no se avanzaría en la ejecución. Sería correcto si el semáforo del productor se inicializara a 1.
También habría que asegurar que el proceso P1 comenzará antes que P2, no??
Por lo que seguro que funcionaria con el contador de P1 igual a 1, y contador de P2 igual a 0, no??
R:Creo que no, ya que en caso de que empieze por P2 bloquea a la espera de que algún proceso haga un UP sobre dicho semáforo.
Los procesos son lanzados y tu no sabes a priori qué proceso se va a ejecutar, por lo que tienes que asegurarte que si se ejecuta el consumidor antes que el productor pase a estado bloqueado. Creo que la solución ,tal y como se dice el compañero al principio, es modificar el contador del productor poniendolo a 1.--Jherrera
Lo que he intentado dar a entender en (R:Creo que no, ya que en caso de que empieze por P2 bloquea a la espera de que algún proceso haga un UP sobre dicho semáforo) es lo que tu dices Jherrera. --Jorcalmar 17:22 9 may 2011 (UTC)
Es necesario que el semáforo del productor esté inicializado a 1, para que tenga vía libre para comenzar a producir cuando sea asignado al procesador. Para el correcto funcionamiento, es necesario que el consumidor esté inicializado a 0.