Discusión:Solución ejercicio 1

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

No estoy del todo seguro de la solución dada. Teniendo en cuenta los valores en cada momento de semáforos(justo después de ejecutar la instrucción y antes de que lo haga el planificador):

     X = El proceso pasa a estado bloqueado.
     / = El proceso pasa a estado preparado.
     > = Fin del proceso

             |   |   | #1| #2| #3| #4| #5| #1|   | #2|   |   |   | #3| #4| #5| #1|   |   |   |
           p1|   |   |---|---|---|---|---|---|   |---X   /   |   |---|---|---|--->   |   |   |
             |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             | #1| #2|   |   |   |   |   |   | #3|   | #4| #1| #2|   |   |   |   | #3| #4| #1|
           p2|---|---X   |   |   |   |   /   |---|   |---|---|---|   |   |   /   |---|---|--->
             |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
             0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19 20
             *********************************************************************************
s1.cont      | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 2 | 2 |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
s1.prlist    |   |   |   |   |   |   |   |   |   |p1 |   |   |   |   |   |   |   |   |   |   |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
s2.cont      | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
s2.prlist    |   |p2 |p2 |p2 |p2 |p2 |   |   |   |   |   |   | p2| p2| p2|   |   |   |   |   |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
p1.quantum   | 3 | 3 | 2 | 1 | 0 | 2 | 1 | 0 | 3 | 2 | 2 | 2 | 2 | 1 | 0 | 3 | 2 | nc| nc| nc|
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
p2.quantum   | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 3 | 2 | 1 | 0 | 3 | 3 | 3 | 3 | 2 | 1 | 0 |
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
                              (2)             (1)                     (2)
 (1) A p2 solo le quedaba una unidad de tiempo de su quantum, así que solo ejecuta una línea y no 3. Aquí cabría preguntarse si al pasar a estado bloqueado un nuevo quantum le es asignado
 (2) pese a que p1 agota su quantum, como p2 está bloqueado y p1 es el único proceso se le asigna un nuevo quantum