O AndroidPIT utiliza cookies para garantir que você tenha a melhor experiência no nosso site. OK
103 Compartilhados 29 Comentários

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.

Qual é a melhor combinação de Governos e I/O Scheduler?

Bom, isto depende do perfil do usuário, do kernel do aaprelho, so processador e por aí vai. Como disse lá no início, é na experimentação que você irá descobrir qual o melhor para você, lembrando que ainda existem apps nos quais se pode programar perfis diferenciados para cada hora do dia e da noite, nos horários onde você mais exige do sistema ou não, como não ligo muito para a duração de bateria, uso um perfil bem agressivo e de alta performance, mas de alto consumo, e você? Qual é o seu perfil? Deixe-nos saber a sua opinião nos comentários abaixo.

29 Comentários

Escreva um comentário:
  • A melhor combinação para desempenho para rodar Pokemon GO que encontrei foi =>

    Governor: Performace e I/O scheduler: Deadline

    Deixou o jogo extremamente mais suave e beleza, rodando em um Alcatel Pop C7 com sistema MIUI 7. Porem! na hora de jogar, a bateria esgotou 50% em cerca de meia hora.

  • Valeu ajudo muito, deixava só dois dos núcleos ativos e n via resultado na batéria, pq ficavam sempre no seu máximo, agora que entendi como funciona os governor, deu pra regular pra ter mais núcleos mas rodando numa potência menor

  • Caí na besteira de pesquisar BRASILIANWAX no Google... O.o

  • Qual o melhor para fazer esse controle o SetCpu ou esse controle simples de cpu?

  • Com alguns erros de digitação na matéria, mas não tira o brilho da mesma.
    Muito importante para quem gosta de aumentar ou diminuir o ''clock'' do aparelho.

  • Alguém usando ou testando as combinações acima na CM12.1 (5.1.1)?
    Galaxy s2

  • Jefferson, boa noite. Qual módulo seria melhor para o meu Galaxy s4 I9515L ? Eu deixei aqui CPU MIN : 1,026 GHZ / CPU MÁX: 1,89 GHZ / ONDEMAND / NOOP.
    Seria a melhor combinação esta ?

    Obrigado.

  • ONDEMAND e NOOP é uma combinação perfeita pra quem quer desempenho
    razoavel e uma boa duração de bateria. Eu uso esses dois aqui no
    4.4.4 stock do meu Moto G 2 e com a ajuda de alguns scripts que
    inseri no build.prop melhorou ainda mais. Pra configurar esses
    gerenciadores eu usei o app SetCPU. Lembrando que tem que ter
    acesso Root.

  • Para o Moto G com a ROM Nexus G+ (7) qual a configuração que você me aconselha colocar??? Uso o No-frills CPU Control. Valeu. Abraço..

  • Bom dia! O post é muito bom e útil, gostaria de sugerir que coloquem exemplos de tipos de usuários, sei que já falaram que é algo pessoal mas assim ficaria mais facil poder configurar no meio de tantas opcoes.

    Obrigada

  • E o PegasusQ? Qual a desse governor?

  • 60

    + evandro, essa configuração é meio pessoal , só testando a combinação pra ver se fica bom pra ti, pois existem muitos fatores que interferem no resultado final, eu posso te indicar uma configurações que pra mim fica bom e tu não gostar no teu aparelho.

  • Olá,

    Queria saber quais os governors que a galera anda usando... esse lulzactive é bom? O cocore 6.8 liberou outros governors?

  • Jefferson, estou com vontade de trocar o kernel, mas ao mesmo tempo com medo. Tem algum problema em eu fazer essa troca? Acarreta algum transtorno no aparelho? Você acha que melhora a performance? Eu tenho o recovery personalizado no meu celular, e baixei o pacote .zip, a versão Siyah-s3-v1.9.1-CWM, o meu andoid é 4.1.2, você sabe se é essa que tenho que instalar? Tem algum outro kernel que você recomenta?
    Obrigado pelas informações que tem passado.

  • 60

    +luiz, o pessoal fala muito bem desse kernel para o s3, para instalar tem duas formas, se tu tem o recovery personalizado, instala o pacote zip, se não tem , tem que localizar o arquivo que termina em MD5, esse é o kernel, e instala por um terminal emulador, é bem provável que de onte tu fez o download do kernel tenha os comandos para fazer isso.

  • Jefferson, baixe um Kernell - Siyah-s3-v1.7rc1, só não instalei ainda pois não sei como fazer.....rsrsrsrs.....vc acha esse um bom kernell? É esse que tenho que usar no meu galaxy S3 com android 4.1.2?

Mostrar todos os comentários

O AndroidPIT utiliza cookies para garantir que você tenha a melhor experiência no nosso site. Mais informações

Entendi