Diferencia entre revisiones de «Sol-ejer2-planif-procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Por prioridades: nota al pie)
(Por prioridades: Resolver duda)
 
(No se muestran 29 ediciones intermedias de 13 usuarios)
Línea 12: Línea 12:
 
                                                                  
 
                                                                  
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   
               Pa  <---|  |  |  |  |---|  |  |  |--->   |  |   |  |  |  |  |  |  |   
+
               Pa  <---|  |  |  |  |---|  |  |  |---|   |  >   |  |  |  |  |  |  |   
 
               Pb  |  <---|---|  |  |  |---|  |  |  |---|--->  |  |  |  |  |  |  |   
 
               Pb  |  <---|---|  |  |  |---|  |  |  |---|--->  |  |  |  |  |  |  |   
 
               Pc  |  |  <  |---|---|  |  |---|---|  |  |  |---|--->  |  |  |  |  |   
 
               Pc  |  |  <  |---|---|  |  |---|---|  |  |  |---|--->  |  |  |  |  |   
Línea 39: Línea 39:
  
 
-esto es estricto no por compensación por tanto no estas en lo cierto. --[[Usuario:juacordia|juacordia]]
 
-esto es estricto no por compensación por tanto no estas en lo cierto. --[[Usuario:juacordia|juacordia]]
 +
 +
DUDA: ¿En t=10 el proceso A no bloquearia y terminaria de ejecutarse cuando vuelva del bloqueo?  --[[Usuario:jesgonbel|jesgonbel]]
 +
 +
RESP: En t=10, el proceso A no entra en bloqueo, sino que directamente finaliza su ejecución.
 +
--[[Usuario:framorexp|framorexp]]
 +
 +
RESP2: jesgonbel, el proceso terminaría cuando vuelve del bloqueo, no finaliza en el 10, lo haría en el 12 lo dijo pablo en clase creo recordar --[[Usuario:fercarort|fercarort]]
 +
 +
RESP3: Vale, puede ser, pero a efectos prácticos es como si finalizara en el 10, porque tras el bloqueo no necesita ningún tipo de procesamiento. No se si este caso merece algún trato especial, pero creo que no. --[[Usuario:framorexp|framorexp]]
  
 
= Por prioridades =
 
= Por prioridades =
Línea 55: Línea 64:
 
                                                                  
 
                                                                  
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   
               P<sub>A</sub>  <---|  |  |  |  |  |  |  |  |  |---|  |  |  |--->   |  |   |  |   
+
               P<sub>A</sub>  <---|  |  |  |  |  |  |  |  |  |---|  |  |  |---|   |  >   |  |   
 
               P<sub>B</sub>  |  <---|  |  |  |  |  |  |---|---|  |  |---|--->  |  |  |  |  |             
 
               P<sub>B</sub>  |  <---|  |  |  |  |  |  |---|---|  |  |---|--->  |  |  |  |  |             
 
               P<sub>C</sub>  |  |  <---|---|---|---|---|--->  |  |  |  |  |  |  |  |  |  |  |     
 
               P<sub>C</sub>  |  |  <---|---|---|---|---|--->  |  |  |  |  |  |  |  |  |  |  |     
Línea 67: Línea 76:
 
                   _T/t_|__5_|_2.6|_1__|
 
                   _T/t_|__5_|_2.6|_1__|
  
Nota: Del 14 al 15 no se procesa nada porque sólo quedan los procesos A y B, pero en esa unidad de tiempo ambos están bloqueados (los bloqueos de A y B duran 2 uds. de tiempo) --[[Usuario:Pneira|Pneira]] 19:23 8 nov 2011 (UTC)
+
Nota: Del 11 al 12 no se procesa nada porque sólo quedan los procesos A y B, pero en esa unidad de tiempo ambos están bloqueados (los bloqueos de A y B duran 2 uds. de tiempo) --[[Usuario:Pneira|Pneira]] 19:23 8 nov 2011 (UTC)
 +
 
 +
DUDA= En t=10,¿no debería seguir el proceso B una u.t más?Puesto que se bloquea cada 3 u.t, si no, no entiendo porque pasa al proceso A si el B tiene más prioridad. [[Usuario:vanchinav|vanchinav]]
 +
 
 +
En t=10 el proceso B lleva 3 unidades de tiempo (4-5 y 11-13) sin bloquear, por lo que bloquea hasta t=15. [[Usuario:rgalgal1|rgalgal1]]
  
 
= Turno rotatorio proporcional al número de procesos =
 
