Linguagemde programacao para computadores com energia intermitenteRedacaodo Site Inovacao Tecnologica - 31/10/2016 Alem daInternet da Coisas, a linguagem Chain sera util em nanossatelites.[Imagem: Carnegie Mellon University Electrical and Computer Engineering]Execucao intermitenteCom a Internet das Coisas, esta emergindo uma novaclasse de sistemas de coleta e processamento de dados que inclui dispositivospequenos demais para contar com baterias e que nao podem depender de fios. Parafuncionar, esses aparelhos usam a chamada colheita de energia, capturando a eletricidadeque precisam do proprio ambiente.O problema e que, para que essesaparelhos possam se tornar mais complexos e mais funcionais, eles precisam desistemas de software que sao radicalmente diferentes daqueles que rodam noscomputadores e celulares. Por exemplo, se voce tira o computador da tomada ou abateria do celular, eles param de funcionar imediatamente.Ocorre que esta e acaracteristica fundamental dos equipamentos autonomos, que precisem funcionarem tempo integral alimentados por fontes como vibracoes do ambiente, calor,ondas de radio ou mesmo energia eolica e solar, que nao estao disponiveis deforma continua.Assim, eles exigirao a criacao desistemas operacionais e softwares capazes de "execucao intermitente",parando quando a energia falta e retomando do mesmo ponto quando a energia erestabelecida.Linguagem de programacao paraInternet das CoisasUm passo importante nesse sentidoacaba de ser dado por Alexei Colin e Brandon Lucia, da Universidade CarnegieMellon, nos EUA, que criaram a primeira linguagem de programacao projetada paragerar programas confiaveis para computadores intermitentes, que funcionem combase na colheita de energia. A nova linguagem de programacao,chamada Chain, forca o programador a definir um conjunto de tarefascomputacionais - instrucoes ou rotinas - que processem e troquem dados por meiode uma nova maneira de manipular a memoria do computador, chamada de"canal". A linguagem Chain garante a execucao correta eordenada das tarefas em cada canal independentemente de falhas arbitrarias nofornecimento de energia."Quando a energia nao estadisponivel de forma continua, as falhas interrompem a execucao do software,normalmente levando a erros irrecuperaveis. A Chain resolve esteproblema exigindo que as tarefas computacionais no programa usem uma novaabstracao de memoria baseada em 'canais' que garantem que as tarefas sejamcompletadas sem erros," disse Brandon.Quando a energia e interrompida,os canais asseguram que cada instrucao tenha sempre uma versao intacta dosdados de que precisa quando a energia retorna. Os dois pesquisadores afirmamque reiniciar um programa Chain apos uma interrupcao de energia temcusto praticamente zero porque o sistema nao opera como os programasconvencionais, que usam mecanismos como pontos de verificacao de memoria. As instrucoes do programa (tasks) nao seencadeiam diretamente umas as outras, fazendo-o por meio de canais, que mantemo conjunto de dados de cada uma mesmo quando o computador reinicia. [Imagem: AlexeiColin/Brandon Lucia]Softwares para o espaco"O beneficio potencial desistemas de computador confiaveis baseados em colheita de energia eenorme," explicou Brandon. "Pequenos satelites estao seproliferando e a propria industria espacial esta se expandindo. Se pudermosgarantir que mesmo satelites minusculos baseados na colheita de energiafuncionem sem interrupcao, poderemos tornar mais facil realizar pesquisascientificas no espaco. Mais no futuro, podemos ate pensar em aplicacoes como adescoberta de recursos naturais extraterrestres usando essa tecnologia,"completou.Bibliografia:Chain: Tasks and Channels for Reliable Intermittent ProgramsAlexei Colin, Brandon LuciaSPLASH 2016 OOPSLA ProceedingsVol.: To be published Eu to carente desse olhar que mataDessa boca