- Planificador Completamente Justo
-
Planificador Completamente Justo
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 planificardor 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]
Contenido
Meta
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
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 binario de búsqueda, red-black tree, 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.
También hay que remarcar que no usará rodajas de tiempo (quantum) estáticas, sino que 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
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
- ↑ «Novedades en el núcleo Linux 2.6.23 en kernelnewbies.org». Consultado el 2007-12-05.
- ↑ «Análisis de CFS en KernelTrap». Consultado el 2007-12-05.
Categoría: Sistemas operativos
Wikimedia foundation. 2010.