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