Planificación de procesos

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Planificación de procesos

El planificador de procesos (process scheduler, en inglés) es la parte del sistema operativo que se encarga seleccionar qué proceso emplea el procesador.

Todo planificador de procesos emplea uno o varios criterios (scheduling policy, en inglés) que determinan el criterio de selección del proceso que empleará el procesador.

Índices de evaluación

Para evaluar los criterios de planificación de procesos empleamos los siguientes índices:

  • Tiempo de ejecución : hace referencia al tiempo que el proceso está asignado al procesador. (tejecución)
  • Tiempo de terminación : es la diferencia entre el momento de llegada y el momento de terminación del un proceso. (Tterminación)
  • Tiempo perdido : es la diferencia entre el tiempo de ejecución y el tiempo de terminación. (T-t)
  • Índice de penalización : indica cuanto más ha dado un proceso en ejecutarse respecto a si hubiera tenido el procesador en exclusividad. ((T/t)=x , tarda (x-1) veces más)
  • Índice de respuesta : es el inverso del índice de penalización. (t/T)
  • Tiempo del sistema : es el tiempo empleado por el planificador de procesos.
  • Tiempo de inactividad : es el tiempo durante el cual el procesador está ocioso, es decir, no hace nada (idle).
  • Tiempo de espera : es el tiempo desde el lanzamiento a estado preparado.

Aspectos para diseñar un buen planificador

Un buen planificador de procesos debe ofrecer:

  • Alto rendimiento (throughput, en inglés) en base a la cantidad de procesos que puede soportar. A mayor cantidad, mayor rendimiento.
  • Baja latencia (latency, en inglés) en referencia al tiempo de respuesta a los procesos. Si el proceso tarde mucho en ser asignado al procesador, se dice que la latencia será alta. Se considera una latencia aceptable a tiempos menores a 200 ms.

Para garantizar una buena experiencia al usuario.

Además, debe cumplir las siguientes características:

  • Repetitividad : con cargas de trabajo (cantidad de procesos a atender) similares, el procesador debe tener comportamientos similares.
  • Predecivilidad : hace referencia la tiempo de terminación de un proceso para cierta carga de trabajo, deben ser similares con cargas de trabajo parecidas.
  • Eficiencia : debe tomar decisiones rápidas para aumentar el rendimiento.
  • Reducir el número de conmutaciones : de nuevo, para aumentar el rendimiento y reducir la penalización asociada.
  • Atender prioridades.
  • A mayores cargas de trabajo el rendimiento debe degradar uniformemente.