Diferencia entre revisiones de «Solución de los ejercicios de concurrencia»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
Línea 21: Línea 21:
 
  H1    |---|---|---|  |  |  |---|---|---|  |  |  |---|---|---|  |  |  |  |  |  |  |
 
  H1    |---|---|---|  |  |  |---|---|---|  |  |  |---|---|---|  |  |  |  |  |  |  |
 
       |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
       |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
       |  |  |  | #1| __| __|  |  |  | __| __| __|  |  |  | #2| #3| #4| #1| #2| #3| #4
+
       |  |  |  | #1| __| __|  |  |  | __| __| __|  |  |  | #2| #3| #4| #1| #2| #3| #4|
 
  H2    |  |  |  |---|---|---|  |  |  |---|---|---|  |  |  |---|---|---|---|---|---|---|
 
  H2    |  |  |  |---|---|---|  |  |  |---|---|---|  |  |  |---|---|---|---|---|---|---|
 
       |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
       |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
       |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
 
       |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
 
       0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20 21  22
 
       0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20 21  22

Revisión del 16:24 9 may 2011

      | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4|El programa ya termina |
H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4| #1| #2| #3| #4| El programa termina.
H2    |   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|   |
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20


En este ejercicio, el hilo 2 se queda esperando continuamente a que el hilo 1 libere el cerrojo para poder acceder a la función. El programa finaliza en el hilo 1 cuando llega dos veces a la instrucción 4 (bucle for).

Modificación:

Solución:


      | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4| > |   |   |   |   |   |   |   |
H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |   |
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      |   |   |   | #1| __| __|   |   |   | __| __| __|   |   |   | #2| #3| #4| #1| #2| #3| #4|
H2    |   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|---|
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20 21  22