Redes Sociais

domingo, 13 de novembro de 2016

Coisas que comunicam



Linguagem de programação para computadores com energia intermitente
Redação do Site Inovação Tecnológica -  31/10/2016









 Além da Internet da Coisas, a linguagem Chain será útil em nanossatélites. [Imagem: Carnegie Mellon University Electrical and Computer Engineering]




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. 

 As instruções do programa (tasks) não se encadeiam diretamente umas às outras, fazendo-o por meio de canais, que mantêm o conjunto de dados de cada uma mesmo quando o computador reinicia. [Imagem: Alexei Colin/Brandon Lucia]

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.

Bibliografia:

Chain: Tasks and Channels for Reliable Intermittent Programs
Alexei Colin, Brandon Lucia
SPLASH 2016 OOPSLA Proceedings
Vol.: To be published