Title: Acidentes em Miss
1Acidentes em Missões a Marte
Adriano Raposo Junho 2004
- Sistemas Distribuídos e Tolerância a Falhas
2Agenda
- Mars Climate Orbiter
- Mars Polar Lander
- Mars Rover Pathfinder
- Mars Rover Spirit
3Agenda
- Mars Climate Orbiter
- Mars Polar Lander
- Mars Rover Pathfinder
- Mars Rover Spirit
4Mars Climate Orbiter
- Primeiro Satélite Meteorológico Interplanetário
- Projecto Mars Surveyor 98
- Comunicações com Mars Polar Lander
5Mars 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
6Mars 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
7Mars Climate Orbiter
8MCO 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
9MCO 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 NASAs 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
10MCO 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.
11Agenda
- Mars Climate Orbiter
- Mars Polar Lander
- Mars Rover Pathfinder
- Mars Rover Spirit
12Mars 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
13Mars 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
14Mars Polar Lander
15MPL 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.
16MPL 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.
17MPL 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.
18Agenda
- Mars Climate Orbiter
- Mars Polar Lander
- Mars Rover Pathfinder
- Mars Rover Spirit
19Pathfinder Lander
20Pathfinder
- 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
21Pathfinder 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.
22Pathfinder 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.
23Pathfinder Qual foi a falha?
- A Pathfinder possuía 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.
24Pathfinder 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.
25Pathfinder 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!
26Pathfinder Inversão de Prioridades
SC
secção crítica
P1
RESET
P2
P3
SC
tempo
27Pathfinder 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.
28PathfinderComo 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!
29PathfinderComo 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!
30Pathfinder Herança de Prioridades
SC
secção crítica
P1
SC
P2
P3
SC
SC
prioridade 1
tempo
31Agenda
- Mars Climate Orbiter
- Mars Polar Lander
- Mars Rover Pathfinder
- Mars Rover Spirit
32Spirit
- 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
33Spirit 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.
34Spirit 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.
35Spirit 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.
36Spirit 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.
37Spirit 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.
38Spirit 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! - Arent our fault NASA doesnt use broadband. O
Donaugh (Microsoft)
39Referências
- http//www.iki.rssi.ru/jplmirror/mars/msp98/news/m
co990930.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_la
nder_031222.html - http//catless.ncl.ac.uk/Risks/19.49.html
- http//www.augustachronicle.com/stories/071497/tec
h_pathfinder.html - http//www.space.com/missionlaunches/spirit_update
_040206.html - http//en.wikipedia.org/wiki/MER-A
- http//www.noapologiespress.com/newnews/spiritshut
down.html - http//arstechnica.com/news/posts/1074978528.html
- http//www.spaceflightnow.com/mars/mera/040123reco
very.html - http//spaceflightnow.com/mars/mera/040126spirit.h
tml - http//www.space.com/missionlaunches/spirit_seriou
s_040124.html - Sha, L., Rajkumar, R., Lehoczky, J., Priority
Inheritance Protocols An Approach to Real-Time
Synchronization, IEEE 1990
40Fim.