Diferencia entre revisiones de «Sol-ejer-planif-procesos-3»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Propuesta de corrección y solución al apartado B)
(revisión)
Línea 1: Línea 1:
APARTADO 1
+
== Traza de los procesos ==
  
Traza de los procesos A y B
+
=== Proceso A ===
  
Proceso A
 
---------
 
 
  1, 2, 3,  4,      3,  4,      3,  5
 
  1, 2, 3,  4,      3,  4,      3,  5
 
       |    |        |    |        |     
 
       |    |        |    |        |     
 
       i=0  Bloquea  i=1  Bloquea  i=2   
 
       i=0  Bloquea  i=1  Bloquea  i=2   
     
+
   
Por tanto tenemos t=8
+
=== Proceso B ===
  
 
Proceso B
 
---------
 
 
  1, 2,  3, 2,  3, 2,  4
 
  1, 2,  3, 2,  3, 2,  4
 
     |      |      |    |   
 
     |      |      |    |   
 
     i=0    i=1    i=2  Bloquea  
 
     i=0    i=1    i=2  Bloquea  
 
+
Por tanto t=7
+
== Apartado 1 ==
 
 
 
 
Proceso  H0  t  Plazo 
 
-------- --  -- -----
 
PA      0  8  16     
 
PB      0  7  18     
 
 
 
  
  
 +
              B = El proceso realiza una llamada bloqueante.
 +
              + = El proceso se ejecuta en el procesador 1.
 +
              - = El proceso se ejecuta en el procesador 2.
 +
              < = Instante de llegada del proceso.
 +
              > = Instante de finalización del proceso.
 +
              * = El proceso es abortado.
 
    
 
    
                   | 1 |  |  |  |  |  |  |   | 2 | 3 | 4 |  |  |  | 3 | 4 |  |  |           
+
                   |   |  |  |  |  |  |  | 1 | 2 | 3 | 4 |  |  |  | 3 | 4 |  |  |           
   Pa            <---|  |  |  |  |  |  |   |---|---|---B  |  |  P---|---B ABORTAR       
+
   Pa            <   |  |  |  |  |  |  |---|---|---|---B  |  |  P---|---*
 
                   |  |  |  |  |  |  |  |  |  |i=0|  |  |  |  |i=1|  |  |  |       
 
                   |  |  |  |  |  |  |  |  |  |i=0|  |  |  |  |i=1|  |  |  |       
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |       
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |       
                   | 1 | 2 | 3 | 2 | 3 | 2 | 4 |  |  |  |  |  |  |  |  |  |  |      
+
                   | 1 | 2 | 3 | 2 | 3 | 2 | 4 |  |  |  |  |  |  |  |  |  |  |   | 
   Pb            <---|---|---|---|---|---|---B       |  P FIN  |  |  |  |  |  |        
+
   Pb            <---|---|---|---|---|---|---B   |  |  P FIN  |  |  |  |  |  |   |
 
                   |  |  |i=0|  |i=1|  |i=2|  |  |  |  |  |  |  |  |  |  |  |       
 
                   |  |  |i=0|  |i=1|  |i=2|  |  |  |  |  |  |  |  |  |  |  |       
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |      
+
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |      
+
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
   Planificador   X   X  |  |  |  |  |  |  X  |  |  X  |  |  X  |  X  |  |    
+
   Planificador  X  |  |  |  |  |  |  X   |   |  |  X  |  |  X  |  X  |  |
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |      
+
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
                   |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___> t
 
                   |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___> t
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18
  
--Creo que esa solución no es correcta (el enunciado dice que los 2 procesos se lanzan a la vez y en este cronograma se lanza P<sub>a</sub> antes que P<sub>b</sub>. Yo he llegado a las siguientes soluciones:
+
Puesto que <math>P_b</math> tiene más prioridad de <math>P_a</math> y ambos se lanzan a la vez, el planificador da paso al proceso <math>P_a</math> en primer lugar. --[[Usuario:Pneira|Pneira]] 12:19 11 nov 2011 (UTC)
 
 
a)
 
 
 
  
              & = El proceso realiza una llamada bloqueante.
+
== Apartado 2 ==
              + = El proceso se ejecuta en el procesador 1.
 
              - = El proceso se ejecuta en el procesador 2.
 
              < = Instante de llegada del proceso.
 
              > = Instante de finalización del proceso.
 
              * = El proceso es abortado.
 
  
            |  |  |  |  |  |  |  | 1 | 2 | 3 | 4 |  |  |  | 3 | 4 |  |  |
+
              B = El proceso realiza una llamada bloqueante.
    Pa      <  |  |  |  |  |  |  |---|---|---|---|  |  |  |---|---*  |  |
 
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
            | 1 | 2 | 3 | 4 | 3 | 2 | 4 |  |  |  |  |  |  |  |  |  |  |  |
 
    Pb      <---|---|---|---|---|---|---|  |  |  >  |  |  |  |  |  |  |  |
 
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
  planif.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
            |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___
 
            0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  t
 
 
 
--Duda: yo he supuesto que aunque el planificador le de paso primero a A al aplicar el criterio y al tener B mayor prioridad de ejecuta B en t=0. --[[Usuario:jesgonbe|jesgonbel]]
 
 
 
