Planificador Completamente Justo

algoritmo planificador desarrollado con la meta de maximizar el uso de la CPU
(Redirigido desde «Completely Fair Scheduler»)

El Planificador Completamente Justo (Completely Fair Scheduler - CFS) es un algoritmo planificador desarrollado con la meta de maximizar el uso de la CPU con las diferentes tareas que se lanzan en un sistema Linux basándose en el Fair Queuing.

Este planificador, apareció en la versión del núcleo Linux 2.6.23[1]​ para sustituir al proceso planificador O(1) incluido en los núcleos anteriores, siendo desarrollado inicialmente por Ingo Molnar. Este planificador fue desarrollado en 62 horas con 100 Kbytes de código añadido.[2]

Este algoritmo tiene como objetivo el maximizar el uso de la CPU pero permitiendo el uso interactivo de la máquina. Es decir, tratará de que en ningún momento un usuario vea una bajada de rendimiento.

Algoritmo

editar

Con el planificador CFS se realiza un cambio radical en los planteamientos actuales de los planificadores incluidos en Linux, cambiando la planificación de manera que se base en tiempo, en nanosegundos, en vez de colas de ejecución donde hay tareas en espera, sino que se creará un Árbol rojo-negro de búsqueda, en el que se almacenará una línea de tiempo de las futuras tareas que usarán la CPU. Ya no usará los jiffies, basado en los tick de la CPU, para expulsar a un proceso.

No usará intervalos de tiempo (quantum) estáticos, sino que se irán modificando dinámicamente según necesidades del sistema, con una granularidad definida en el fichero /proc/sys/kernel/sched_granularity_ns definido en nanosegundos.

Complejidad

editar

Este planificador tiene una complejidad de planificación de O(log N), donde N es el número de tareas encoladas. Tiene la mejor complejidad en la elección de la tarea siguiente a ejecutar ya que es constante, pero insertar una tarea a ejecutar detrás supone O(log N), que corresponde con la implementación de la cola de procesos en forma de árbol.

Referencias

editar
  1. «Novedades en el núcleo Linux 2.6.23 en kernelnewbies.org». Consultado el 5 de diciembre de 2007. 
  2. «Análisis de CFS en KernelTrap». Archivado desde el original el 29 de junio de 2012. Consultado el 5 de diciembre de 2007. 

Enlaces externos

editar