Pesquisar

24 de jul de 2009

Poder computacional da Apolo 11 versus IBM PC versão 1.0

Uma das máquinas mais famosas de todos os tempos é o computador digital de navegação AGC (Apollo’s Guidance Computer) do projeto Apolo 11. Graças a esta mimosa velharia informática pré-histórica concebida ao longo dos anos 60, o homem colocou os pés na Lua e fez história.

Contudo, atualmente há uma dificuldade ímpar de compará-lo com o que há hoje. Se fôssemos nos atrever a confrontá-lo com um iPhone, não teria sentido porque o abismo entre eles é tanto, que é como se tivessem sido fabricados em planetas diferentes.

Para podermos usar um padrão mais viável de comparação, temos que pegar algo mais contemporâneo ao AGC, talvez o IBM PC versão 1.0 lançado em 1981. Porém, uma década mais tarde, a diferença entre um microcomputador doméstico e o antigo computador espacial se tornou gritante: o PC tinha 8 vezes mais memória RAM do que o AGC.
AGC = 2 Kbytes XT= 16 Kbytes.

O PC nasceu com um processador Intel 8088 de 16 bits com a “bruta” velocidade de 4,77 MHz. O computador da Apolo era de 16 bits e operava com clock de 1 MHz. Nenhum dos dois tinha disco rígido, porque isto só surgiu em 1983 no microcomputador IBM modelo PC XT.

Software multitarefa em tempo real.
O sistema operacional trabalhava em realtime e tinha capacidade para processar 8 tarefas simultaneamente de maneira não preemptiva. Isto era uma novidade tecnológica absolutamente inédita naqueles tempos! Porém, havia um detalhe, naquela época ainda não tinha sido inventada a hierarquia de priorização de processos (processamento multitarefa preemptivo), ou seja, uma vez iniciada uma tarefa, mesmo que ela tivesse menor importância e pudesse ser processada mais demoradamente, o processador não tinha condições de rebaixar a velocidade do seu processamento, ou suspendê-la temporariamente.

Por causa desta limitação, durante o sobrevôo do módulo na Lua em direção ao pouso, o computador exibiu vários alarmes com o código “1201”, o que significava de estouro de buffer no computador AGC devido ao excesso de processos que a sua extremamente limitada capacidade computacional não tinha condições de processar.

A razão dos erros era muito simples, para garantir um pouso perfeito os responsáveis pela missão resolveram dirigir simultaneamente ao computador as informações das antenas dos três radares, duas normais de navegação e a de pouso. O imprevisto aconteceu porque esta situação nunca havia sido simulada na maquete da capsula instalada no centro de treinamento em Houston. O erro do AGC, não obstante ele não ter deixado de processar nenhuma informação, foi ter delongado o processamento, já que os dados que chegavam foram ficando na fila, o que gerou um atraso na entrada dos pontos captados pelo radar na superfície e o consequente avanço em relação ao alvo inicialmente previsto para a alunissagem.

Neil Armostrong e Buzz Aldrin foram obrigados a assumir o controle manual, só assim conseguiram manobrar o módulo lunar para um local propício de pouso. Se eles tivessem deixado as operações por conta do computador, teriam ido para a morte certa, direto para dentro da cratera de um vulcão, atulhada de pedras e relevo irregular.

Por incrível que pareça e com toda esta precariedade tecnológica no final da década de 60, por pouco a primeira tentativa da humanidade de pousar em solo extraterrestre não acaba se espatifando nas pedras devido à problemas de automatismo. Isto não lembra um certo vôo 447 que entrou voando mar adentro, uma tragédia talvez tivesse sido evitada se o Airbus A330 dispusesse de modo de vôo completamente manual?

Referências:
O computador mais antigo do mundo ainda operando, não está mais neste mundo [Blogpaedia]
Por que o Mainframe do Ônibus Espacial americano é um infame computador IBM-PC com apenas 1 megabyte de memória RAM? [Blogpaedia]
How powerful was the Apollo 11 computer? [DownloadSquad]
Build Your Own NASA Apollo Landing Computer (no kidding) [Galaxiki]
IBM PC [Guia do Hardware]
IBM PC [Wikipedia]

6 comentários:

  1. 8088=8bits e não 16

    ResponderExcluir
  2. Na real o 8088 tinha arquitetura interna de 16 bits e funcionava com barramento (BUS) externo de 8 bits. Por isto há uma certa confusão quanto a este processador. Diferentemente do 8086, que era mais caro e funcionava à base de 16 bits internamente e interface.
    Todavia, graças ao barramento de 8 bits do PC, surgiram os clones compatíveis que popularizaram a microcomputação. Ou seja, uma idéia barateadora da IBM salvou o futuro, nosso presente.
    http://pt.wikipedia.org/wiki/Intel_8088

    ResponderExcluir
  3. O A330 possui sim um vôo com total controle manual. Embora os computadores monitorem a avisem ao piloto que ele está ultrapassando os limites, há uma total autoridade do piloto sobre os comandos. A isto se chama de "abnormal configuration law". Resumidamente é isto.
    A tragédia do vôo AF447 não foi resultado de um único fato isolado, mas de uma sequência de eventos que levaram a uma situação anormal muito crítica.

    ResponderExcluir
  4. Esta questão do controle totalmente manual dos Airbus é absolutamente controversa por uma razão: até que medida os fabricantes atuais computadorizaram suas aeronaves visando reduzir custos com treinamento de pilotos? A verdade tem que ser dita, quanto mais um avião voa sozinho, as companhias podem contratar "ascensoristas aéreos" à vontade.

    ResponderExcluir
  5. Rodrigo L F17/03/2010 16:33

    Mesmo em modo manual um a330 depende dos computadores para interpretar os comandos do piloto. Acha que a Boeing não põe isso em seus aviões porque não tem grana pra pesquisa ou pq são atrasados tecnologicamente?

    ResponderExcluir
  6. Tudo depende do quanto as companhias aéreas, clientes dos fabricantes de aviões, estão dispostas a dispender com treinamento de pilotos. Quanto menos eletrônica embarcada, maior capacitação é exigida e maior tempo de treinamento. Aparentemente, as companhias tendem a optar por aeronaves inteligentes e tripulação burra.

    ResponderExcluir