Diferencia entre revisiones de «Solución ejercicio 4»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(revisión del profesor)
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
 
 
--[[Usuario:DvS 013|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.
 
     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|  |  |  |  |  |  |
Línea 40: Línea 12:
 
     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)
 
 
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 ([[Usuario:PCamino|desertEagle]]).
 

Revisión del 11:51 10 may 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)