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

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Posible solucion a colas multinivel)
(Ejercicio 3: solución revisada)
Línea 1: Línea 1:
 
= Ejercicio 3 =
 
= Ejercicio 3 =
  
                    ____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|_P<sub>D</sub>_|
+
Datos del problema:
          Datos del _H0_|_0__|_1__|_2__|_3__|
+
                        | Pa | Pb | Pc  | Pd |
          problema _t__|_4__|_4__|_12_|_12_|
+
                    --------------------------
 +
                      H0 | 0 | | | |
 +
                    --------------------------
 +
                      t | | | 12 | 12 |
 +
                    --------------------------
 
   
 
   
                   P<sub>A</sub> y P<sub>B</sub> bloquean por operación de E/S tras 1 unidad de ejecución
+
                   Pa y Pb bloquean por operación de E/S tras 1 unidad de ejecución
 +
 
 
                       < = indica el instante de lanzamiento del proceso
 
                       < = indica el instante de lanzamiento del proceso
 
                       > = 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
                                                               
+
 
  <sub> </sub>  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |   |  |  |  |  |  |   |  |  |  |  |  |
+
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
P<sub>A</sub>  <---|  |  |  |  |  |---|  |   |  |   |  |  |  |  |  |  |   |  |  |  |  |  |  |  |  |  |  |---|  |---|
+
Pa    <---|  |  |  |  |  |---|  |  |  |  |  |  |  |  |  |---|  |---|  |
  P<sub>B</sub>  |  <---|  |  |  |  |   |---|  |  |  |  |  |  |  |  |   |  |  |  |   |   |   |  |  |  |  |  |  |---|--->
+
Pb    <---|  |  |  |  |  |---|  |  |  |  |  |  |  |  |  |---|  |---|
P<sub>C</sub>  |  |   <---|---|  |  |  |  |---|---|---|---|  |  |  |  |---|---|---|---|  |  |  |  |---|--->   |  |  |  |  |  |
+
  Pc    |  |  <---|---|  |  |  |  |---|---|---|---|  |  |  |  |  |  |  |  |
  P<sub>D</sub>  |  |  |  <   |---|---|  |  |  |  |  |  |---|---|---|---|  |  |  |  |---|---|---|---|  |  |---|--->  |  |  |  |
+
Pd    |  |  |  <   |---|---|  |  |  |  |  |  |---|---|---|---|  |  |  |  |
  PlnfX   X   X   |  |   X  X  X  |  |  |   X  |   |   |   X   |  |  |  X  |  |  |  X  |  X  |  X  X  X  X  X 
+
Plnf  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  20  21  22  23  24  25  26  27  28  29  30  31  32
+
      0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
 +
 +
... continuación ...
 +
 +
      |   |  |  |  |  |   |  |  |  |  |  |  |
 +
  Pa    |  |  |  |  |  |  |  |   |   |   |  |  |
 +
Pb    |  |  |  |  |   |   |   |   |  |  |  |  |
 +
Pc    |---|---|---|---|  |  |  |  |---|---|  |  |
 +
  Pd    |   |   |   |  |---|---|---|---|  |  |---|---|
 +
Plnf  |  |  |  |  X  |  |  |  X  |  X  |  |
 +
      |___|___|___|___|___|___|___|___|___|___|___|___|
 +
      20  21  22  23  24  25  26  27  28  29  30  31  32
 
   
 
   
                  _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|_P<sub>D</sub>_|
+
  Cálculo de índices:
        Cálculos  __t__|_4__|_4__|_12_|_12_|
 
      de tiempos __T__|_31_|_31_|_24_|_25_|
 
                  _T/t_|7.75|7.75|_2__|2.08|
 
 
 
-Observaciones
 
 
 
Por que ejecutas seguidamente los procesos C y D seguidamente, ¿la cola 1 solo se ejecuta 1 vez y pasa a la 2ª o varias veces hasta que se agotan los procesos? ¿qué opináis?
 
 
 
Yo creo que la cola 1 tiene mas prioridad que la cola 2 y por eso se ejecutan los procesos de la cola 1 hasta que no queden más pero no estoy totalmente seguro de que sea así. No se si cuando se ejecutan los procesos de la cola 1 al pasar a preparados otra vez entran en la 2 o se quedan en la 1 yo supongo lo segundo
 
 
 
Yo también estoy de acuerdo con la repetitividad de C y D debido a la prioridad superior de la cola 1.
 
En respuesta a ¿dónde se quedan los procesos de la cola 1?, en el enunciado te comentan:
 
-Si el proceso está en la cola 2 y agota el quantum, pasa a la cola 1, en caso contrario, sigue en la cola 2.
 
-Si el proceso está en la cola 1 y agota el quantum, se mantiene en ella, pero si no lo agota completamente vuelve a la cola 2.
 
  
 +
                        | Pa | Pb |  Pc | Pd |
 +
                    --------------------------
 +
                      t  | 4  | 4  |  12 | 12 |
 +
                    --------------------------
 +
                      T  | 19 | 20 |  30 | 32 |
 +
                    --------------------------
 +
                    T/t  |4.75| 5  | 2.5 |2.66|
 +
                    --------------------------
  
