Diferencia entre revisiones de «Sol-ejer2-1-otros-aspectos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(SJF Apropiativo con multiprocesamiento)
(SJF Apropiativo con multiprocesamiento. Error en explicación, cambio a 'proceso B se deja en el procesador 1')
 
(No se muestran 3 ediciones intermedias de 2 usuarios)
Línea 2: Línea 2:
  
 
Para este caso disponemos de 2 Procesadores, y supondremos que el planificador se ejecuta en uno de ellos
 
Para este caso disponemos de 2 Procesadores, y supondremos que el planificador se ejecuta en uno de ellos
                     ____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_| P<sub>A</sub> bloquea cada 1 u.t.
+
                     ____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|
          Datos del _H0_|_0__|_1__|_2__| P<sub>B</sub> bloquea cada 3 u.t.
+
          Datos del  _H0_|_0__|_1__|_2__|
          problema _t__|_3__|_5__|_6__| tiempo de bloqueo=2 u.t.
+
          problema  _t__|_3__|_5__|_6__|
 +
 +
P<sub>A</sub> bloquea cada 1 u.t.
 +
  P<sub>B</sub> bloquea cada 3 u.t.
 +
  tiempos de bloqueo=2 u.t. (tanto para P<sub>A</sub> y P<sub>B</sub>).
 
                      
 
                      
 
                       < = 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
                       # = el proceso se bloquea
+
                       B = el proceso pasa a estado bloqueado
 +
                      P = el proceso pasa a estado preparado
 
                       +++ = procesador 1
 
                       +++ = procesador 1
 
                       --- = procesador 2
 
                       --- = procesador 2
 
   
 
   
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |
     Pa            <+++#   |  <+++#   |  |+++>   |  |   |  |  |
+
     Pa            <+++B   |  P---B   |  P---B   |  >   |  |  |
     Pb            |  <+++|+++|---#   |  |---|+++>  |  |  |
+
     Pb            |  <+++|+++|+++B   |  P+++|+++>   |   |  |  |
     Pc            |  |  <---|   |+++|+++|  |---|---|--->  |  |
+
     Pc            |  |  <---P   |---|---P   |---|---|--->  |  |
 
     Planificador  X  X  X  X  X  |  X  X  |  |  |  |  |
 
     Planificador  X  X  X  X  X  |  X  X  |  |  |  |  |
 
                   |___|___|___|___|___|___|___|___|___|___|___|___|___> t
 
                   |___|___|___|___|___|___|___|___|___|___|___|___|___> t
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12
 
+
 
 
 
                         _____|_PA_|_PB_|_PC_|
 
                         _____|_PA_|_PB_|_PC_|
 
             Cálculos  __t__|_3__|_5__|_6__|
 
             Cálculos  __t__|_3__|_5__|_6__|
Línea 29: Línea 33:
 
                           |_> Indice de penalización
 
                           |_> Indice de penalización
  
'''OBSERVACIONES:'''
+
Explicación:
  
*En esta solución suponemos que en en el procesador 1 se ejecuta el proceso más corto preparado y en el procesador 2 se ejecuta el 2º más corto preparado.
+
* En el instante de tiempo 3, el proceso Pa pasa a estado preparado y su tiempo de ejecución es menor al del proceso Pc. Por tanto, se apropia del procesador 2. Recuerde que '''siempre que sea posible''' el proceso que pasa a estado activo debe hacerlo en el último procesador que empleó para evitar el coste asociado a la migración. En caso de no ser posible, '''se migra''' al procesador disponible. El proceso B se deja en el procesador 1 para evitar el coste asociado a la migración pues '''no''' se considera posible migrar un proceso en estado activo.
  
*Por lo anterior indicado, la solución podría variar entre la unidad de tiempo 7 y la 10, pero como no nos han dado expresamente un criterio para asignar a los procesadores los procesos, no tiene importancia.
+
* En el instante de tiempo 6, el proceso Pa y Pb, que son más cortos que el proceso Pc, se apropian de los procesadores. Puesto que en asignación dinámica, '''siempre que sea posible''' se mantiene al proceso en el procesador en el que se ejecutó anteriormente, nuestro proceso Pa pasa al procesador 2, y el proceso Pb pasa al procesador 1 (pues estos son los procesadores en los que se ejecutaron anteriormente).
  
