Diferencia entre revisiones de «Solución ejercicio 4»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
 
(No se muestran 8 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
p1:<source lang="c">
 
for (int i=0; i<2; i++) { #1
 
    send(msg);            #2
 
    recv(msg);            #3
 
}</source>
 
P2:<source lang="c">
 
for (int i=0; i<2; i++) { #1
 
    recv(msg);            #2
 
    send(msg);            #3
 
}</source>
 
 
  /: 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
 
 
 
Otra posible solución:
 
 
 
     X = El proceso pasa a estado bloqueado.
 
     X = El proceso pasa a estado bloqueado.
 
     / = El proceso pasa a estado preparado.
 
     / = El proceso pasa a estado preparado.
 
     > = Fin de su ejecucion
 
     > = Fin de su ejecucion
 
  
 
     | #1| #2|  |  |  | #3| #1| #2|  |  |  | #3| #1|FIN|  |  |  |  |  |  |
 
     | #1| #2|  |  |  | #3| #1| #2|  |  |  | #3| #1|FIN|  |  |  |  |  |  |
   p1|---|---X  |  /  |---|---|---X  |  |   |---|--->  |  |  |  |  |  |  |
+
   p1|---|---X  |  /  |---|---|---X  |  /   |---|--->  |  |  |  |  |  |  |
 
     |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
     |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
     |  |  | #1| #2| #3|  |  |  | #1| #2| #3|  |  | #1|FIN|  |  |  |  |  |
 
     |  |  | #1| #2| #3|  |  |  | #1| #2| #3|  |  | #1|FIN|  |  |  |  |  |
Línea 38: Línea 11:
 
     |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
 
     |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
 
     0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
 
     0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
 +
 +
--[[Usuario:Pneira|Pneira]] 09:51 10 may 2011 (UTC)

Revisión actual del 18:31 13 dic 2011

    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

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