= Turno rotatorio proporcional al número de procesos =
Línea 78: Línea 91:
 
                       > = indica el instante de finalización del proceso
 
                       > = indica el instante de finalización del proceso
 
                       X = se ejecuta el código del planificador
 
                       X = se ejecuta el código del planificador
                                                               
+
                      B = bloquea
                <sub> </sub> |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
+
                      P = preparado
               P<sub>A</sub>  <---|  |   |---|  |   |---|  |  |  |   |  |  |  |  |  |  |  |  |
+
               P<sub>B</sub>  |  <---|  |  |---|   |  |---|  |   |---|   |--->  |  |  |  |  |  |  |
+
                      q=2 q=2    q=1 q=1 q=1 q=2    q=1 q=1 q=1 q=1 q=2               
               P<sub>C</sub>  |  |  <---|  |   |---|   |  |---|---|  |---|   |---|   |  |  |  |  |
+
                      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
    Planificador <sub> </sub> X  X  X  X  X  X  X  X  X   |   X  X  X  X   |  |  |  |  |   |  | 
+
               Pa      <---P   |---P   |---|  |  >   |  |  |  |  |  |  |  |  |
            <sub> </sub> -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
+
               Pb      |  <---|---P   |  |---P   |---P   |--->   |   |  |  |  |  |  |  |
                  0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
+
               Pc      |  |  <  |---P   |  |---|---|  |---P   |---|--->  |  |  |  |  |  |
 +
                      |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
 +
                      0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
 
   
 
   
 
                   _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|
 
                   _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|
 
         Cálculos  __t__|_3__|_5__|_6__|
 
         Cálculos  __t__|_3__|_5__|_6__|
       de tiempos  __T__|_7__|_12_|_12_|
+
       de tiempos  __T__|_12_|_15_|_17_|
                   _T/t_|2.3_|2.4_|_2__|
+
                   _T/t_|_4__|2.80|_2.5|
  
=============
+
Nota: Fíjese en que el quantum se calcula en base al número de procesos que están en estado preparado cada vez que hay que tomar una decisión de planificación --[[Usuario:Pneira|Pneira]] 19:34 8 nov 2011 (UTC)
Observaciones
 
=============
 
  
- Al no existir en el instante de tiempo 0 problemas de concurrencia de procesos, ¿no debería el proceso A tener derecho a sus dos unidades de tiempo de quantum, aunque este solo utilice una unidad de tiempo debido al bloqueo por E/S?. Esto dejaría al procesador con dos procesos en estado preparado (B y C) en el instante de tiempo 2, donde ya se reduciría el quantum a 1 debido a la existencia de 2 o más procesos en estado preparado. ¿Cómo lo veis?
+
Los índices de penalización de este ejercicio son erróneos, la solución correcta creo que sería la siguiente:
 
+
           
Creo que no, porque ya en el instante 1 hay dos procesos en el planificador, por lo que el quantum ya se reduce.
+
                  _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|
 +
        Cálculos  __t__|_3__|_5___|_6__|
 +
      de tiempos  __T__|_9__|_11__|_12_|
 +
                  _T/t_|_3__|_2.2_|__2_|--[[Usuario:Josazcrom|Josazcrom]] 17:28 22 nov 2011 (UTC)
  
Cierto, además creo que aunque A no se bloquease, se le seguiría asignando 1 unidad de tiempo en t=1 al proceso B: Entraría el planificador, reduciría el quantum, y al no haber compensación, A pasaría de nuevo al final de la cola del turno rotatorio, dejando el procesador a B, ¿no?
 
  
  
- Duda: En el instante 9 no debería entrar el proceso Pb en vez de seguir el Pc??
+
*Aparte de que los índices parecen estar mal, el proceso A no debería terminar donde termina, si no dos unidades de tiempo después, tras terminar el bloqueo.
  
Lo dudo, porque el bloqueo de B dura 2 unidades, así que C tiene carta libre.--[[Usuario:PCamino|PCamino]]
+
PREGUNTA:Pienso que en el instante 11 el proceso que se ejecuta es el C ya que en el 10 en la cola de preparado había 1 proceso en estado preparado, por tanto, el quantum vuelve a cambiar a 2 y el proceso C se ejecuta del 10 a 12.
 +
¿Alguién puede confirmarme esta "pregunta"?.
 +
