Solución ejercicio 1
X = El proceso pasa a estado bloqueado. / = El proceso pasa a estado preparado.
| | | #1| #2| #3| #4| #5| #1| | | | #2| #3| #4| | #5| #1| | | | p1| | |---|---|---|---|---|---| | | |---|---|---| |---|---> | | | | | | | | | | | | | | | | | | | | | | | | | #1| #2| | | | | | | #3| #4| #1| | | | #2| | | #3| #4| #1| p2|---|---X | | | | / |---|---|---| | | |---X / |---|---|---> | | | | | | | | | | | | | | | | | | | | | |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Observaciones:
- El proceso P2 bloquea al hacer down sobre el semáforo s2 cuyo contador vale 0.
- En el instante 15, el proceso P2 bloquea de nuevo pues hace down sobre el semáforo s2 cuyo contador vale 0.
- En los semáforos no se vuelve a comprobar la condición que hizo que el proceso bloqueara, a difencia de los cerrojos.
--Pneira 08:59 10 may 2011 (UTC)
Duda sobre el ejercicio:
He realizado varias veces la traza de los procesos y en el instante 15 el semáforo de s2 me sale 1,no sé si me estaré pasando algún detalle por alto.S2 empieza en 0,en el instante 7 P1 realiza un up en s2 (valor s2=1), y se realiza un down en el instante 15 por lo que volvería a valer 0, ¿qué estoy pasando por alto? :S --Josedelfer 11:00 13 dic 2011 (UTC)
--Albsolnog 11:36 13 dic 2011 (UTC) Fijate que para t=6 p2 estaba bloqueado y por tanto almacenado en la lista, justo aqui p1 realiza un up(S2) en el instante 6 no en el 7 lo que implica que p2 pasa a estado preparado pero su contador no se toca (mira el codigo de up())
--Josedelfer 13:24 13 dic 2011 (UTC) Es cierto,cuando esta bloqueado al hacer el up no aumenta el contador,era el detalle que estaba pasando por alto. Gracias