Meio Bit » Arquivo » Ciência » A nerdinha que salvou a Apollo 11

A nerdinha que salvou a Apollo 11

É um dos segredos bem-guardados da NASA, apesar de guardado à vista de todos: o pouso da Apollo 11 quase não aconteceu, uma condição crítica no computador de navegação quase abortou a missão. Quem salvou? Margaret Hamilton, uma nerdinha que entende mais de software do que todos nós juntos.

9 anos atrás

ops

Quando a Águia, o módulo de pouso estava a menos de 3 minutos de seu pouso histórico na Lua, algo deu errado, muito errado.

O computador de navegação acionou um alarme reportando erro. Algumas ordens de magnitude menos poderoso do que a CPU do seu microondas, não havia muito espaço para nada que não fosse estritamente necessário, e um módulo estava comendo 20% de CPU, em uma situação onde o sistema já estaria rodando a 85% da capacidade.

Steve Bales, Oficial de Orientação e Jack Garman, Especialista de Computação do controle da missão rapidamente comandaram um reset do alarme, achando que poderia ser algo aleatório. Armstrong e Aldrin assim fizeram, mas logo depois outro alarme surgiu. 

O grupo do MIT que programou as rotinas de pouso havia decidido utilizar o Radar de Subida e Rendezvous para rastrear o Módulo de Comando/Serviço. Isso já era feito pelo Abort Radar System, mas seria uma segurança extra caso algo desse errado. Mandaram os patches, os procedimentos, mas como foi uma mudança muito em cima, desistiram. Mandaram uma outra atualização para o radar do Módulo de Comando não ser acionado, mas esqueceram de enviar a alteração nos procedimentos. O botão que deveria ficar em MANUAL foi deixado em AUTO.

Com isso durante a descida o software tentava repetidamente ler dados do radar e calcular a posição do módulo. Como os dados não batiam (pois o radar não estava ligado), ele repetia e repetia o cálculo, consumindo mais e mais processamento, sobrecarregando os registradores e gerando os alarmes.

Em um computador comum teríamos uma falha catastrófica. As outras tarefas perderiam prioridade, pois a rotina do radar não devolveria o comando à CPU. Sem poder controlar orientação, propulsão, consumo de combustível e outros fatores, a Águia ficaria sem controle. O computador, travado em um loop seria destruído, junto com os astronautas na inevitável colisão, mas isso não aconteceu.

Ao contrário de sistemas operacionais mais simples, como o Windows 3.11, o computador da Apollo usava conceitos robustos.  Don Eyles, um garoto de 22 anos havia escrito algo revolucionário, saído das entranhas do MIT: um software com fixed-priority pre-emptive scheduling, a chamada multitarefa preemptiva com prioridades pré-definidas.

No DOS, Windows 3.11 e outros a multitarefa era cooperativa. Um programa era executado E, de tempos em tempos atendendo a uma interrupção de software retomava o controle ao sistema operacional, assim ele podia cuidar de outras coisas. Programas mal-educados não respeitavam isso, nem programas bugados.

O software de Don Eyles, aliado ao hardware implementava uma multitarefa onde não só cada rotina tinha um tempo máximo alocado, como as rotinas prioritárias tinham… prioridade. Assim se a CPU não está fazendo nada e sua rotina de radar bugada come 80% de CPU, azar, mas se a minha rotina de controle de pouso precisar de ciclos de máquina, ela vai ter, não importa o quanto ela grite e nem se um astronauta colocou o botão do radar em modo AUTO, acionando a rotina. A do radar vai rodar, pra ceder CPU para a minha.

O computador trabalhou no talo, mas o que era importante para o pouso tinha prioridade e processamento alocado. A arquitetura mega-power-robusta de Don Eyles salvou o dia. Só que o mérito mesmo é dessa nerdinha aqui:

Margaret_Hamilton

O nome dela é Margaret Hamilton. Formada em matemática em 1958, trabalhava no MIT como desenvolvedora de software. Na época Ciência da Computação e Engenharia de Software não existiam como cadeiras isoladas, na verdade nem existia o termo engenharia de software. Eram tempos pioneiros e você aprendia fazendo. E Margaret fazia muito bem.

Essa moça, que ficaria perfeitamente à vontade em uma convenção de Star Trek, cresceu nos rankings do MIT. E enquanto Don Draper dava tapinhas na bunda de mulheres na Sterling Cooper, Margaret comandava como diretora da Divisão de Engenharia de Software do Laboratório Charles Draper, do MIT.

Contratados pela NASA para desenvolver os softwares da Apollo, a equipe colocou em prática um monte de conceitos criados por Margaret Hamilton. Alguns sites dizem que ela escreveu os programas da Apollo. Não, crianças, ela foi muito além, ela criou os conceitos e a metodologia, a arquitetura e a modelagem.

Margaret_in_action_1

Entre outros conceitos criados ou implementados de forma pioneira por ela:

  • Software assíncrono
  • Priority Schedulling
  • human-in-the-loop
  • end-to-end testing
  • System Oriented Objects
  • Linguagens de modelagem
  • Desenvolvimento distribuído
  • Detecção e correção de erros em RTOS
  • Metodologias de teste e certificação
  • Automated life cycle environments

·  
Fora o problema com o radar nenhum outro bug ocorreu durante as missões Apollo, graças aos requisitos de desenvolvimento e metodologias de teste criadas por Margaret. lembre-se, isso foi bem antes de UML e outros frufrus.

Só ser a Projetista-Chefe do software de vôo do projeto Apollo e do SkyLab já seria um prêmio e tanto, mas em 2003 a NASA tirou o escorpião do bolso e em um gesto inédito, outorgou a Maragaret Hamilton o NASA Exceptional Space Act Award for scientific and technical contributions, com direito a um agrado de US$ 37.200,00. Foi a primeira e única vez que a NASA deu um prêmio em dinheiro a alguém.

78596561_o

Margaret Hamilton publicou mais de 130 papers na área de ciência da computação, cunhou o termo Engenharia de Software. Trabalhou em 60 projetos e 6 programas principais na NASA.

Hoje, aos 76 anos essa velhinha porreta é CEO da Hamilton Technologies, onde desenvolve as metodologias de Universal Systems Language — nesta não se trabalha com orientação a objetos ou modelos, mas sistemas e a Development Before the Fact, cujo princípio é simples: “não conserte, faça certo da primeira vez”.

O legado de Margaret Hamilton é imenso, cada vez que a Microsoft faz um teste beta com gente do mundo inteiro está usando o conceito de human-in-the-loop criado por ela. Incontáveis bugs são encontrados quando gente testa o software, além dos testes automáticos. Simples? Hoje pode ser, em 1965 não era.

Tudo que você usa hoje e tem alguma complexidade em termos de software tem o dedo dela, mas você não verá Margaret Hamilton em documentários cheios de foguetes e astronautas corajosos. Ela nunca apareceu nos filmes antigos, sequer estava no Controle da Missão. Ainda bem, naquela época o prédio nem tinha banheiro feminino.

Ela é uma mulher que se destacou em um campo quase 100% dominado por homens, em uma época onde ter órgãos reprodutivos internos era garantia de que não seria levada a sério. Se a Apollo foi um pequeno passo para um homem, foi um passo gigantesco para as mulheres em computação.

Pois se para alguns é fácil zoar as mulheres que queimaram sutiã, é muito mais complicado zoar uma que queimou um escudo ablativo de calor a 40 mil km/h reentrando na atmosfera terrestre, por pura expertise de seu software.

Leia também:

Leia mais sobre: , , , , .

relacionados


Comentários