Solución ejercicio 3

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

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.

--DvS 013 19:00 9 may 2011 (UTC) si funciona asi, ya que yo fui el proceso productor en el ejemplo de pizarra xD