400 likes | 542 Views
Acidentes em Missões a Marte. Adriano Raposo Junho 2004. Sistemas Distribuídos e Tolerância a Falhas. Agenda. Mars Climate Orbiter Mars Polar Lander Mars Rover Pathfinder Mars Rover Spirit. Agenda. Mars Climate Orbiter Mars Polar Lander Mars Rover Pathfinder Mars Rover Spirit.
E N D
Acidentes em Missões a Marte Adriano Raposo Junho 2004 Sistemas Distribuídos e Tolerância a Falhas
Agenda • Mars Climate Orbiter • Mars Polar Lander • Mars Rover Pathfinder • Mars Rover Spirit Acidentes em Missões a Marte
Agenda • Mars Climate Orbiter • Mars Polar Lander • Mars Rover Pathfinder • Mars Rover Spirit Acidentes em Missões a Marte
Mars Climate Orbiter • Primeiro Satélite Meteorológico Interplanetário • Projecto Mars Surveyor ‘98 • Comunicações com Mars Polar Lander Acidentes em Missões a Marte
Mars Climate Orbiter • Lançado em Dezembro de 1998 • Viagem interplanetária de 9 meses • Chegou a Marte a 23 de Setembro de 1999 • Objectivos Científicos: • Monitorizar o clima e as condições atmosféricas • Registar alterações na superfície Acidentes em Missões a Marte
Mars Climate Orbiter • Objectivos Científicos (cont.): • Determinar os perfis térmicos da atmosfera • Monitorizar a quantidade de vapor de água e de poeiras na atmosfera • Procurar evidências de alterações climáticas passadas Acidentes em Missões a Marte
Mars Climate Orbiter Acidentes em Missões a Marte
MCO: O que aconteceu? • Órbita inicial de 140 km de altitude • Incompreensível descida para 100 km de altitude • Onde estavam os erros de cálculo? Algum erro de trajectória ou de software tinha sido detectado demasiado tarde ou não tinha sido corrigido • Outras falhas no passado tinham sido corrigidas como, por exemplo, o espelho do Telescópio Espacial Hubble ou o problema no disco da sonda Galileo • Desta vez aconteceu o inevitável e o MCO desapareceu sem deixar rasto Acidentes em Missões a Marte
MCO: Qual foi a falha? • Não foi detectado um erro de transferência de informação entre a equipa da nave no Colorado e a equipa de navegação na Califórnia • “The problem here was not an error, it was a failure of NASA’s systems engineering, and the checks and balances in out process to detect the error.” (Dr. Edward Weiler, NASA) • O MCO foi destruído ao aproximar-se demasiado da atmosfera de Marte Acidentes em Missões a Marte
MCO: Qual foi a falha? • A altitude mínima de segurança eram cerca de 80 km, mas a nave desceu para cerca de 50 km • 80 km são aproximadamente 50 milhas • O erro foi provocado pela utilização de dois sistemas métricos distintos • Uma equipa usou medidas imperiais, ou seja, milhas; a outra usou o sistema métrico em km • A falta de capacidade para detectar e corrigir um erro simples teve implicações muito graves! Única foto tirada pelo MCO. A Terra vista de Marte. Acidentes em Missões a Marte
Agenda • Mars Climate Orbiter • Mars Polar Lander • Mars Rover Pathfinder • Mars Rover Spirit Acidentes em Missões a Marte
Mars Polar Lander • Lançado a 3 de Janeiro de 1999 • Chegou a Marte em Dezembro do mesmo ano • Deveria descer sobre o pólo sul de Marte • Seria a primeira máquina a explorar um ambiente polar de outro planeta Acidentes em Missões a Marte
Mars Polar Lander • Ao entrar na atmosfera de Marte deveria começar a redução de velocidade até “aterrar” algures no pólo sul de Marte • A sua missão seria procurar vestígios de gelo à superfície do planeta ou de mudanças climatéricas • A actividade de investigação do MPL no solo deveria durar, no máximo, 90 dias Acidentes em Missões a Marte
Mars Polar Lander Acidentes em Missões a Marte
MPL: O que aconteceu? • A 3 de Dezembro de 1999 a MPL atravessava a atmosfera de Marte e preparava-se para uma suave aterragem algures no pólo sul de Marte. • A prova de que tinha aterrado em segurança seria dada por uma comunicação rádio com a Terra. • Essa comunicação nunca aconteceu. • A MPL transportava outros dispositivos como o Deep Space 2 que seria ejectado na atmosfera do planeta. Também esses nunca responderam às tentativas de comunicação. • Seguiram-se meses de tentativas de comunicação com a MPL. Finalmente, a NASA declarou o fracasso da missão. Acidentes em Missões a Marte
MPL: Qual foi a falha? • Depois de intensos estudos a NASA divulgou a “causa mais provável” para a perda da MPL. • Durante a descida, aquando da abertura das pernas da MPL, terá sido originado um sinal que chegou aos dispositivos que controlavam os motores na nave. • Estes foram desligados ao pensar que a MPL já estava no solo. Acidentes em Missões a Marte
MPL: Qual foi a falha? • A nave estava em queda livre a grande altitude e terá acabado por destruir-se ao embater violentamente no solo a 80 km/h. • A MPL não estava preparada para informar a Terra da sua situação passo-a-passo no momento da aproximação ao solo! • Sem dados da descida e da telemetria da aterragem, era praticamente impossível determinar o momento exacto da mesma. Acidentes em Missões a Marte
Agenda • Mars Climate Orbiter • Mars Polar Lander • Mars Rover Pathfinder • Mars Rover Spirit Acidentes em Missões a Marte
Pathfinder Lander Acidentes em Missões a Marte
Pathfinder • Chegou a Marte a 4 de Julho de 1997 • Aterragem pouco ortodoxa tipo queda livre rodeado de airbags • Transportava o Mars Sojourner Rover • Envio de enormes quantidades de dados para a Terra incluídos muitas imagens panorâmicas que fizeram imenso sucesso na web Sojourner Rover Acidentes em Missões a Marte
Pathfinder: O que aconteceu? • Alguns dias depois do início da missão, pouco depois da Pathfinder começar a reunir dados meteorológicos, a nave começou a fazer resets totais ao sistema, resultando na perda de dados. • A imprensa disse então que estas falhas eram problemas de software e que o computador estava a tentar fazer demasiadas coisas ao mesmo tempo. Acidentes em Missões a Marte
Pathfinder: Qual foi a falha? • A Pathfinder possuia um kernel VxWorks - sistema embutido de tempo-real desenvolvido pela Wind River Systems. • O VxWorks fornece um escalonamento preemptivo das threads. • As tarefas da Pathfinder eram executadas como threads com prioridades atribuídas de forma normal reflectindo a sua urgência relativa. Acidentes em Missões a Marte
Pathfinder: Qual foi a falha? • A Pathfinder possuia um bus de informação usado como memória partilhada entre distintos componentes da nave. • Uma tarefa de gestão desse bus executava frequentemente com alta prioridade. • O acesso ao bus era sincronizado com uma mecanismo de exclusão mútua (mutexes). • A recolha dos dados meteorológicos era executada numa thread com baixa prioridade. E adquiria o lock do bus para publicação dos dados. Acidentes em Missões a Marte
Pathfinder: Qual foi a falha? • Se uma interrupção fizesse com que a thread do bus fosse escalonada enquanto o mutex estava fechado e ao mesmo tempo a thread do bus tentasse adquirir o mesmo mutex para obter os dados publicados, ficaria bloqueada no mutex, à espera que a thread meteorológica libertasse o mutex. • Além disso, a nave também continha uma tarefa de comunicações que executava com prioridade média. Acidentes em Missões a Marte
Pathfinder: Qual foi a falha? • Na maioria dos casos esta combinação funcionava bem. • Mas podia acontecer ocorrer uma interrupção que fizesse a thread de prioridade média ser escalonada no intervalo de tempo em que a thread de alta prioridade estava bloqueada à espera da thread de baixa prioridade. • Neste caso a thread de comunicações (demorada) como tinha maior prioridade que a thread meteorológica, ia impedi-la de ser escalonada e, consequente a thread do bus ficava bloqueada e nunca conseguia executar. • O sistema detectava que a thread do bus não era executada à demasiado tempo e fazia um reset total. • Caso clássico de inversão de prioridades! Acidentes em Missões a Marte
Pathfinder: Inversão de Prioridades SC secção crítica P1 RESET P2 P3 SC tempo Acidentes em Missões a Marte
Pathfinder: Como foi detectada a falha? • VxWorks pode ser executado num modo que permite monitorizar todos os eventos do sistema, incluindo objectos sincronizados e interrupções. • Os engenheiros do JPL passaram horas a executar o sistema numa réplica da Pathfinder para tentarem reproduzir as condições exactas em que aconteceu a falha. • De madrugada, quando já só estava um engenheiro no laboratório, este conseguiu finalmente reproduzir o erro. • A análise da monitorização revelou a inversão de prioridades. Acidentes em Missões a Marte
Pathfinder:Como foi corrigido o problema? • Cada mutex do VxWorks tem um parâmetro booleano que indica se deve usar herança de prioridades. • O mutex em causa foi inicializado com esse parâmetro OFF • Se fosse ON a thread de mais baixa prioridade (meteorológica) teria herdado a prioridade da tarefa de alta prioridade (bus) que estava bloqueada por ela, fazendo com que fosse escalonada à frente da tarefa de prioridade média (comunicações). • Usando um mecanismo de herança de prioridades o JPL conseguiu resolver o problema de inversão de prioridades! Acidentes em Missões a Marte
Pathfinder:Como foi corrigido o problema? • O VxWorks contém um interpretador de C para funções de depuramento. • Os engenheiros do JPL casualmente decidiram deixar esta funcionalidade activa. • Por convenção, os parâmetros dos mutexes em questão estavam armazenados em variáveis globais acessíveis ao interpretador de C. • Adicionou-se à nave um pequeno programa em C que, depois de interpretado, alterou os valores dessas variáveis de FALSE para TRUE. • Não ocorreram mais resets do sistema! Acidentes em Missões a Marte
Pathfinder: Herança de Prioridades SC secção crítica P1 SC P2 P3 SC SC prioridade 1 tempo Acidentes em Missões a Marte
Agenda • Mars Climate Orbiter • Mars Polar Lander • Mars Rover Pathfinder • Mars Rover Spirit Acidentes em Missões a Marte
Spirit • MER-A (Spirit) foi a primeira de duas missões de exploração de Marte • A outra missão era a MER-B (Opportunity) • Chegou a Marte a 3 de Janeiro de 2004 • Fotografias panorâmicas do planeta Acidentes em Missões a Marte
Spirit: O que aconteceu? • A 21 de Janeiro, a Spirit interrompeu repentinamente as comunicações com o controlo da missão. • No dia seguinte transmitiu via rádio um beep de 7.8 bps a indicar que recebia as tentativas de comunicação da Terra mas que estava num estado de falha. • Era uma anomalia grave mas eventualmente podia ser corrigida se fosse uma falha de software ou de memória. • Dia 23 de Janeiro, a pedido dos controladores na Terra, a Spirit enviou a uma baixa taxa várias mensagens e finalmente transmitiu 73 megabits via Xband para a Mars Odyssey. Acidentes em Missões a Marte
Spirit: O que aconteceu? • Esta situação parecia sugerir que o problema se encontrava na antena de alto ganho. • O processador também tinha entrado numa série de ciclos de reset dos quais acordava e reiniciava o software de voo escondendo a causa que tinha provocado o reset. • Estes resets não eram imediatos, aconteciam com um intervalo de cerca de uma hora. • O sistema de diagnóstico não conseguia determinar se a causa era sempre a mesma. Acidentes em Missões a Marte
Spirit: Qual a falha? • A 24 de Janeiro a equipa de reparação da nave anunciou que o problema estava na memória flash e no software que a utilizava. • A Spirit foi posta num modo em que usava apenas a memória RAM em vez da memória flash. • A Spirit passou a obedecer aos comandos de comunicação e às ordens passagem ao estado “sleep” e comunicou sem problemas a 120 bps durante cerca de uma hora. Acidentes em Missões a Marte
Spirit: Como foi corrigido? • Surgiu a hipótese de que a memória flash estaria a funcionar e que o problema estaria de facto na falta de robustez do software responsável pela sua gestão. • Tudo indicava que o problema seria um bug no software e não uma falha de hardware. • Inicialmente pensou-se que era um problema grave. Finalmente, chegou-se à conclusão que o problema era a existência de demasiados ficheiros armazenados, o que constituía um problema menor. • Muitos ficheiros continham dados de voo desnecessários. Esses ficheiros foram apagados e repôs-se a formatação original da memória flash. Acidentes em Missões a Marte
Spirit: Jukebox! • Entretanto a NASA cortou relações com a Microsoft invocando “diferenças irreconciliáveis”. • A NASA pensava que o Windows XP Mars Edition estava terminado e testado. • A Microsoft respondeu que um sistema operativo nunca está terminado. • Aparentemente o problema estava nas camadas do software de mais baixo nível, que deveriam reger-se por princípios binários. Acidentes em Missões a Marte
Spirit: Jukebox! • Quando os engenheiros da NASA tentaram alterar algumas sub rotinas, o processador do Spirit ignorou todos os princípios binários e substituiu-os pelo single de 1981 “867-5309 (Jenny)” de Tommy Tutone! • A Microsoft afirmou que quando alguém compra um SO é normal que vá fazendo as actualizações respectivas. • Como a Spirit não tinha uma ligação de cabo ou ADSL só iria conseguir fazer o download de todos os patches no ano 5872! • “Ain’t our fault NASA doesn’t use broadband.” O’ Donaugh (Microsoft) Acidentes em Missões a Marte
Referências • http://www.iki.rssi.ru/jplmirror/mars/msp98/news/mco990930.html • http://catless.ncl.ac.uk/Risks/20.60.html • http://www.seds.org/%7Espider/spider/Mars/ms98mco.html • http://en.wikipedia.org/wiki/Mars_Climate_Orbiter • http://www.space.com/missionlaunches/mars_polar_lander_031222.html • http://catless.ncl.ac.uk/Risks/19.49.html • http://www.augustachronicle.com/stories/071497/tech_pathfinder.html • http://www.space.com/missionlaunches/spirit_update_040206.html • http://en.wikipedia.org/wiki/MER-A • http://www.noapologiespress.com/newnews/spiritshutdown.html • http://arstechnica.com/news/posts/1074978528.html • http://www.spaceflightnow.com/mars/mera/040123recovery.html • http://spaceflightnow.com/mars/mera/040126spirit.html • http://www.space.com/missionlaunches/spirit_serious_040124.html • Sha, L., Rajkumar, R., Lehoczky, J., Priority Inheritance Protocols: An Approach to Real-Time Synchronization, IEEE 1990 Acidentes em Missões a Marte