Un programador de E/S, en términos simples, es un proceso del sistema que controla la forma en que la cpu procesa y acepta datos. También controla la forma en que se accede a la memoria y se manipula.
.
Para android aquí hay algunos programadores de E/S:
.
-Anticipatorio
Prioriza las operaciones de lectura sobre las de escritura. Se anticipa a las operaciones de lectura sincrónicas.
.
-BFQ
En lugar de la asignación de trozos de tiempo por CFQ, BFQ asigna presupuestos. El disco se concede a un proceso activo hasta que su presupuesto (número de sectores) expira. BFQ asigna presupuestos altos a las tareas que no son de lectura. El presupuesto asignado a un proceso varía con el tiempo en función de su comportamiento. Es un planificador muy preciso.
.
-CFQ
El planificador de Colas Completamente Justas mantiene una cola de E/S escalable por proceso e intenta distribuir el ancho de banda de E/S disponible de forma equitativa entre todas las peticiones de E/S. Cada cola por proceso contiene las peticiones sincrónicas de los procesos. La franja de tiempo asignada a cada cola depende de la prioridad del proceso "padre". Proporciona un rendimiento global.
.
-Deadline
El objetivo es minimizar la latencia de E/S o la inanición de una solicitud. Lo mismo se logra con la política de round robin para ser justos entre las múltiples solicitudes de E/S. Cinco colas se utilizan agresivamente para reordenar las solicitudes entrantes. Se trata de un planificador en tiempo real.
.
-Noop
Inserta todas las peticiones de E/S entrantes en una cola First In First Out e implementa la fusión de peticiones.
.
-SIO
El planificador de E/S simple tiene como objetivo mantener una sobrecarga mínima para lograr una baja latencia para servir las peticiones de E/S. No hay conceptos de colas de prioridad, pero sólo fusión básica. Sio es una mezcla entre noop y deadline. No hay reordenación ni clasificación de las peticiones.
.
-V(R)
A diferencia de otros planificadores, las peticiones síncronas y asíncronas no se tratan por separado, sino que se impone una fecha límite para la equidad. La siguiente petición que se sirve se basa en su distancia de la última petición. Altamente inestable y poco fiable.
.
Fuente para los tipos de programadores i/o: androidcoliseum.com