Solución ejercicio 4
De Wiki de Sistemas Operativos
Revisión del 18:22 9 may 2011 de PCamino (discusión | contribuciones)
p1:
P2:
for (int i=0; i<2; i++) { #1
send(msg); #2
recv(msg); #3
}
for (int i=0; i<2; i++) { #1
recv(msg); #2
send(msg); #3
}
/: bloqueado, @: preparado, >: fin del programa, X: se ejecuta el planificador |i1=0 |i2=0 | i1=1| i2=1| i1=2|i2=2| | #1| #2| | | #3| | #1| #2| | | #3| | #1| | P1 |---|---/ | @---/ @---|---/ | @---/ @---> | | | | | | | | | | | | | | | | | | | #1| #2| | #3| | | #1| #2| | #3| | #1| P2 | | |---|---/ @---/ | @---|---/ @---/ |---> planif X | X | X X X X X | X X X X X |___|___|___|___|___|___|___|___|___|___|___|___|___|___| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
--DvS 013 16:36 9 may 2011 (UTC):realmente creo que bloquearian los dos procesos p2 desde t=4 y p1 desde t=5, no?¿
Otra posible solución:
X = El proceso pasa a estado bloqueado. / = El proceso pasa a estado preparado. > = Fin de su ejecucion
| #1| #2| | | | #3| #1| #2| | | | #3| #1|FIN| | | | | | | p1|---|---X | / |---|---|---X | | |---|---> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #1| #2| #3| | | | #1| #2| #3| | | #1|FIN| | | | | | p2| | |---|---|---X / | |---|---|---X / |---> | | | | | | | | | | | | | | | | | | | | | | | | | | | |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
--
Si es como creo, estoy de acuerdo con la segunda solución. Aunque me parece que se te ha olvidado indicar el desbloqueo de P1 en t = 10 (desertEagle).