Logotipo do Site Inovação Tecnológica





Informática

Linguagem de programação para computadores com energia intermitente

Redação do Site Inovação Tecnológica - 31/10/2016

<i>Chain</i>: Linguagem de programação para Internet das Coisas
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.

<i>Chain</i>: Linguagem de programação para Internet das Coisas
Cada instrução do programa (task) é independente e mantém seu próprio conjunto de dados sempre que 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:

Artigo: Chain: Tasks and Channels for Reliable Intermittent Programs
Autores: Alexei Colin, Brandon Lucia
Revista: SPLASH 2016 OOPSLA Proceedings
Vol.: To be published
Seguir Site Inovação Tecnológica no Google Notícias





Outras notícias sobre:
  • Software e Programação
  • Software Livre
  • Satélites Artificiais
  • Sensores

Mais tópicos