Redação do Site Inovação Tecnológica - 31/10/2016
Execução intermitente
Com a Internet das Coisas, está emergindo uma nova classe de sistemas de coleta e processamento de dados que inclui dispositivos pequenos demais para contar com baterias e que não podem depender de fios. Para funcionar, esses aparelhos usam a chamada colheita de energia, capturando a eletricidade que precisam do próprio ambiente.
O problema é que, para que esses aparelhos possam se tornar mais complexos e mais funcionais, eles precisam de sistemas de software que são radicalmente diferentes daqueles que rodam nos computadores e celulares. Por exemplo, se você tira o computador da tomada ou a bateria do celular, eles param de funcionar imediatamente.
Ocorre que esta é a característica fundamental dos equipamentos autônomos, que precisem funcionar em tempo integral alimentados por fontes como vibrações do ambiente, calor, ondas de rádio ou mesmo energia eólica e solar, que não estão disponíveis de forma contínua.
Assim, eles exigirão a criação de sistemas operacionais e softwares capazes de "execução intermitente", parando quando a energia falta e retomando do mesmo ponto quando a energia é restabelecida.
Linguagem de programação para Internet das Coisas
Um passo importante nesse sentido acaba de ser dado por Alexei Colin e Brandon Lucia, da Universidade Carnegie Mellon, nos EUA, que criaram a primeira linguagem de programação projetada para gerar programas confiáveis para computadores intermitentes, que funcionem com base na colheita de energia.
A nova linguagem de programação, chamada Chain, força o programador a definir um conjunto de tarefas computacionais - instruções ou rotinas - que processem e troquem dados por meio de uma nova maneira de manipular a memória do computador, chamada de "canal". A linguagem Chain garante a execução correta e ordenada das tarefas em cada canal independentemente de falhas arbitrárias no fornecimento de energia.
"Quando a energia não está disponível de forma contínua, as falhas interrompem a execução do software, normalmente levando a erros irrecuperáveis. A Chain resolve este problema exigindo que as tarefas computacionais no programa usem uma nova abstração de memória baseada em 'canais' que garantem que as tarefas sejam completadas sem erros," disse Brandon.
Quando a energia é interrompida, os canais asseguram que cada instrução tenha sempre uma versão intacta dos dados de que precisa quando a energia retorna. Os dois pesquisadores afirmam que reiniciar um programa Chain após uma interrupção de energia tem custo praticamente zero porque o sistema não opera como os programas convencionais, que usam mecanismos como pontos de verificação de memória.
Softwares para o espaço
"O benefício potencial de sistemas de computador confiáveis baseados em colheita de energia é enorme," explicou Brandon.
"Pequenos satélites estão se proliferando e a própria indústria espacial está se expandindo. Se pudermos garantir que mesmo satélites minúsculos baseados na colheita de energia funcionem sem interrupção, poderemos tornar mais fácil realizar pesquisas científicas no espaço. Mais no futuro, podemos até pensar em aplicações como a descoberta de recursos naturais extraterrestres usando essa tecnologia," completou.