Solución ejercicio 1

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
     X = El proceso pasa a estado bloqueado.
     / = El proceso pasa a estado preparado.


     |   |   | #1| #2| #3| #4| #5| #1|   |   |   | #2| #3| #4|   |   |   | #5| fin de ejecucion
   p1|   |   |---|---|---|---|---|---|   |   |   |---|---|---|   |   |   |---|   |   |
     |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
     | #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |   | #2| #3| #4| fin de ejecucion
   p2|---|---X   |   |   |   |   /   |---|---|---|   |   |   |---|---|---|   |   |   |
     |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
     |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
     0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

El proceso P2 comienza su ejecucion y al hacer el down al semaforo s2 que vale 0 bloquea , ya que los semaforo es un sincronizacion bloqueante, p1 comienza su ejecucion hasta que se hace up(s2) y agota su ventana de tiempo y p2 puede comenzar su ejecucion.

--DvS 013 15:09 9 may 2011 (UTC) : había conflicto cuando le he dado a subir así que pongo debajo lo que yo estaba editando antes de que se subiera nada

p1:
 for (int i=0; i<2; i++) {  #1
    down(s1);               #2
    f1();                   #3
    if (get(s1) == 0)       #4
        up(s2);             #5
 }
P2:
 for (int i=0; i<2; i++) {   #1
    down(s2);               #2
    f2();                   #3
    up(s1);                 #4
 }
             X : se ejecuta el planificador
             > : fin del proceso
            #nº : número de insturcción

       |i2=0       |i1=0       |    i2=1   |    i1=1   |           |       i2=2|i1=2   |
       |   |   |   | #1| #2| #3|   |   |   | #4| #1| #2| #3| #4| #5|   |   |   | #1|   |
P1     |   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|   |   |   |--->   |
s1     | 1             | 0     | 1                 | 0                 | 1         |   |
       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |
P2     |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |---|---|--->   |   |
s2     | 1 | 0                                                 | 0 |   |   |   |   |   |
planif X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   X   |
       |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
       0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20