Criterios de planificación

De Wiki de Sistemas Operativos
Revisión del 15:14 8 mar 2011 de Josmorgav1 (discusión | contribuciones) (Corrección de las tablas)
Saltar a: navegación, buscar

Métodos no apropiativos

El procesador es asignado al proceso hasta fin de ejecución. Suele darse en sistemas operativos monoprogramables y sistemas de tiempo real.

Estocástico

Se selecciona aleatoriamente un procesos. No cumple varios aspectos de diseño de un buen planificador, como repetitibilidad o predecibilidad. Su uso es establecer una cota inferior a la hora de diseñar un planificador: Si éste presenta peores resultados que el método estocástico, significa que estará mal diseñado.

    Ejemplo:
                       < = indica que el proceso se encuentra en modo preparado
                       > = indica la finalización del proceso                                                                       
                   |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pa  <xxx|xxx|xxx>---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pb  |---<---|---|---|---|---|---|---|---|---|---|---|---|---|---|xxx|xxx|xxx|xxx|xxx>
               Pc  |---|---|---<xxx|xxx|xxx|xxx>---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pd  |---|---|---|---|---|---<---|xxx|xxx|xxx>---|---|---|---|---|---|---|---|---|---|
               Pe  |---|---|---|---|---|---|---|---|---|---<xxx|xxx|xxx|xxx|xxx>---|---|---|---|---|
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> 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_|_Pd_|_Pe_|                    ____|_Pa_|_Pb_|_Pc_|_Pd_|_Pe_|
          Datos del  _H0_|_0__|_1__|_2__|_6__|_10_|        Cálculos    _t__|_3__|_5__|_4__|_3__|_5__|
           problema  _t__|_3__|_5__|_4__|_3__|_5__|       de tiempos   _T__|_3__|_19_|_5__|_4__|_5__|
                                                                       _x__|_1__|19/5|_5/4|_4/3|_1__|

Como podemos observar, este método puede provocar grandes retrasos en algunos procesos debido a su carácter aleatorio.

Con conocimiento del futuro

En base al conocimiento del futuro se asignan los procesos. Representa una cota superior, es decir, mientras un planificador tenga un comportamiento más parecido a este método, mejor diseñado estará.

    Ejemplo:
                       < = indica que el proceso se encuentra en modo preparado
                       > = indica la finalización del proceso                                                                       
                   |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pa  <xxx|xxx|xxx>---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pb  |---<---|---|---|---|xxx|xxx|xxx|xxx|xxx>---|---|---|---|---|---|---|---|---|---|
               Pc  |---|---|---<xxx|xxx>---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
               Pd  |---|---|---|---|---|---<---|---|---|---|---|xxx|xxx|xxx>---|---|---|---|---|---|
               Pe  |---|---|---|---|---|---|---<---|---|---|xxx>---|---|---|---|---|---|---|---|---|
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> 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_|_Pd_|_Pe_|                    ____|_Pa_|_Pb_|_Pc_|_Pd_|_Pe_|
          Datos del  _H0_|_0__|_1__|_3__|_6__|_7__|        Cálculos    _t__|_3__|_5__|_2__|_3__|_1__|
           problema  _t__|_3__|_5__|_2__|_3__|_1__|       de tiempos   _T__|_3__|_9__|_2__|_8__|_4__|
                                                                       _x__|_1__|_9/5|_1__|_8/3|_4/1|

En este ejemplo, al conocer los tiempos en los que llegará cada proceso, y el tiempo de proceso, podemos buscar la forma de asignarlos de forma que, por ejemplo, consigamos la mínima penalización.

Por orden de llegada (First In, First Out: FIFO)

Se selecciona el procesa por orden de lanzamiento. Su principales ventajas son su facilidad de implementación, y su orden de complejidad, O(1). Su desventaja es que los procesos de corta duración presentarán un alto índice de penalización.

El siguiente, el más corto (Shortest Job First: SJF)

Se selecciona el proceso que requiera menos tiempo de ejecución. Para procesos largos puede presentar un índice de penalización elevado: Si se tienen muchos procesos cortos, el de mayor duración puede quedar en espera indefinidamente. Su orden de complejidad es O(n).

Basado en índice de penalización

Se selecciona el proceso que lleva más tiempo sin estar en estado activo. Estima los índices de penalización y elige el de mayor valor.

Métodos apropiativos

El planificador puede retirar el procesador en cualquier momento al proceso activo. Suele darse en sistemas operativos multiprogramables.

El siguiente, el más corto (Shortest Job First: SJF)

Se selecciona el proceso que requiera menos tiempo de ejecución. Si hay un proceso en estado preparado que requiere menos tiempo de ejecución, se le asigna el procesador.

Por prioridades

Se establecen índices de prioridad a cada proceso:

  • Índice estático: Establecido por el usuario.
  • Índice dinámico: Establecido por el planificador, inicialmente basado en el índice estático.

En el caso de Linux, como sucede con otros sistemas tipo-Unix, se dispone de una índice denominado nice value cuyos valores están entre -20 (máxima prioridad) y 19 (mínima prioridad).

Turno rotatorio (Round Robin: RR)

Colas multinivel