b) Suponiendo que solo se ejecutan procesos en el procesador 2 si esta ocupado el procesador 1
 
 
 
              & = El proceso realiza una llamada bloqueante.
 
 
               + = El proceso se ejecuta en el procesador 1.
 
               + = El proceso se ejecuta en el procesador 1.
 
               - = El proceso se ejecuta en el procesador 2.
 
               - = El proceso se ejecuta en el procesador 2.
Línea 76: Línea 48:
  
 
             | 1 | 2 | 3 | 4 |  |  |  | 3 | 4 |  |  |  | 3 | 5 |  |  |  |  |
 
             | 1 | 2 | 3 | 4 |  |  |  | 3 | 4 |  |  |  | 3 | 5 |  |  |  |  |
     Pa      <+++|+++|+++|+++&   |  |  |+++|+++|   |  |  |+++|+++|  |  |  |  |
+
     Pa      <+++|+++|+++|+++B   |  |  |+++|+++B   |  |  |+++|+++|  |  |  |  |
 
             |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
             |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
             | 1 | 2 | 3 | 4 | 3 | 2 | 4 |  |  |  |  |  |  |  |  |  |  |  |
 
             | 1 | 2 | 3 | 4 | 3 | 2 | 4 |  |  |  |  |  |  |  |  |  |  |  |
     Pb      <---|---|---|---|+++|+++|+++|  |  |  >  |  |  |  |  |  |  |  |
+
     Pb      <---|---|---|---|---|---|---B   |  |  >  |  |  |  |  |  |  |  |
 
             |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
             |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
   planif.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
   planif.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___
 
             |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___
 
             0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  t
 
             0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  t
 +
 +
Aunque la asignación sea dinámica mantenemos a los procesos en el mismo procesador. El concepto de asignación dinámica aplica solamente '''si hay una situación en la que un procesador está sobrecargado de procesos'''. La migración de un proceso de la CPU1 a la CPU2 tiene una penalización importante asociada al fallo en la memoria caché. --[[Usuario:Pneira|Pneira]] 12:19 11 nov 2011 (UTC)

Revisión del 13:19 11 nov 2011

Traza de los procesos

Proceso A

1, 2, 3,   4,       3,   4,       3,   5
      |    |        |    |        |    
      i=0  Bloquea  i=1  Bloquea  i=2  
    

Proceso B

1, 2,   3, 2,   3, 2,   4
   |       |       |    |  
   i=0     i=1     i=2  Bloquea 

Apartado 1

              B = El proceso realiza una llamada bloqueante.
              + = El proceso se ejecuta en el procesador 1.
              - = El proceso se ejecuta en el procesador 2.
              < = Instante de llegada del proceso.
              > = Instante de finalización del proceso.
              * = El proceso es abortado.
  
                 |   |   |   |   |   |   |   | 1 | 2 | 3 | 4 |   |   |   | 3 | 4 |   |   |          
  Pa             <   |   |   |   |   |   |   |---|---|---|---B   |   |   P---|---*
                 |   |   |   |   |   |   |   |   |   |i=0|   |   |   |   |i=1|   |   |   |       
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |       
                 | 1 | 2 | 3 | 2 | 3 | 2 | 4 |   |   |   |   |   |   |   |   |   |   |   |   
  Pb             <---|---|---|---|---|---|---B   |   |   P FIN   |   |   |   |   |   |   |
                 |   |   |i=0|   |i=1|   |i=2|   |   |   |   |   |   |   |   |   |   |   |       
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
  Planificador   X   |   |   |   |   |   |   X   |   |   |   X   |   |   X   |   X   |   |
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                 |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18

Puesto que <math>P_b</math> tiene más prioridad de <math>P_a</math> y ambos se lanzan a la vez, el planificador da paso al proceso <math>P_a</math> en primer lugar. --Pneira 12:19 11 nov 2011 (UTC)

Apartado 2

              B = El proceso realiza una llamada bloqueante.
              + = El proceso se ejecuta en el procesador 1.
              - = El proceso se ejecuta en el procesador 2.
              < = Instante de llegada del proceso.
              > = Instante de finalización del proceso.
           | 1 | 2 | 3 | 4 |   |   |   | 3 | 4 |   |   |   | 3 | 5 |   |   |   |   |
   Pa      <+++|+++|+++|+++B   |   |   |+++|+++B   |   |   |+++|+++|   |   |   |   |
           |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
           | 1 | 2 | 3 | 4 | 3 | 2 | 4 |   |   |   |   |   |   |   |   |   |   |   |
   Pb      <---|---|---|---|---|---|---B   |   |   >   |   |   |   |   |   |   |   |
           |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
 planif.   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
           |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___
           0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19   t

Aunque la asignación sea dinámica mantenemos a los procesos en el mismo procesador. El concepto de asignación dinámica aplica solamente si hay una situación en la que un procesador está sobrecargado de procesos. La migración de un proceso de la CPU1 a la CPU2 tiene una penalización importante asociada al fallo en la memoria caché. --Pneira 12:19 11 nov 2011 (UTC)