**Esta solucion propuesta tiene fallo en t=8,ya que el procesador 2 esta ejecutando el proceso c mientras que el procesador 1 no tiene ningun proceso asignado,,,en el enunciado dice que este procesador 2 solo ejecutara si procesador 1 esta ejecutando y no es el caso.
+
Revisado. --[[Usuario:Pneira|Pneira]] 18:27 23 nov 2011 (UTC)
 
 
*'''Importante''': Este ejercicio (de momento) no ha sido corregido por Pablo Neira, es por ello que si alguien tiene una duda sobre él debería indicarlo para discutirlo hasta que dicho profesor lo revise.
 
 
 
'''OTRA SOLUCION'''
 
* Comienzo con la idea de que el planificador es un componente del sistema operativo y no de un procesador concreto, por lo que decidirá en cada momento que proceso será asignado al recurso procesador, para este caso tenemos 2 procesadores y como dice el enunciado solo se asignaran al segundo si el primero está ocupado,he considerado para este caso asignar el proceso A en t=3 al procesador 2 aunque es prioritario sobre B al que tendría que retirarle el 1, para de esta manera aplicar el principio de localizacion espacio temporal y ahorrar costes en posibles fallos de migracion de la memoria cache, '''solo cambio de procesador una vez, para el proceso A''' --[[Usuario:Albsolnog|Albsolnog]] 11:56 13 nov 2011 (UTC)
 
 
 
      X Ejecucion del planificador
 
      F Fin de proceso
 
      --- Procesador 1
 
      +++ Procesador 2
 
      * Estado Bloqueado
 
      & Estado Preparado
 
      Fin Finalizacion del proceso
 
 
 
 
 
                  |  |  |  |  |  |  |  |  |  |  |  |  |
 
    Pa            <---*  |  &+++*  |  &+++Fin |  |  |  |  |
 
    Pb            |  <---|---|---*  |  &---|---Fin |  |  |  |
 
    Pc            |  |  <+++|  |+++|+++|  |+++|+++|+++Fin |  |
 
    Planificador  X  X  X  X  X  |  X  X  |  |  |  |  |
 
                  |___|___|___|___|___|___|___|___|___|___|___|___|___> t
 
                  0  1  2  3  4  5  6  7  8  9  10  11  12
 

Revisión actual del 20:59 4 nov 2015

SJF Apropiativo con multiprocesamiento

Para este caso disponemos de 2 Procesadores, y supondremos que el planificador se ejecuta en uno de ellos

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

PA bloquea cada 1 u.t.
PB bloquea cada 3 u.t.
tiempos de bloqueo=2 u.t. (tanto para PA y PB).
                    
                      < = indica el instante de lanzamiento del proceso
                      > = indica el instante de finalización del proceso
                      X = se ejecuta el código del planificador
                      B = el proceso pasa a estado bloqueado
                      P = el proceso pasa a estado preparado
                      +++ = procesador 1
                      --- = procesador 2

                  |   |   |   |   |   |   |   |   |   |   |   |   |
   Pa             <+++B   |   P---B   |   P---B   |   >   |   |   |
   Pb             |   <+++|+++|+++B   |   P+++|+++>   |   |   |   |
   Pc             |   |   <---P   |---|---P   |---|---|--->   |   |
   Planificador   X   X   X   X   X   |   X   X   |   |   |   |   |
                  |___|___|___|___|___|___|___|___|___|___|___|___|___> t
                  0   1   2   3   4   5   6   7   8   9   10  11  12

                       _____|_PA_|_PB_|_PC_|
            Cálculos   __t__|_3__|_5__|_6__|
           de tiempos  __T__|_7__|_7__|_8__|
                       _T/t_|_2.3|_1.4|_1.3|
                         |
                         |_> Indice de penalización

Explicación:

  • En el instante de tiempo 3, el proceso Pa pasa a estado preparado y su tiempo de ejecución es menor al del proceso Pc. Por tanto, se apropia del procesador 2. Recuerde que siempre que sea posible el proceso que pasa a estado activo debe hacerlo en el último procesador que empleó para evitar el coste asociado a la migración. En caso de no ser posible, se migra al procesador disponible. El proceso B se deja en el procesador 1 para evitar el coste asociado a la migración pues no se considera posible migrar un proceso en estado activo.
  • En el instante de tiempo 6, el proceso Pa y Pb, que son más cortos que el proceso Pc, se apropian de los procesadores. Puesto que en asignación dinámica, siempre que sea posible se mantiene al proceso en el procesador en el que se ejecutó anteriormente, nuestro proceso Pa pasa al procesador 2, y el proceso Pb pasa al procesador 1 (pues estos son los procesadores en los que se ejecutaron anteriormente).

Revisado. --Pneira 18:27 23 nov 2011 (UTC)