Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S 5.2 Princípios do software de E/S 5.3 Camadas do software de E/S 5.4 Discos 5.5 Relógios 5.6 Terminais com base em caracteres 5.7 Interfaces gráficas do usuário 5.8 Terminais de rede 5.9 Gerenciamento de energia Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br Algumas partes deste material foram atualizadas com base na 3ª edição deste livro. 1
Entrada/Saída Uma das principais funções do SO é controlar os dispositivos de E/S do computador. Para isso ele deve: Emite comandos; Intercepta interrupções; Trata erros; Fornecer uma interface simples e fácil de usar entre os dispositivos e o restante do sistema 2
Dispositivos de E/S Dividem-se em 2 categorias: Blocos. Armazena a informação em blocos. Ex: disco Caracteres. Não reconhece blocos Envia ou recebe um fluxo de caracteres. Ex: impressoras,interfaces de rede. 3
Controladores de Dispositivos Componentes de dispositivos de E/S mecânico eletrônico O componente eletrônico é o controlador do dispositivo pode ser capaz de tratar múltiplos dispositivos Tarefas do controlador converter fluxo serial de bits em bloco de bytes executar toda correção de erro necessária tornar o bloco disponível para ser copiado para a memória principal 4
Princípios do Hardware de E/S 5
E/S mapeada na memória (1) a) Espaços de memória e E/S separados b) E/S mapeada na memória c) Híbrido 6
E/S mapeada na memória Vantagens Driver de Dispositivo pode ser escrito totalmente em C Não é preciso nenhum mecanismo de proteção p/ evitar E/S por usuários Uma mesma instrução de leitura de memória pode ser usada para ler registradores de controle. Desvantagens Uso de cache é desastroso Todos os módulos de memória e todos os dispositivos de E/S devem examinar todas as referências. 7
E/S mapeada na memória (2) (a) Arquitetura com barramento único (b) Arquitetura com barramento dual 8
Acesso Direto à Memória (DMA) Operação de uma transferência com DMA 9
Acesso Direto à Memória (DMA) Barramentos podem operar em dois modos: Palavra Roubo de ciclo Surto Mais eficiente, porém pode deixar a CPU esperando por muito tempo OBS: Nem todos os computadores usam DMA 10
Interrupções Revisitadas Dispositivos de E/S podem lançar interrupções por diversos motivos (falha de hardware, conclusão de uma tarefa, etc.) No momento que uma interrupção é atendida, o processador deve salvar o estado do processo atual para depois retomá-lo 11
Interrupções Revisitadas Como ocorre uma interrupção. Conexões entre dispositivos e controlador de interrupção usam linhas de interrupção no barramento em vez de fios dedicados 12
Interrupções Revisitadas Problemas ao salvar estados: Onde salvar Registrador interno perda de dados Pilha de processos do usuário falta de página Pilha do S.O. Troca do modo S.O. p/ usuário Invalidação da cache Recargas de informação 13
Interrupções Revisitadas Problemas ao salvar estados: Qual a situação no momento da parada Interrupção precisa PC em lugar conhecido Tudo já foi concluído antes de PC Nada após PC foi feito Estado de PC é conhecido Interrupção imprecisa Grande quantidade de informação salva Interrupção e recuperação lenta Modo misto E/S precisa Erros imprecisa 14
Princípios do Software de E/S Objetivos do Software de E/S (1) Independência de dispositivo Programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (DVD, USB, disco rígido ou CD-ROM) Nomeação uniforme Nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um número inteiro que é independente do dispositivo Tratamento de erro Trata o mais próximo possível do hardware Dispositivo -> Driver 15
Objetivos do Software de E/S (2) Transferências Síncronas vs. Assíncronas transferências bloqueantes vs. orientadas a interrupção utilização de buffer para armazenamento temporário dados provenientes de um dispositivo muitas vezes não podem ser armazenados diretamente em seu destino final Dispositivos Compartilhádos vs. Dedicados discos são compartilháveis unidades de fita não são 16
E/S Programada (1) CPU ocupada todo o tempo (espera ocupada ou pooling) Simples de implementar Se a CPU não tem mais nada a fazer este método se torna viável (ex: sistemas embarcados) 17
E/S Programada (1) Passos da impressão de uma cadeia de caracteres 18
E/S Programada (2) Escrita de uma cadeia de caracteres para a impressora usando E/S programada 19
E/S Orientada à Interrupção Interrupções a cada atividade executada Benefícios Pode realizar outras tarefas enquanto ocorre E/S Problemas Interrupções demandam tempo 20
E/S Orientada à Interrupção Escrita de uma cadeia de caracteres para a impressora usando E/S orientada à interrupção a) Código executado quando quando é feita a chamada ao sistema para impressão b) Rotina de tratamento de interrupção 21
E/S Usando DMA Interrupções a cada buffer copiado Benefícios Ganho de tempo Problemas DMA mais lento que a CPU, logo E/S programada ou orientada a interrupção podem ser melhores se a CPU estiver ociosa 22
E/S Usando DMA Impressão de uma cadeia de caracteres usando DMA a) Código executado quando quando é feita a chamada ao sistema para impressão b) Rotina de tratamento de interrupção 23
Exercícios 1. Quais são os tipos de dispositivos de E/S. Comente 2. Diferencie componente mecânico e componente eletrônico. 3. Cite as vantagens da E/S mapeada na memória. 4. Quais são os objetivos do software de E/S 5. Comente sobre os tipos E/S 24
Camadas do Software de E/S Camadas do sistema de software de E/S 25
Tratadores de Interrupção (1) As interrupções devem ser escondidas o máximo possível uma forma de fazer isso é bloqueando o driver que iniciou uma operação de E/S até que uma interrupção notifique que a E/S foi completada Rotina de tratamento de interrupção cumpre sua tarefa e então desbloqueia o driver que a chamou 26
Tratadores de Interrupção (2) Passos que devem ser executados em software depois da interrupção ter sido concluída 1. salva registradores que ainda não foram salvos pelo hardware de interrupção 2. estabelece contexto para rotina de tratamento de interrupção 3. estabelece uma pilha para a rotina de tratamento de interrupção 4. sinaliza o controlador de interrupção, reabilita as interrupções 5. copia os registradores de onde eles foram salvos 6. executa rotina de tratamento de interrupção 7. escolhe o próximo processo a executar 8. estabelece o contexto da MMU para o próximo processo a executar 9. carrega os registradores do novo processo 10. começa a executar o novo processo 27
Drivers dos Dispositivos (1) Dispositivos diferentes normalmente exigem softwares diferentes. Ex: mouse e disco Cada dispositivo de E/S ligado ao computador precisa de algum código específico do dispositivo para controlá-lo. Este código é conhecido como driver do dispositivo. 28
Drivers dos Dispositivos (2) Fornecido pelo fabricante junto com o dispositivo Trata um dispositivo ou uma classe fortemente ligada Deve ser parte do núcleo do S.O. 29
Drivers dos Dispositivos (3) Posição lógica dos drivers dos dispositivos A comunicação entre os drivers e os controladores de dispositivos é feita por meio do barramento 30
Drivers dos Dispositivos (4) São classificados pelo S.O em: Dispositivos de Bloco Dispositivos de Caractere Entre suas funções estão: Aceitar e executar requisições abstratas de leitura ou gravação de um software independente do dispositivo Verifica entradas e faz validações (se sucesso, pode exigir traduções) Verifica se o dispositivo está em uso Se ocioso, verifica o status do hardware p/ saber se início pode ser imediato. 31
Drivers dos Dispositivos (5) Controlar o dispositivo significa emitir uma sequência de comandos para ele. O driver é o local onde a sequência de comandos é determinada. Drivers devem ser reentrantes. Devem possuir meios para lidar com situações inesperadas. ex: retirada de um dispositivo 32
Software de E/S Independente de Dispositivo (1) Interface uniforme para os drivers dos dispositivos Armazenamento em buffer Relatório dos erros Alocação e liberação de dispositivos dedicados Fornecimento de tamanho de bloco independente de dispositivo Funções do software de E/S independente de dipositivo 33
Software de E/S Independente de Dispositivo (2) Interface uniforme para os drivers dos dispositivos (a) Sem uma interface-padrão do driver (b) Com uma interface-padrão do driver 34
Software de E/S Independente de Dispositivo (3) Utilização de buffer a) Entrada sem utilização de buffer b) Utilização de buffer no espaço do usuário c) Utilização de buffer no núcleo seguido de cópia para o espaço do usuário d) Utilização de buffer duplo no núcleo 35
Software de E/S Independente de Dispositivo (4) Utilização de buffer A operação em rede pode envolver muitas cópias de um pacote 36
Software de E/S Independente de Dispositivo (5) Relatório de erros Em E/S é comum a ocorrência de erros. Se eles ocorrem o SO deve lidar com eles da melhor maneira possível. Se forem erros de programação, a melhor atitude é reportar o erro. 37
Software de E/S Independente de Dispositivo (6) Relatório de erros Se forem erros reais de E/S deveria ser tarefa do driver resolver o problema, mas ele pode repassar o problema para o software independente do dispositivo. Se há interatividade, ele pode repetir ou matar o processo, caso contrário só resta relatar o erro. Em alguns casos porém, pode ser necessário emitir uma mensagem no vídeo e desligar o sistema. 38
Software de E/S Independente de Dispositivo (7) Alocação e liberação de dispositivos dedicados Alguns dispositivos como CD-ROM, etc. só podem ter acesso único. O SO deve garantir isso da melhor forma possível, seja bloqueando as requisições ou criando listas de espera. 39
Software de E/S Independente de Dispositivo (8) Tamanho de bloco independente de dispositivo Dispositivos de bloco podem ter setores de tamanho diferenciado. O software independente do dispositivo deve ocultar estes detalhes e fornecer um tamanho de bloco uniforme para as camadas superiores. 40
Software de E/S no Espaço do Usuário Embora a maior parte do software de E/S esteja dentro do SO, uma pequena parte dele é constituída de bibliotecas ligadas aos programas de usuário. As chamadas de sistema normalmente são feitas por rotinas de bibliotecas. 41
Software de E/S no Espaço do Usuário Enquanto algumas rotinas fazem pouco mais do que colocar seus parâmetros no local apropriado, outras trabalham de verdade, fazendo por exemplo a formatação de E/S. Nem todo software de E/S no nível do usuário consiste em rotinas de biblioteca. Ex: spool 42
Software de E/S no Espaço do Usuário Camadas do sistema de E/S e as principais funções de cada camada 43
Exercícios 1. Quais são as 4 camadas do Sistema de Software de E/S. 2. Cite as funções do Driver de Dispositivo. 3. Quais as funções do software de E/S independente de dispositivo. Comente. 44
Discos Discos mais antigos possuiam o mesmo nº de setores em todas as trilhas. Posteriormente eles passaram a utilizar zonas e uma geometria virtual que permitia nºs diferentes de setores por trilha Atualmente os discos suportam um sistema chamado de endereçamento lógico de bloco (setores enumerados consecutivamente) 45
RAID Processadores cada vez mais velozes que discos Em 1998, Patterson et al. sugeriram 6 organizações paralelas que discos que poderiam melhorar o desempenho e/ou segurança dos dados. Sistema conhecido como RAID (arranjo redundante de discos baratos), mas a indústria preferiu definir como (arranjo redundante de discos independentes) 46
RAID Foram organizados em classes de 0 a 5. Raid 0: Único disco virtual. Distribuição dos dados pelos discos(striping) Bom desempenho, pouca segurança Raid 1: Espelho Escrita duplicada, leitura até 2x mais rápida Raid 2: Divisão em palavras ou bits, com aplicação do código de Hamming Se utilizado com muitos discos é bastante eficiente Requer sincronização dos discos. Exige muito controlador 47
RAID Raid 3: Raid 2 simplificado com um bit de paridade por palavra Raid 4: Semelhante ao 0, com paridade em um disco extra Protege contra a perda de um disco Não funciona bem para pequenas atualizações (necessário ler todos os discos para recalcular a paridade) Raid 5: Raid 4 com distribuição uniforme dos bits de paridade Resolve o problema de recargas do Raid 4 Processo complexo para reconstruir um disco perdido 48
CD-ROM Possui depressões e superfícies Se a espiral de um CD fosse esticada mediria 5,6 km Velocidade linear constante (mais rápida no centro) 49
CD s Graváveis Simulam as depressões e superfícies com tintas Permite gravações incrementais Cada trilha possui sua própria VTOC (Tabela de conteúdos de volume) 50
CD Regravável Possuem ligas metálicas que sob diferentes potência de um laser alternam entre os estados amorfo e cristalino. 51
DVD Utiliza as mesmas idéias de depressão e superfície do CD-ROM, porém: Possui depressões menores, Espiral mais estreita e utiliza laser vermelho Formatos definidos de DVDs: 1. Lado simples, camada simples (4,7 GB). 2. Lado simples, camada dupla (8,5 GB). 3. Lado duplo, camada simples (9,4 GB). 4. Lado duplo, camada dupla (17 GB). 52
Discos Quando os discos são fabricados, não possuem nenhuma informação sobre o metal magnetizado. Antes do primeiro uso é necessário uma formatação de baixo nível feita por software, que irá criar trilhas concêntricas compostas por setores. 53
Discos Discos costumam ter setores sobressalentes p/ suprir defeitos de fabricação De uma trilha para outra é comum existir um deslocamento conhecido como deslocamento de cilindro. Formatação de baixo nível = discos c/ 20% de espaço a menos. 54
Formatação de Disco (1) Um setor do disco 55
Formatação de Disco (2) Uma ilustração da torção cilíndrica 56
Formatação de Disco (3) Ler vários setores de uma única vez sem dúvida exigiria um buffer muito grande e nem sempre isto é possível. Por isso a formatação de baixo nível costuma fazer o entrelaçamento entre os setores para melhorar o desempenho. O entrelaçamento pode ser simples ou duplo, dependendo da velocidade de cópia dos dados. 57
Formatação de Disco (4) a) Sem entrelaçamento b) Entrelaçamento simples c) Entrelaçamento duplo 58
Formatação de Disco (5) Após a formatação de baixo nível são criadas as partições que do ponto de vista lógico são discos separados. Geralmente o setor 0 contém a MBR e a tabela de partições. O passo final na preparação de um disco é a formatação de alto nível que irá criar as estruturas de diretórios, definir o sistema de arquivos utilizados, etc. 59
Algoritmos de Escalonamento de Braço de Disco (1) Tempo necessário para ler ou escrever um bloco de disco é determinado por 3 fatores 1. tempo de posicionamento 2. atraso de rotação 3. tempo de transferência do dado 60
Algoritmos de Escalonamento de Braço de Disco (2) Tempo de posicionamento domina, logo devemos buscar um algoritmo que otimize esta tarefa: FIFO: Mais simples, menos eficaz SSF: Mais rápido do que FIFO, porém privilegia os setores centrais. Elevador: Ligeiramente inferior ao SSF, porém justo. 61
Algoritmos de Escalonamento de Braço de Disco (3) Algoritmo de escalonamento de disco Posicionamento Mais Curto Primeiro (SSF) 62
Algoritmos de Escalonamento de Braço de Disco (4) O algoritmo do elevador para o escalonamento das requisições do disco 63
Algoritmos de Escalonamento de Braço de Disco (5) Existem outras derivações destes algoritmos, além de outras técnicas que incluem a movimentação antecipada dos braços, contudo estes algoritmos são válidos se a geometria real do disco seja igual a geometria virtual. 64
Tratamento de Erro Discos estão sujeitos a defeitos de fabricação Se o defeito de um setor for muito pequeno, ele poderá ser utilizado e o ECC se encarregará de corrigí-lo toda vez, caso contrário o setor deverá ser descartado. O descarte pode ser feito de 2 modos: Controlador: feito em fábrica, pode remapear os setores defeituosos, ou todo o disco. Sistema Operacional: quando o controlador não é capaz de fazer o tratamento, o SO poderá fazê-lo, mas deve tomar precauções com usuários e sistemas de backup Além dos erros de setores, podem existir erros de posicionamento dos braços. 65
Tratamento de Erro a) Uma trilha de disco com um setor defeituoso b) Substituindo um setor reserva por um setor defeituoso c) Deslocando todos os setores para pular o setor defeituoso 66
Armazenamento estável Operações para armazenamento estável usando discos idênticos: 1. Escritas estáveis. 2. Leituras estáveis. 3. Recuperação de falhas. 67
Relógios Hardware do Relógio Um relógio programável apresenta dois modos de operação: Modo Disparo Único Modo Onda Quadrada Um relógio programável 68
Software de relógio (1) Obrigações típicas de um driver de relógio: 1. Manter a hora do dia. 2. Evitar que processos executem por um tempo maior que o permitido. 3. Contabilizar o uso da CPU. 4. Tratar a chamada de sistema alarm feita pelos processos dos usuários. 5. Fornecer temporizadores watchdog para partes do próprio sistema. 6. Gerar perfis, monitorar, coletar estatísticas. 69
Software do Relógio (2) Três maneiras para manter a hora do dia 70
Software do Relógio (3) Simulação de vários temporizadores com um único relógio 71
Temporizadores de Software Um segundo relógio programável para interrupções de temporização ajustado para causar interrupções em qualquer taxa que um programa precisar sem problemas se a frequência de interrupção é baixa Temporizadores de software evitam interrupções núcleo checa se o temporizador de software expirou antes de retornar para o modo usuário quão bem isso funciona depende da taxa de entradas no núcleo 72
Exercícios 1. Diferencie RAID 0 e 1. 2. Cite as vantagens e desvantagens do Raid 5. 3. Porque os DVD s possuem maior capacidade que os CD s. 4. Defina escritas estáveis e leituras estáveis. 5. Qual(is) a(s) função(ões) do software de relógio. Comente. 6. O que são temporarizadores por software. Qual sua função. Por que são considerados uma boa opção entre E/S orientada somente a interrupção ou controlada apenas por polling. 73
Software do teclado O número na porta de E/S é o da tecla e não ASCII. 8 bits (7 para teclas e 1 para pressionado/livre) Cabe ao driver dizer se a letra é maiúscula, minúscula, combinação, etc). Duas filosofias do driver: Baseada em caracter: Apenas converte codigo da tecla pra ASCII e repassa. (modo bruto ou não canônico) Baseada em linha: Trata a edição interna da linha e devolve corrigido. (modo preparado ou canônico) Uso de buffers dedicados ou pool de buffers. Eco 74
Software de Entrada (2) Caracteres tratados de forma especial no modo canônico 75
Software do mouse Envia uma mensagem a cada ação tomada (clique, movimento, etc) Movimento minímo é denominado mickey. Mensagem contém 3 itens (x, y, botões). Tratam cliques duplos 76
Software de Saída Mais simples do que a entrada Atualizar a tela de vídeo em situações complexas Sequências de escapes Unix usa base dea dados termcap
Software de Saída As seqüências de escapes ANSI aceitas pelo driver do terminal na saída ESC é o caractere de escape ASCII (0x1B) n,m, e s são parâmetros numéricos opcionais 78
Sistema de janelas X Sistema portátil que executa no espaço do usuário Divide-se em Servidor X e Cliente X. Muitos SO s executam o X como sistema de gerenciamento de janelas padrão.
Sistema de janelas X É simplesmente um sistema de gerenciamento de janelas. Não é uma GUI completa. Necessita de outras camadas Xlib Intrisics Motif GTK+ Qt
Sistema de janelas X 81
Sistema de janelas X Conceito chave do X é o recurso. Estrutura de dados que contém certa informação. Nem todos gostam de uma GUI. Xterm Simula um terminal inteligente
Exercícios 1. O Software de Entrada do teclado e do mouse funcionam da mesma forma? Comente. 2. Diferencie o modo bruto e modo preparado. 3. Defina eco. 4. O que é mickey. 5. Entre as funções do Sistema de janelas X, está a de controlar situações como cliques duplos. Verdadeiro ou Falso. Justifique. 83
Interfaces Gráficas do Usuário 4 elementos essenciais (WIMP) Window Icon Menu Pointer
API Win 32 Janela Item básico na tela de vídeo Parâmetros são passados na criação Coordenadas determinam sua posição e tamanho A cada programa é associado: Uma fila de mensagem Um conjunto de procedimentos tratadores
API Win 32 O comportamento do programa é dirigido pelos eventos que chegam, os quais são processados pelos procedimentos tratadores GDI Interface do dispositivo gráfico realiza a ação real de desenhar a tela A chamada rectangle(hdc, 2, 1, 6, 4) produz imagens do tipo vetorial
Mapas de bits Nem todas as imagens são vetoriais Fotos, vídeos, textos Mapa de bits (bitmaps) Sobreposição de grades na imagem Cada quadrante são valores médios entre as cores RGB Problema: não é extensível Windows suporta mapa de bits independente de dispositivo(dib) Extensão.bmp 87
Fontes No início representado por mapas de bits Problema de redimensionamento = Introdução de Fontes True Type o sistema seria inadequado para textos Esboços de caracteres Pontos relativos a origem (0,0) Fácil de escalar os caracteres de maneira crescente ou decrescente 88
Thin Clients Dilema: centralizado x descentralizado Centralizado Fácil manutenção Backups automatizados Compartilhamento de recursos Tendência para a descentralização Idéia e retirar sofware do cliente THINC (Universidade de Columbia) 89
Gerenciamento de energia Busca por menor consumo Ambiental Durabilidade de baterias SO desempenha um importante papel no gerenciamento de energia. Duas estratégias para reduzir o consumo: Desligar partes que não estejam sendo utilizadas. Aplicativo usar menos energia.
Gerenciamento de energia Questões de hardware Baterias são de dois tipos: Descartáveis Recarregáveis Diversos estados: Ligado Dormindo Hibernado Desligado Maiores consumos Tela de vídeo Disco rígido CPU
Gerenciamento de energia Questões do sistema operacional Deve determinar quando desligar ou não um dispositivo O monitor de vídeo Maior vilão Constante iluminação da tela. O disco rígido Alta rotação = consumo muita energia Maioria dos SO s são conservadores e só param o disco após vários minutos de inatividade. Cache do disco em RAM não precisa reinicializar Manter os programas em execução informados sobre o estado do disco.
CPU Pode ser gerenciada para economizar energia. Software coloca a CPU para dormir reduzindo custo de energia. Existe um relacionamento entre voltagem da CPU, ciclo do relógio e o uso de energia. Velocidade/2 = ¾ de economia de energia
Memória Duas opções para economizar energia. Esvaziar a cache e desligá-la Carregada na memória principal sem qualquer perda. Escrever a RAM no disco e desligá-la Trata-se de uma hibernação tendo toda energia cortada da memória.
Comunicação Sem Fio Conexão sem fio Ligado = grande consumo Desligado = perda de mensagens Em 1998 foi criada solução eficiente por Kravets e Krishnan. A solução explora o fato de os computadores móveis se comunicam com estações-base fixas. O computador móvel envia uma mensagem quando estiver quase desligando o radio A partir disso, a estação base armazena temporariamente no disco. Quando o computador móvel liga ele avisa a estação base, que por sua vez envia as mensagens acumuladas.
Gerenciamento Térmico As CPUs modernas ficam quente devido as altas velocidades com que trabalham. Computadores de mesa possuem ventilador elétrico para mandar o ar quente para fora do gabinete. Com laptops é diferente. O Sistema Operacional deve fazer escolhas para reduzir o consumo de energia.
Gerenciamento de Bateria Laptops possuem baterias inteligentes comunicam com o SO. Informam voltagem máxima, voltagem atual, carga máxima, carga atual, taxa de descarga e etc. Possuem programas que podem mostrar todos esses parâmetros.
Interface do Driver O Windows tem um mecanismo para fazer o gerenciamento de energia. ACPI Advanced Configuration And Power interface. Envia comandos para os drivers instruindo a cortar seus níveis de energia.
Questões dos programas de aplicação Diz aos programas para gastar menos energia. Essa informação é passada adiante quando a carga da bateria esta abaixo de um certo limite. Para medir o uso da energia Flinn e Satyanarayanan criou um Software chamado PowerScope. Sua função e prover o uso da energia por meio de um programa.
Questões dos programas de aplicação Primeiro programa medido foi um reprodutor de vídeo. Segundo foi um reconhecedor de voz. Terceiro exemplo foi um programa de visualização de mapas. O quarto experimento foi realizado com a transmissão de imagens JPEG para um navegador de internet.
Exercícios 1. Quais são os elementos básicos de uma GUI 2. Cite 3 estratégias de hardware que o SO pode solicitar para reduzir o consumo de energia. 3. Cite 2 estratégias de software que o SO pode solicitar para reduzir o consumo de energia. 101