--[[Usuario:Raflopseg|Raflopseg]] 18:20 23 nov 2011 (UTC)
  
- Duda: ¿Por que el proceso C se ejecuta en el instante 11 habiendo sido bloqueado en el 10?,se supone que todos los procesos tienen un tiempo de bloqueo de 2 unidades
 
  
El proceso C no se bloquea nunca (o al menos en el enunciado no lo pone), por eso se ejecuta cada vez que puede. Me refiero a bloqueo por E/S, claro.
+
Probablemente no te sea de ayuda ahora pero por si le sirve a alguien:
 +
En el instante 9 B usa solo uno porque C esta activo y por tanto el quantum es 1.
 +
B no pasa a estar bloqueado(se bloquea en el 6 y no se vuelve a usar hasta el 9 por lo tanto esta activo por tres intervalos)
 +
Al estar B activo C solo se puede ejecutar de 10 a 11

Revisión actual del 15:11 9 nov 2012

Turno rotatorio estricto

                    ____|_PA_|_PB_|_PC_|
         Datos del  _H0_|_0__|_1__|_2__|
          problema  _t__|_3__|_5__|_6__|

   PA bloquea por E/S cada 1 unidad de tiempo
   PB bloquea por E/S cada 3 unidades de tiempo
                      < = indica el instante de lanzamiento del proceso
                      > = indica el instante de finalización del proceso
                      X = se ejecuta el código del planificador
                                                                
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   
              Pa  <---|   |   |   |   |---|   |   |   |---|   |   >   |   |   |   |   |   |   |   
              Pb  |   <---|---|   |   |   |---|   |   |   |---|--->   |   |   |   |   |   |   |   
              Pc  |   |   <   |---|---|   |   |---|---|   |   |   |---|--->   |   |   |   |   |   
    Planificador  X   X   |   X   |   X   X   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  19  

                  _____|_Pa_|_Pb_|_Pc_|
       Cálculos   __t__|_3__|_5__|_6__|
      de tiempos  __T__|_10_|_11_|_12_|
                  _T/t_|3.3_|2.2_|_2__|


Notése que el proceso A no llega a emplear el quantum que tiene asignado, en ese caso, como indica la teoría, se le retira el procesador y el planificador selecciona a otro proceso. Dejar el procesador sin proceso asignado, es decir, ocioso, va contra la lógica del máximo aprovechamiento del procesador. Por ello, he retirado una solución incorrecta que aparecía en esta sección. --Pneira 21:15 21 mar 2011 (UTC)


Tengo una duda en este ejercicio, en la unidad de tiempo 6 cuando el planificador activa el proceso Pb, porque motivo solo le asigna una unidad de tiempo?, podria asignarle 2 no? teniendo en cuenta que el quantum = 2. Ademas el proceso B bloquea cada 3 unidades de tiempo, no entiendo porque solo le asigna una unidad y luego activa en la unidad de tiempo 7 el proceso C. LFE (Luis Fernandez Esteban)

Pues yo diría que es porque se bloquea cada 3, al igual que el A se bloquea a cada unidad. Ya llevaba 1, y con esa actividad, +2 --PCamino

Gracias, tienes razon ya lo entendi. LFE (Luis Fernandez Esteban)

DUDA En t=3 llegaría el proceso Pa y el proceso Pb a la cola de estado preparado. Como dice en teroía, un proceso que se bloquea sin llegar a agotar su quantum, pasaría al final de la cola de estados preparados. Por tanto, el siguiente en ejecutarse sería Pb, puesto que Pa viene de estar bloqueado sin agotar su quantum luego pasaría al final de la cola de preparados. ¿Estoy en lo cierto? --josvaldia

-esto es estricto no por compensación por tanto no estas en lo cierto. --juacordia

DUDA: ¿En t=10 el proceso A no bloquearia y terminaria de ejecutarse cuando vuelva del bloqueo? --jesgonbel

RESP: En t=10, el proceso A no entra en bloqueo, sino que directamente finaliza su ejecución. --framorexp

RESP2: jesgonbel, el proceso terminaría cuando vuelve del bloqueo, no finaliza en el 10, lo haría en el 12 lo dijo pablo en clase creo recordar --fercarort

RESP3: Vale, puede ser, pero a efectos prácticos es como si finalizara en el 10, porque tras el bloqueo no necesita ningún tipo de procesamiento. No se si este caso merece algún trato especial, pero creo que no. --framorexp

Por prioridades

