acidentes em missões a marte sistemas distribuídos e tolerância a falhas adriano raposo junho...
Post on 18-Apr-2015
107 Views
Preview:
TRANSCRIPT
Acidentes em Missões a MarteSistemas Distribuídos e Tolerância a Falhas
Adriano RaposoJunho 2004
Adriano Raposo Acidentes em Missões a Marte 2
Agenda
Mars Climate Orbiter
Mars Polar Lander
Mars Rover Pathfinder
Mars Rover Spirit
Adriano Raposo Acidentes em Missões a Marte 3
Agenda
Mars Climate Orbiter
Mars Polar Lander
Mars Rover Pathfinder
Mars Rover Spirit
Adriano Raposo Acidentes em Missões a Marte 4
Mars Climate Orbiter
Primeiro Satélite Meteorológico Interplanetário
Projecto Mars Surveyor ‘98
Comunicações com Mars Polar Lander
Adriano Raposo Acidentes em Missões a Marte 5
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
Adriano Raposo Acidentes em Missões a Marte 6
Mars Climate Orbiter
Objectivos Científicos (cont.):Determinar os perfis térmicos da
atmosferaMonitorizar a quantidade de vapor de
água e de poeiras na atmosferaProcurar evidências de alterações
climáticas passadas
Adriano Raposo Acidentes em Missões a Marte 7
Mars Climate Orbiter
Adriano Raposo Acidentes em Missões a Marte 8
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
Adriano Raposo Acidentes em Missões a Marte 9
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
Adriano Raposo Acidentes em Missões a Marte 10
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 fototirada peloMCO. A Terra vista de Marte.
Adriano Raposo Acidentes em Missões a Marte 11
Agenda
Mars Climate Orbiter
Mars Polar Lander
Mars Rover Pathfinder
Mars Rover Spirit
Adriano Raposo Acidentes em Missões a Marte 12
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
Adriano Raposo Acidentes em Missões a Marte 13
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
Adriano Raposo Acidentes em Missões a Marte 14
Mars Polar Lander
Adriano Raposo Acidentes em Missões a Marte 15
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.
Adriano Raposo Acidentes em Missões a Marte 16
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.
Adriano Raposo Acidentes em Missões a Marte 17
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.
Adriano Raposo Acidentes em Missões a Marte 18
Agenda
Mars Climate Orbiter
Mars Polar Lander
Mars Rover Pathfinder
Mars Rover Spirit
Adriano Raposo Acidentes em Missões a Marte 19
Pathfinder Lander
Adriano Raposo Acidentes em Missões a Marte 20
Pathfinder
Sojourner Rover
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
Adriano Raposo Acidentes em Missões a Marte 21
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.
Adriano Raposo Acidentes em Missões a Marte 22
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.
Adriano Raposo Acidentes em Missões a Marte 23
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.
Adriano Raposo Acidentes em Missões a Marte 24
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.
Adriano Raposo Acidentes em Missões a Marte 25
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!
Adriano Raposo Acidentes em Missões a Marte 26
Pathfinder: Inversão de Prioridades
P1
P2
P3
tempo
SC secção crítica
SC
RESET
Adriano Raposo Acidentes em Missões a Marte 27
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.
Adriano Raposo Acidentes em Missões a Marte 28
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!
Adriano Raposo Acidentes em Missões a Marte 29
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!
Adriano Raposo Acidentes em Missões a Marte 30
Pathfinder: Herança de Prioridades
P1
P2
P3
tempo
SC secção crítica
SC SC
SC
prioridade 1
Adriano Raposo Acidentes em Missões a Marte 31
Agenda
Mars Climate Orbiter
Mars Polar Lander
Mars Rover Pathfinder
Mars Rover Spirit
Adriano Raposo Acidentes em Missões a Marte 32
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
Adriano Raposo Acidentes em Missões a Marte 33
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.
Adriano Raposo Acidentes em Missões a Marte 34
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.
Adriano Raposo Acidentes em Missões a Marte 35
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.
Adriano Raposo Acidentes em Missões a Marte 36
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.
Adriano Raposo Acidentes em Missões a Marte 37
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.
Adriano Raposo Acidentes em Missões a Marte 38
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)
Adriano Raposo Acidentes em Missões a Marte 39
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
Fim.
top related