Qué son los gobernadores de Android y cómo configurarlos (II)

En el artículo anterior hemos hablado sobre los gobernadores y su increíble utilidad a la hora de conseguir el mejor rendimiento y también el máximo ahorro. Pues bien, tan importante como estos son los planificadores de Entrada/Salida, con los que podremos decidir qué tareas se llevan antes  o después, priorizando distintos procesos y mucho más.

Como no podía ser de otra manera, comenzamos hablando sobre qué son los planificadores de Entrada/Salida. Como ya sabemos, las operaciones de escritura y lectura de la memoria provocan cuellos de botella en los dispositivos Android, lo que tiene una incidencia directa en el rendimiento. Un planificador decide el orden en el que se procesan las distintas peticiones, de forma que se optimice el sistema para disminuir los tiempos de búsqueda y priorizar algunos procesos importantes de Entrada/Salida.

En Android, estos valores vienen establecidos en el firmware, pero siendo root, tendremos la posibilidad de cambiar la configuración. En este sistema operativo encontraremos varios planificadores, aunque los más conocidos son los siguientes:

  • Noop: Es el más simple ya que inserta todas las peticiones en un cola FIFO (First Input, First Output, es decir, el primero que entra es el primero que sale). Su problema es obvio: si existe algún proceso prioritario, éste tendrá que esperar su turno en la cola.
  • Deadline: En este caso se funciona en casi tiempo real y Android utiliza el método round robin para asignar recursos, intentando distribuir de forma uniforme las peticiones para evitar que se agote la capacidad de recibir peticiones. Utiliza varias colas de procesamiento y puede ser un buen planificador para tareas intensivas.
  • CFQ: Acrónimo de Completely Fair Queuing, algo así como encolado completamente justo. Es muy similar al anterior aunque en este caso se distribuye más equitativamente el uso del procesador disponible para cada uno de los procesos de Entrada/Salida. Es uno de los más utilizados ya que controla muy bien tanto las colas como los procesos que se ejecutan.
  • SIO: Es una combinación de los dos primeros planificadores. Mantiene al mínimo la carga para conseguir la menor latencia posible, atendiendo más rápido a las solicitudes.

Lo cierto es que existen muchos más planificadores de Entrada/Salida pero os hemos mostrado los que más se utilizan (y de estos cuatro, los tres primeros son de ‘obligado’ conocimiento). Sobre qué planificador utilizar en vuestro Android, lo único que podemos deciros es que probéis para ver cuál se adapta mejor a vuestras necesidades. No obstante, Noop y Deadline son perfectos para aplicaciones que requieren un procesamiento intensivo, mientras que CFQ se adapta mejor a los procesos con menos carga.