Suponiendo que la prioridad de los procesos es la siguiente: A<B<C

                    ____|_PA_|_PB_|_PC_|
         Datos del  _H0_|_0__|_1__|_2__|
          problema  _t__|_3__|_5__|_6__|

   PA bloquea por E/S cada 1 unidad de tiempo
   PB bloquea por E/S cada 3 unidades de tiempo
                      < = indica el instante de lanzamiento del proceso
                      > = indica el instante de finalización del proceso
                      X = se ejecuta el código del planificador
                                                                
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   
              PA  <---|   |   |   |   |   |   |   |   |   |---|   |   |   |---|   |   >   |   |   
              PB  |   <---|   |   |   |   |   |   |---|---|   |   |---|--->   |   |   |   |   |            
              PC  |   |   <---|---|---|---|---|--->   |   |   |   |   |   |   |   |   |   |   |    
    Planificador  X   X   X   |   |   |   |   |   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  19  

                  _____|_PA_|_PB_|_PC_|
       Cálculos   __t__|_3__|_5__|_6__|
      de tiempos  __T__|_15_|_13_|_6_|
                  _T/t_|__5_|_2.6|_1__|

Nota: Del 11 al 12 no se procesa nada porque sólo quedan los procesos A y B, pero en esa unidad de tiempo ambos están bloqueados (los bloqueos de A y B duran 2 uds. de tiempo) --Pneira 19:23 8 nov 2011 (UTC)

DUDA= En t=10,¿no debería seguir el proceso B una u.t más?Puesto que se bloquea cada 3 u.t, si no, no entiendo porque pasa al proceso A si el B tiene más prioridad. vanchinav

En t=10 el proceso B lleva 3 unidades de tiempo (4-5 y 11-13) sin bloquear, por lo que bloquea hasta t=15. rgalgal1

Turno rotatorio proporcional al número de procesos

                    ____|_PA _|_PB_|_PC _|
         Datos del  _H0_|_0__|_1__|_2__|
          problema  _t__|_3__|_5__|_6__|

                      < = indica el instante de lanzamiento del proceso
                      > = indica el instante de finalización del proceso
                      X = se ejecuta el código del planificador
                      B = bloquea
                      P = preparado

                     q=2 q=2     q=1 q=1 q=1 q=2     q=1 q=1 q=1 q=1 q=2                
                      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
              Pa      <---B   |   P   |---B   |   P   |---|   |   >   |   |   |   |   |   |   |   |   |
              Pb      |   <---|---P   |   |---B   |   P   |---P   |--->   |   |   |   |   |   |   |   |
              Pc      |   |   <   |---P   |   |---|---P   |   |---P   |---|--->   |   |   |   |   |   |
                      |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

                  _____|_PA_|_PB_|_PC_|
       Cálculos   __t__|_3__|_5__|_6__|
      de tiempos  __T__|_12_|_15_|_17_|
                  _T/t_|_4__|2.80|_2.5|

Nota: Fíjese en que el quantum se calcula en base al número de procesos que están en estado preparado cada vez que hay que tomar una decisión de planificación --Pneira 19:34 8 nov 2011 (UTC)

Los índices de penalización de este ejercicio son erróneos, la solución correcta creo que sería la siguiente:

                  _____|_PA_|_PB_|_PC_|
       Cálculos   __t__|_3__|_5___|_6__|
      de tiempos  __T__|_9__|_11__|_12_|
                  _T/t_|_3__|_2.2_|__2_|--Josazcrom 17:28 22 nov 2011 (UTC)


  • Aparte de que los índices parecen estar mal, el proceso A no debería terminar donde termina, si no dos unidades de tiempo después, tras terminar el bloqueo.

PREGUNTA:Pienso que en el instante 11 el proceso que se ejecuta es el C ya que en el 10 en la cola de preparado había 1 proceso en estado preparado, por tanto, el quantum vuelve a cambiar a 2 y el proceso C se ejecuta del 10 a 12. ¿Alguién puede confirmarme esta "pregunta"?. --Raflopseg 18:20 23 nov 2011 (UTC)


Probablemente no te sea de ayuda ahora pero por si le sirve a alguien: En el instante 9 B usa solo uno porque C esta activo y por tanto el quantum es 1. B no pasa a estar bloqueado(se bloquea en el 6 y no se vuelve a usar hasta el 9 por lo tanto esta activo por tres intervalos) Al estar B activo C solo se puede ejecutar de 10 a 11