¿Cuanto tiempo es el bloqueo por E/S?
+
Explicación:
  
 +
Todos los procesos empiezan inicialmente en la segunda cola. Pa y Pb reciben una oportunidad de ejecución sin consumir su quantum debido a bloqueo, por tanto, permanecen en la segunda cola. Pc y Pd consumen todo su quantum, por tanto, promocionan a la primera cola. Los procesos Pa y Pb se ejecutan otra vez, pues los procesos que se encuentran en la segunda cola reciben dos oportunidades de ejecución. Tras esto, los procesos recién ascendidos a la primera cola, que son Pc y Pd, reciben su oportunidad de ejecución, en este caso con quantum de 4 unidades. De nuevo, se le da oportunidad de ejecución a los procesos de la segunda cola, que terminan su ejecución. Como no hay más procesos en la segunda cola, se le da una oportunidad de ejecución a los de la primera. --[[Usuario:Pneira|Pneira]] 18:36 22 mar 2011 (UTC)
  
 
= ¿Posible solución?=
 
= ¿Posible solución?=

Revisión del 20:36 22 mar 2011

Ejercicio 3

Datos del problema:
                        | Pa | Pb | Pc  | Pd |
                    --------------------------
                     H0 | 0  | 1  |  2  | 3  |
                    --------------------------
                     t  | 4  | 4  |  12 | 12 |
                    --------------------------

                 Pa y Pb bloquean por operación de E/S tras 1 unidad de ejecución
                      < = 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    |   |   <---|---|   |   |   |   |---|---|---|---|   |   |   |   |   |   |   |   |
Pd    |   |   |   <   |---|---|   |   |   |   |   |   |---|---|---|---|   |   |   |   |
Plnf  X   X   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

... continuación ...

      |   |   |   |   |   |   |   |   |   |   |   |   |
Pa    |   |   |   |   |   |   |   |   |   |   |   |   |
Pb    |   |   |   |   |   |   |   |   |   |   |   |   |
Pc    |---|---|---|---|   |   |   |   |---|---|   |   |
Pd    |   |   |   |   |---|---|---|---|   |   |---|---|
Plnf  |   |   |   |   X   |   |   |   X   |   X   |   | 
      |___|___|___|___|___|___|___|___|___|___|___|___|
      20  21  22  23  24  25  26  27  28  29  30  31  32

Cálculo de índices:
                        | Pa | Pb |  Pc | Pd |
                    --------------------------
                     t  | 4  | 4  |  12 | 12 |
                    --------------------------
                     T  | 19 | 20 |  30 | 32 |
                    --------------------------
                   T/t  |4.75| 5  | 2.5 |2.66|
                    --------------------------

Explicación:

Todos los procesos empiezan inicialmente en la segunda cola. Pa y Pb reciben una oportunidad de ejecución sin consumir su quantum debido a bloqueo, por tanto, permanecen en la segunda cola. Pc y Pd consumen todo su quantum, por tanto, promocionan a la primera cola. Los procesos Pa y Pb se ejecutan otra vez, pues los procesos que se encuentran en la segunda cola reciben dos oportunidades de ejecución. Tras esto, los procesos recién ascendidos a la primera cola, que son Pc y Pd, reciben su oportunidad de ejecución, en este caso con quantum de 4 unidades. De nuevo, se le da oportunidad de ejecución a los procesos de la segunda cola, que terminan su ejecución. Como no hay más procesos en la segunda cola, se le da una oportunidad de ejecución a los de la primera. --Pneira 18:36 22 mar 2011 (UTC)

¿Posible solución?

Supuestamente al inicio(t=0) en la 2ª cola solo hay un proceso(A), por lo tanto la 1ª iteracion solo ejecuta el proceso A, el la 2ª iteracion (t=1) estan los procesos [B,A]. Ahora se ejecutaria la 1ª cola, pero como estavacia pasa a 2 nuevas iteraciones de la 2ª cola: la primera iteración:[B,A,C,D], como C y D consumen el quantum pasan a la 1ª cola, y la 2ª iteracion se ejecutan los procesos [B,A], aora se ejecuta la 1ª cola completa(C y D),y cuando este vacia se vueleve a ejecutar la 2ª cola(que solo queda B) hasta terminar. ¿Cómo lo veis?


PA  <---|   |---|   |---|   |   |   |   |   |--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |---|   |   |   |
PB  |   <---|   |---|   |   |   |   |   |---|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |--->
PC  |   |   <   |   |   |---|---|   |   |   |   |---|---|---|---|   |   |   |   |---|---|---|---|   |   |   |   |---|--->   |   |   |
PD  |   |   |   <   |   |   |   |---|---|   |   |   |   |   |   |---|---|---|---|   |   |   |   |---|---|---|---|   |   |---|--->   |