Como são os sistemas operacionais usados por naves em missões espaciais?

Por Daniele Cavalcante | 05 de Outubro de 2020 às 19h15
ESA/Medialab

Naves espaciais precisam de sistemas operacionais bastante precisos para trabalhar em tempo real e evitar que as missões fracassem por causa de algum acidente. Esses sistemas precisam executar tarefas dentro de prazos muito rigorosos, ou simplesmente falham. Não podem demorar em nenhum processo como acontece às vezes no Windows, por exemplo, quando temos muitos processos simultâneos que acabam exigindo demais do processador e atrasando alguns segundos — ou até mesmo minutos.

No espaço, onde um atraso de 30 segundos pode significar a perda trágica de uma espaçonave, o software precisa responder a comandos enviados pelo controle da missão na Terra em um prazo curtíssimo. Por isso, esses sistemas operacionais consideram apenas o comando imediatamente executado ou fracassado. Afinal, não faz sentido continuar tentando processar uma tarefa se a nave já se transformou em poeira ao colidir com um asteroide, por exemplo.

Para lidar com prazos assim, as naves são quase sempre operadas com sistemas operacionais que funcionam de uma maneira totalmente diferente dos sistemas computacionais que nós conhecemos. Nós podemos esperar um pouquinho por uma execução de tarefa sem perder muito mais do que a paciência; a espaçonave não. Por exemplo, a Solar Orbiter, da ESA, que vai se aproximar tanto do Sol que ficará mais perto da estrela do que o planeta Mercúrio: ela não pode errar os cálculos de voo, ou será completamente torrada pelas chamas dessa caldeira de fusão nuclear.

Conceito da sonda Solar Orbiter a caminho do Sol (Imagem: Reprodução/ESA/ATG)

A Solar Orbiter é equipada por um escudo, mas ele protegerá a nave apenas na parte da frente, que ficará sempre apontada diretamente para o Sol. As laterais e traseira não estão exatamente bem protegidos por esse escudo, então será preciso executar algumas manobras para impedir que essas partes fiquem expostas aos raios solares. Então, a ESA desenvolveu um sistema operacional em tempo real (RTOS) para a sonda, determinado ao software que o desvio máximo permitido é de apenas 6,5 graus.

Qualquer desvio superior a este será aceitável apenas por um breve período, e se algum perigo for detectado, a nave — ou melhor, o software — terá apenas 50 segundos para reagir. Por isso, se houver algum problema com o sistema operacional, ele deverá ser reiniciado remotamente, a milhares de quilômetros de distância, e voltar a funcionar normalmente em apenas 50 segundos.

Não é apenas a Solar Orbiter que precisa de sistemas tão precisos e rápidos na execução de dados em tempo real. Podemos citar muitos outros casos, como a nave BepiColombo, que está viajando rumo a Mercúrio, mas realizará em breve um sobrevoo em Vênus para pegar impulso com a força gravitacional do planeta. As manobras devem ser muito precisas e bem executadas no tempo exato para que um erro não leve a nave para fora da órbita ou, pior ainda, para dentro da atmosfera venusiana.

O primeiro software desse tipo veio apenas depois da era Apollo. Antes disso, nas missões à Lua, a NASA usava sistemas operacionais personalizados para cada viagem. A solução veio da empresa WindRiver, que, em 1987, criou um sistema comercial em tempo real totalmente operacional chamado VxWorks. Não foi o primeiro da categoria, mas ganhou rapidamente a preferência da NASA, que o utilizou em muitas missões.

Infelizmente, este sistema operacional ainda não era tão maduro como os de hoje em dia, e apresentou um bug em partes profundamente internas de sua arquitetura, causando um problema na Mars Pathfinder. Logo após o pouso da sonda em Marte, o sistema da nave começou a reiniciar sem motivo aparente, atrasando a transmissão dos dados para a Terra e deixando os cientistas da NASA ansiosos para receber as informações coletadas pela sonda. Demorou três semanas para encontrar o problema e 18 horas para corrigi-lo. Ainda bem que isso só ocorreu quando a nave já estava segura na superfície de Marte!

Conceito da BepiColombo, que segue viagem rumo a Mercúrio (Imagem: Reprodução/ESA)

Mas como os sistemas espaciais de hoje são tão precisos? Bem, nesses softwares, o tempo do relógio é dividido em tiques, e cada tarefa será executada dentro de um número de ticks pré-determinado. Por exemplo, o upload de dados coletados pelos sensores pode levar três ticks, enquanto outros quatro ticks são dedicados a dar ignição nos motores para realizar alguma manobra, e por aí vai. Além disso, o sistema trabalha de acordo com as prioridades: se algum comando de alta prioridade for enviado, ele vai ser executado antes dos comandos de prioridade mais baixa que porventura já estiverem na fila.

Por isso, os engenheiros sabem exatamente quando cada comando vai acontecer, e nenhum atraso em quantidades de ticks na execução pode ser aceitável. Em outras palavras, o software espacial, ao contrário dos sistemas comuns, são altamente previsíveis, pois tudo ali é pré-determinado e medido com precisão ao nível de milissegundos.

Fonte: ArsTechnica

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.