Diferencia entre revisiones de «Solución ejercicio 3»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(solución)
m
 
(No se muestran 5 ediciones intermedias de 4 usuarios)
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 bloquean 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.
  
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]]
 

Revisión actual del 11:52 4 dic 2017

La solución no es correcta pues ambos procesos bloquean 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.

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