segunda-feira, 12 de maio de 2014

Por dentro da linguagem do OS Android: "Governor" e "I/O Scheduler"



Quando fazemos o root, trocamos a ROM ou o Kernel originais de um aparelho Android pela primeira vez, quase todos temos a mesma reação, vamos ver quais foram as novas funções adicionadas no aparelho e, em muitos casos, nos deparamos com o aplicativo No-frills CPU Control/Controle Simples da CPU, ilustrado na imagem abaixo. E agora, o que fazer? O que significa cada uma destas opções? Como eu também passei por isso, aqui segue uma explicação sobre o que é, para quê serve e como utilizar as opções "Governor" e "I/O Scheduler" deste aplicativo.
Governador i o scheduler
Entenda algumas das opções do aplicativo Controle Simples da CPU. / © AndroidPIT
Em primeiro lugar, saiba que é através desse App que você faz o oveclock no aparelho, se disponível. O que a maioria não sabe é que usando a combinação certa de "Governor" e "I/O Scheduler", se pode aumentar o desenpenho do aparelho ou diminuir o consumo da bateria entre outras funções.

GOVERNOR

Atualmente, no kernel CoCoRe 4.0 temos 20 "Governors", mas o que são? A grosso modo pode se dizer que são scripts que governam como a CPU vai se comportar em cada situação durante o manuseio do aparelho. Aqui vou falar de uma forma simples sobre os mais comuns:

1 - ONDEMAND

A principal característica deste "Governor" é a rapidez com que ele sai da frequência mínima de trabalho da CPU para a frequência máxima ao se iniciar uma tarefa e, após o término ele retorna aos poucos para a frequência mínima novamente. Este "Governor" é quase que padrão de fábrica nos aparelhos devido ao salto quase que instantâneo do mínimo para o máximo de frequência da CPU, com isso temos aquela rapidez e fluidez que tanto adoramos e procuramos, só que isso implica diretamente na duração da bateria.

2 - ONDEMAND 2

Supostamente o Ondemand 2 é mais amigável para a bateria, pois quando esta com a tela desligada, se um app que funcione em segundo plano exigir da CPU, ele não irá ao máximo da CPU como o outro, só irá até 500mhz.

3 - PERFORMANCE

Esse "Governor" bloqueia a CPU em frequência máxima, o que nem sempre se traduz em rapidez pelos testes que fiz, fora que o consumo de bateria é alto.

4 - POWERSAVE

Ao contrário do anterior, o Powersave, como o nome já diz, bloqueia a CPU em frequência mínima e poupa bateria, mas derruba a performance do aparelho.

5 - CONSERVATIVE

Esse "Governor" tem preferência pela frequência mínima, ou seja, ele demora para chegar ao máximo da CPU, mas volta imediatamente para o mínimo, é considerado um "Ondemand" lento, para se ter uma ideia.

6 - USERSPACE

Este "Governor" excepcionalmente raro para o mundo dos dispositivos móveis, permite que qualquer programa executado pelo usuário defina a frequência da CPU. Este "Governor" é mais comum entre servidores ou desktops, onde a aplicação (como um aplicativo de perfil de energia) precisa de privilégios para definir a velocidade de clock da CPU.

7 - MINMAX

Bom, o nome já dá uma idéia do que seja, este "Governor" usa só o mínimo e o máximo de frequência, logo, não usa frequências intermediárias.

8 - INTERACTIVE

Muito parecido com o "Ondemand", este "Governor" tem escalas de frequências definidas pelo programador do kernel, o que significa que ele se ajusta melhor à demanda de serviço da CPU imposta pelo usuário, só indo a frequência máxima se realmente necessário, isso implica na vida útil e na durabilidade da bateria.

9 - SMARTASS

Outro "Governor" interativo que tem como diferencial a frequência máxima de operação com tela desligada/em repouso de 352mhz, o que influencia também na duração da bateria.

10 - SMARTASS V2

Esta é a segunda versão do "Smartass", onde se dá prioridade ao equilibrio desempenho/consumo.

11 - SCARY

É um "Governor" conservador, que sempre dá preferência para as frequências mais baixas, tendo um limite de frequência com tela desligada de 245mhz, mesmo que você tenha definido uma frequência mínima superior a esta.

12 - LAGSFREE

O "Lagsfree" é um "Governor" que utiliza uma escala pré-definida de frequências para subir ao 100% da CPU, teoricamente, é mais amigável para a bateria, mas existem relatos de que para reprodução de videos é lento.

13 - BRASILIANWAX

Este é semelhante ao "Smartass v2", mas com uma rampa de frequência mais agressiva, o que implica maior consumo de bateria.

14 - INTELLIDEMAND

Com base no "Ondemand", com a diferença de que ele se baseia na carga de trabalho da GPU do aparelho, este "Governor" equlibra a escalada da frequência da CPU conforme a GPU necessitar, é basicamente um "Ondemand" inteligente.

15 - HOTPLUG

É semelhante ao "Ondemand", com o diferencial que ele tem a capacidade de desligar um núcleo do processador, quando o sistema estiver ocioso e reinicia-lo imediatamente quando exigido, é obivio que só funciona em aparelhos multicore.

I/O SCHEDULER

De uma forma simples, o "I/O Scheduler" é como o kernel controla o acesso ao disco rígido. Assim como o "Governor" existem alguns "I/O's" mais comuns que se apresentam nos nossos smartphones:

1 - NOOP

Coordena os dados I/O solicitados ao disco, sendo que se adecua melhor com unidades flash como é o caso dos smarphones.
Vantagens: Serve solicitações de I/O com menor número de ciclos da CPU (mais amigavel para a bateria).
Desvantagens: A redução do número de ciclos de CPU utilizada é proporcional à queda de desempenho.

2 - DEADLINE

Basicamente é um super organizador de I/O, diminuindo assim a latência (atraso) na solicitação de uma informação. Isso se consegue através de um rodizio de I/O's solicitados, para ser justo entre vários pedidos.
Vantagens: Quase um programador em tempo real, melhor planejador para acesso e consulta de dados.
Desvantagens: Quando o sistema está sobrecarregado, conjunto de processos que podem perder prazo é largamente imprevisível.

3 - CFQ

Um programador escalonado, tenta distribuir a mesma "fatia" de tempo para cada solicitação de I/O.
Vantagens: Desempenho de I/O mais equilibrado, se ajustando melhor em multicores.
Desvantagens: Solicitações de I/O multimídias pondem ser mais lentas, devido a distribuição de tempos iguais para todas as solicitações.

4 - BFQ

Em vez de fatias de tempo, ele distribui "orçamentos" (números de setores em disco), para as solicitações de I/O.
Vantagens: Melhor desenpenho na transferência de dados pelo USB, considerado um programador de I/O preciso.
Desvantagens: Não obtem melhor desenpenho geral em benchmark e um orçamento muito grande pode gerar uma certa latência.

5 - SIO

Faz o agendamento de I/O's simples, tem como objetivo manter o mínimo de sobrecarga para atender as solicitações.
Vantagens: Simples e confiável.
Desvantagens: Leitura em drives flash é inferior aos outros I/O schedulers.

6 - V(R)

Basicamente é um gerenciador de I/O por ordem de chegada, o primeiro da fila é o primeiro a ser atendido.
Vantagens: Pode ser melhor para o benchmarking, pois no auge da sua "forma" VR tem o melhor desempenho.
Desvantagens: Menos confiável, mais instável.
Fonte e todos os créditos: http://www.androidpit.com.br/o-que-e-governor-e-i-o-scheduler

Nenhum comentário: