Cosa sono gli scheduler di I/O in Android?

Uno scheduler I/O, in termini semplici, è un processo di sistema che controlla il modo in cui la cpu elabora e accetta i dati. Controlla anche il modo in cui la memoria viene acceduta e manipolata.
.
Per Android ecco alcuni scheduler I/O:
.
-Anticipatory
Privilegia le operazioni di lettura rispetto alla scrittura. Anticipa le operazioni di lettura sincrone.
.
-BFQ
Invece dell'assegnazione di fette di tempo da parte di CFQ, BFQ assegna dei budget. Il disco è concesso a un processo attivo finché il suo budget (numero di settori) non scade. BFQ assegna budget elevati ai compiti non letti. Il budget assegnato a un processo varia nel tempo in funzione del suo comportamento. È uno scheduler molto accurato.
.
-CFQ
Completely Fair Queuing scheduler mantiene una coda I/O scalabile per processo e cerca di distribuire la larghezza di banda I/O disponibile equamente tra tutte le richieste I/O. Ogni coda per processo contiene richieste sincrone dai processi. La fetta di tempo assegnata per ogni coda dipende dalla priorità del processo "genitore". Dà prestazioni a tutto tondo.
.
-Deadline
L'obiettivo è quello di minimizzare la latenza I/O o lo starvation di una richiesta. Lo stesso si ottiene con la politica round robin per essere equi tra più richieste di I/O. Cinque code sono utilizzate in modo aggressivo per riordinare le richieste in arrivo. È uno scheduler in tempo reale.
.
-Noop
Inserisce tutte le richieste I/O in arrivo in una coda First In First Out e implementa la fusione delle richieste.
.
-SIO
Simple I/O scheduler mira a mantenere il minimo overhead per ottenere una bassa latenza per servire le richieste I/O. Nessun concetto di coda prioritaria, ma solo la fusione di base. Sio è un mix tra noop e deadline. Non si verifica alcun riordino o ordinamento delle richieste.
.
-V(R)
A differenza di altri schedulatori, le richieste sincrone e asincrone non sono trattate separatamente, invece viene imposta una scadenza per correttezza. La prossima richiesta da servire è basata sulla sua distanza dall'ultima richiesta. Altamente instabile e inaffidabile.
.
.
fonte per i tipi di i/o scheduler: androidcoliseum.com