O que correu mal na missão
Mars Pathfinder?
Sabotagem dos Marcianos?
Departamento de Electrónica, Telecomunicações e Informática
Universidade Aveiro
30 de Outubro de 2006
Alunos:
Cátia Emanuel Ferreira
Daniel Filipe Albuquerque
N.º 27880
N.º 27955
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Mars PathFinder Mission
• Missão não tripulada a Marte (chegada a Marte em 04/07/1997) para
recolha de informação importante do planeta (meteorologia, imagens,
etc.)
• Incluiu a colocação na superfície de
Marte de um robot móvel autónomo
denominado por Sojourner Rover,
através de uma “aterragem” não
convencional.
Cátia Ferreira & Daniel Albuquerque
2
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
O que aconteceu na Missão
• Bom lançamento!
• Boa viagem!
• Boa entrada em atmosfera!
• Boa aterragem!
• Bom desembarque!
• Boas reinicializações espontâneas!
Cátia Ferreira & Daniel Albuquerque
3
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Mars PathFinder Mission
• O que correu mal?
– Após alguns dias de missão, o sistema computacional começou a ser
reiniciado repetidamente após o início da recolha de dados
meteorológicos, ficando assim incapaz de os enviar para a Terra.
• Resumo do sistema computacional usado:
– Sistema monoprocessador com o sistema operativo VxWorks
(escalonamento preemptivo por prioridades), sobre barramento VME
para ligação aos sistemas de rádio e de visão e a um barramento
1553.
– O segundo barramento (1553) efectua a ligação aos andares de
“cruzeiro” e de “aterragem” (que inclui, entre outros instrumentos, um
que permite a aquisição de dados meteorológicos: ASI/MET) da sonda
espacial.
Cátia Ferreira & Daniel Albuquerque
4
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Arquitectura Interna
• De entre as diferentes tarefas destacam-se três:
– Tarefa periódica com alta prioridade de manutenção do barramento;
• Esta tarefa tem associado um WatchDog timer (“Too Quiet? Reboot”).
– Tarefa de média prioridade para a comunicação com a Terra;
– Tarefa de baixa prioridade para a recolha de dados meteorológicos.
• Definição de WatchDog Timer:
– São relógios de tempo real com uma função pré-definida. Este relógio
é inicializado em intervalos fixos (aquando da execução da tarefa de
maior prioridade). Se o watchdog timer interrompe o CPU, então indica
que por qualquer razão o sistema operativo não executou dentro do
intervalo pré-estabelecido, o que sugere algum problema de hardware
ou de software.
Cátia Ferreira & Daniel Albuquerque
5
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
O que correu mal?
•
Barramento (1553)
anteriormente.
•
A tarefa de baixa prioridade para a recolha de dados meteorológicos
bloqueou o acesso ao barramento (1553) para publicar as leituras
efectuadas, garantido assim a exclusão mútua.
•
A tarefa periódica com alta prioridade de manutenção do barramento ficou
pronta para execução.
•
A tarefa periódica com alta prioridade de manutenção do barramento é
executada.
•
A tarefa periódica com alta prioridade de manutenção do barramento
requer o acesso ao barramento (1553) que se encontra em poder da tarefa
de baixa prioridade para a recolha de dados meteorológicos bloqueando
de seguida.
•
Como o contador do WatchDog não foi reposto a zero pois a tarefa
responsável encontra-se bloqueada, o WatchDog reinicializará o sistema.
Cátia Ferreira & Daniel Albuquerque
partilhado
pelas
três
tarefas
mencionadas
6
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
O que correu mal?
Acesso ao barramento,
bloqueia, barramento ocupado
manutenção
do barramento
(alta prioridade)
Acesso ao barramento,
continua, barramento livre
comunicação
com a Terra
(média prioridade)
recolha de dados
meteorológicos
(baixa prioridade)
Cátia Ferreira & Daniel Albuquerque
Acesso ao barramento,
continua, barramento livre
Liberta
barramento
7
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
O que correu mal?
Acesso ao barramento,
bloqueia, barramento ocupado
manutenção
do barramento
(alta prioridade)
ão! ão! …
Reset!
comunicação
com a Terra
(média prioridade)
recolha de dados
meteorológicos
(baixa prioridade)
Acesso ao barramento,
continua, barramento livre
Boas reinicializações espontâneas!
Cátia Ferreira & Daniel Albuquerque
8
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Solução!
• Herança de prioridades (Priority Inheritance)
– As tarefas que não estão bloqueadas são escalonadas de acordo com
o algoritmo preemptivo do sistema.
– As prioridades das tarefas são fixas, excepto em situações especiais:
• A Tarefa Thigh (alta prioridade) requer um recurso partilhado R.
• Se R estiver disponível, é alocado por Thigh, continuando a sua execução.
• Se R estiver alocado pela tarefa Tlow (baixa prioridade), o pedido de
recurso é negado, bloqueando a tarefa Thigh.
• Isto é, a tarefa Tlow herda a prioridade de Thigh, quando Tlow têm a
posse do recurso R.
Cátia Ferreira & Daniel Albuquerque
9
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Solução!
Acesso ao barramento
manutenção
do barramento
(alta prioridade)
barramento
ocupado
Liberta
barramento
comunicação
com a Terra
(média prioridade)
Liberta
barramento
recolha de dados
meteorológicos
(baixa prioridade)
Herda a prioridade
Acesso ao barramento
Cátia Ferreira & Daniel Albuquerque
10
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Como se resolveu?
•
Alterou-se o parâmetro do semáforo para permitir o mecanismo de
herança de prioridades.
•
Não recorrendo à consola do sistema VxWorks para efectuar a alteração.
•
Foi efectuada a correcção do código em Terra.
•
Foi apenas enviado para Marte as alterações efectuadas.
Foi detectado em Terra mas…
•
Apesar de ter sido testado a recolha de informação meteorológica em
Terra, nunca foi considerado o pior caso, mas sim o melhor.
Cátia Ferreira & Daniel Albuquerque
11
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Não era a melhor solução!
• A solução utilizada não era a melhor
– não prevenia a ocorrência de deadlock
• Supondo que um processo possui um recurso A e pede o recurso B
– Ao mesmo tempo outro processo possui B e pede A
– Ambos estão bloqueados e assim permanecerão
Acesso ao barramento B,
continua, barramento livre
manutenção
do barramento
(alta prioridade)
Acesso ao barramento A,
bloqueia, barramento ocupado
recolha de dados
meteorológicos
(baixa prioridade)
Acesso ao barramento A,
continua, barramento livre
Cátia Ferreira & Daniel Albuquerque
Acesso ao barramento B,
bloqueia, barramento ocupado
12
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
A melhor solução seria…
• Protocolo de Tecto de Prioridade
– Priority Ceiling Protocol
• É definido um valor máximo (ceiling) de prioridade para cada
mecanismo de acesso ao recurso partilhado, igual à prioridade mais
elevada de entre as tarefas que o usam. Uma tarefa só pode aceder
ao recurso se este estiver livre e se a sua prioridade for superior ao
limite actual dos outros recursos em uso.
• O protocolo apenas permite o acesso a um recurso partilhado
quando todos os restantes recursos partilhados que a tarefa
necessita estão livres.
Cátia Ferreira & Daniel Albuquerque
13
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Conclusão
• Em sistemas de tempo-real deve-se considerar sempre
o pior caso evitando assim catástrofes e escolher o
algoritmo de acordo com sistema.
• Lembremo-nos:
– Segunda lei de Sodd:
• Mais tarde ou mais cedo, o pior conjunto possível de
circunstâncias acabará por ocorrer.
– Leis de Murphy:
• Se alguma coisa puder correr mal, correrá mal.
• Se uma série de acontecimentos corre mal, fá-lo-á na pior
sequência possível!
– Lei de Dude da Dualidade:
• De dois acontecimentos possíveis, só o menos desejável ocorrerá.
Cátia Ferreira & Daniel Albuquerque
14
O que correu mal na missão Mars Pathfinder?
Universidade de Aveiro
30-10-2006
Bibliografia
•
http://www.cs.cmu.edu/afs/cs/user/raj/www/mars.html;
•
http://research.microsoft.com/research/os/mbj/Mars_Pathfinder/Mars_Pathf
inder.html
•
Bug in Mars Pathfinder Lander; Sushant Rewaskar; University of North
Carolina;
•
Scheduling on Mars; Dave Eckhardt, Bruce Maggs Bruce Maggs; 2006;
•
Priority Inheritance Protocols: An Approach to Real-Time Synchronization;
Lui Sha, Ragunathan Rajkumar, John Lehoczky; IEEE Transactions on
Computers, Vol. 39, No. 9, September 1990;
•
Resource Access Protocols, Real-Time Systems; Riccardo Bettati;
Department of Computer Science Texas A&M University;
•
A Arte e a Ciência da Depuração, Fabio Kon, 2002.
Cátia Ferreira & Daniel Albuquerque
15
Download

Apresentação