Diferencia entre revisiones de «Solución ejercicio 3»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
m
 
(No se muestran 3 ediciones intermedias de 2 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]]
 
 
 
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.
 

Revisión actual del 12: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)