Ciao amici di tuttoapp-android,
oggi vorrei parlarvi dello scheduler.
Lo Scheduler è un algoritmo che ordina al sistema di avviare un processo di ordinamento di richieste (input) e di dati(media e quindi immagini, musica video ma anche installazione applicazioni ed altro) in modo tale da permettere la loro risoluzione nel miglior modo possibile incrementando cosi le performance e diminuendo i consumi. La differenza tra i vari scheduler è dato dal vario tipo di “attenzione” o priorità che viene dato ad alcune richieste meno che ad altre.
La scelta di un dato scheduler non produce cambiamenti così visibili come per la scelta dei governor, ma apporta comunque dei miglioramenti. Essi lavorano in sinergia con i governor; perciò ogni combinazione è bene provarla; fateci sapere la vostra combinazione.
Ecco i più conosciuti:
Per completare leggi anche: [GUIDA parte 1] impostazioni del kernel – Governor
Deadline
si pone come obbiettivo garantire una scadenza a tutte le richieste per far si che si evitino fenomeni indesiderati come il così detto “starvation” ovvero “l’eterna” attesa di alcune richieste. Questo si verifica quando uno o più processi di bassa priorità vengono lasciati indefinitamente nella coda dei processi pronti, poichè vi è sempre almeno un processo pronto di priorità più alta.
V(r)
questo scheduler fa si che la richiesta successiva venga eseguita in base alla differenza di tempo tra essa e l’ultima richiesta inviata. Su internet si parla molto bene di esso.
No-op
inserisce tutte le richieste in un’unica coda in base al loro ordine di arrivo, raggruppando insieme quelle uguali ed inviate contemporaneamente.
SIO
E’ lo scheduler più semplice, infatti si prefigge solo lo scopo di ottenere una bassa latenza ossia cerca di ridurre il lasso di tempo che distanzia l’istante in cui la richiesta è generata e l’istante in cui la richiesta è soddisfatta.
CFQ
Ordina le richieste dei processi “liste” distinguendole per tipologia ed assegna a ciascuna lista un preciso tempo la cui durata dipende dalla priorità assegnata. Facendo una analogia con i governor, esso è come “l’Ondemand” degli scheduler, infatti è il più equilibrato, svolgendo il suo compito in maniera degna.
Anticipatory
Ordina le richieste in base a criteri predittivi,ovvero mette in pausa le richieste per un brevissimo periodo di tempo in modo tale da aggregare per somiglianza le richieste successive svolgendole perciò per tipo.
ROW
Acronimo che sta per “read over write”, fornisce la priorità alle richieste di lettura invece chea quelle di scrittura. Questo scheduler essendo stato progettato appositamente per i dispositivi mobili è quello che offre una gestione migliore dei processi ed influisce molto positivamente sulla durata della batteria.
Per qualsiasi consiglio e/o aggiunta scriveteci nei commenti e noi vi risponderemo 🙂
Il sottoscritto Fabrizio Varelli, editore di www.TuttoApp-Android.com, è l’unico autore della presente guida, scritta in passato su altri blog (si veda LINK ALLA DISCUSSIONE SU ANDROIDIANI)
3 Commenti