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
Chain: Tasks and Channels for Reliable Intermittent Programs
Alexei Colin, Brandon Lucia
SPLASH 2016 OOPSLA Proceedings
Vol.: To be published
0 Comentários