O GLOBO - Informática Etc. -
Carlos Alberto Teixeira
Artigo:
326
- Escrito em:
1997-11-18
-
Publicado em:
1997-11-24
A joelhada fatal
Em 1981, durante uma missão do ônibus espacial americano, a equipe de terra resolveu rodar uma simulação por computador chamada "aborto transatlântico". O enredo envolveria uma falha grave nos sistemas, forçando a interrupção da missão logo após o lançamento. Os tanques de combustível seriam esvaziados e seria feito um pouso de emergência na Espanha. Executaram o programa nas máquinas de Houston e lá pelas tantas os computadores do centro de controle simplesmente travaram. Foi o maior rebuliço.
Por sorte era apenas uma simulação, mas se fosse para valer, o Shuttle teria dificuldades em aterrisar. A situação em questão só poderia acontecer sob condições físicas e atmosféricas muito específicas e improváveis, mas lá estava ela. As máquinas pararam mesmo e para encontrar o problema os caras tiveram que rebolar.
A causa do problema foi uma estrutura lógica no software, uma instrução conhecida como "GOTO computado" (go to = desvie para). No programa, escrito em Assembler, dependendo do valor de um contador interno, o fluxo de execução desviava-se para um certo endereço bem conhecido. Por uma falha de inicialização do tal contador, seu valor numérico tornava-se alto demais, a cada vez que a execução repassava por aquele ponto. Por azar, os quatro computadores executaram a instrução errônea quase ao mesmo tempo, e assim as CPUs apontaram para endereços completamente doidos no código, totalmente fora da lógica do algoritmo original. Conheça em detalhes a história no endereço <www.rvs.uni-bielefeld.de/~ladkin/Incidents/shuttle.html>.
Esse episódio deveria ter servido para chamar a atenção da indústria para os perigos de bugs em sistemas de segurança, ou seja, qualquer sistema em que um erro possa colocar vidas em risco. Mas parece que o pessoal não aprende. Uma companhia de aviação americana chamada Avidyne certificou um sistema de bordo baseado em Windows NT. Sabemos que um chip Pentium ou Pentium MMX pode ser travado em qualquer modo de execução com a fatídica instrução F0 0F C7 C8, em hexa. Se o hardware da Avidyne, fornecido pela empresa Electronic Design, for baseado num Pentium, então eu não gostaria de estar num vôo controlado por essa engenhoca. É bem verdade que se trata de um bug estático no chip. Já existem até programas que varrem código de máquina à procura da seqüência fatal. Mas será que obrigarão os fornecedores do software a rodarem esses bacalhaus no código, por precaução? Acho difícil. Mesmo assim, isso não garantiria que o software estaria protegido, pois o tal procedimento nada pode fazer contra programas que gerem dinamicamente a instrução de travamento.
E nem precisamos ir tão longe. Basta que você leia os "disclaimers" do Windows NT e depois me conte se dá para ter tranqüilidade numa aeronave com esse hardware da Electronic Design.
Num país não muito longe daqui, o departamento de reparos de uma famosa empresa fabricante de computadores começou a receber máquinas apresentando o mesmo problema. Os computadores problemáticos eram sempre notebooks que apareciam ostentando uma rachadura bem no meio da tela de cristal líquido. A empresa, sempre preocupada com a qualidade de seus produtos e com seu renome no mercado mundial, começou a desconfiar que havia algum erro no projeto do equipamento. Alguma falha estrutural no empacotamento metálico da tela do notebook, pensavam. E puseram-se a pesquisar com afinco as causas do defeito que cada vez se tornava mais comum.
Um dos rapazes do suporte, no entanto, pensou em investigar o outro lado da corrente: os usuários. Traçou um perfil dos donos dos notebooks que apresentaram o problema do display rachado. Depois de alguns dias o engenheiro foi promovido pois havia matado a charada. Todos os donos dos notebooks eram corretores de seguros, uns camaradas bem almofadinhas, especialmente sendo gente daquele país. Terninhos impecáveis, cabelos bem penteados e cangotes perfumados. Todos trabalhavam muito com seguros de automóveis, o que forçava que efetuassem com freqüência pequenas vistorias no fundo dos veículos. Janotas de primeira categoria, compareciam ao local munidos de relógio de griffe, pager, celular e, naturalmente, um pequeno e sofisticado notebook, para deixar bem claro seu status e a casta a que pertenciam. Mas na hora do vamuvê, tinham que colocar o joelhinho no chão para dar aquela olhadela clínica por baixo do carro. E para não sujar a calça, colocavam docilmente o notebook no chão e apoiavam o joelho no pobrezinho.
[ Voltar ]