Diferencia entre revisiones de «Solución ejercicio 3»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(revisión del profesor)
Línea 1: Línea 1:
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.
+
La solución no es correcta pues ambos procesos bloquea al hacer down sobre sendos semáforos cuyo contador vale 0. Ningún proceso progresa en su ejecución, por tanto, es indicio de que algo va mal.
Sería correcto si el semáforo del productor se inicializara a 1.
 
  
 +
Como nota simpática: Aunque parezca sorprendente, en los exámenes de prácticas de sistemas operativos siempre hay al menos entre 5 y 10 personas que siempre inicializan todos los semáforos a cero, con lo que suelen suspender.
  
También habría que asegurar que el proceso P1 comenzará antes que P2, no??
+
--[[Usuario:Pneira|Pneira]] 09:06 10 may 2011 (UTC)
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.--[[Usuario:Jherrera|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.
 
--[[Usuario:Jorcalmar|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.
 
 
 
--[[Usuario:DvS 013|DvS 013]] 19:00 9 may 2011 (UTC) si funciona asi, ya que yo fui el proceso productor en el ejemplo de pizarra xD
 

Revisión del 10:06 10 may 2011

La solución no es correcta pues ambos procesos bloquea al hacer down sobre sendos semáforos cuyo contador vale 0. Ningún proceso progresa en su ejecución, por tanto, es indicio de que algo va mal.

Como nota simpática: Aunque parezca sorprendente, en los exámenes de prácticas de sistemas operativos siempre hay al menos entre 5 y 10 personas que siempre inicializan todos los semáforos a cero, con lo que suelen suspender.

--Pneira 09:06 10 may 2011 (UTC)