Title: Failure in the PATHFINDER Mission
1Failure in the PATHFINDER Mission
- Chandan Kumar
- EE 585 Fault Tolerant Computing
2Background
- Simplified view of Hardware Architecture
- Single CPU Controls the Spacecraft.
- Resides on VME bus.
- Interface cards for Radio and Camera.
- Interface to 1553 bus.
- 1553 bus connects to cruiser and lander
stages. - H/W on Cruiser controls thrusters .etc
- H/W on Lander interface to instruments like
accelerometer,radar altimeter and ASI/MET etc.
3The Software Architecture
lt ------------------------ .125 seconds
----------------------------gt
lt
gt
lt- bc_dist active -gt bc_sched active
lt - bus active - gt
lt-gt
------------------------------------------------
------------------------------ t1
t2 t3
t4 t5 t1
The are periods when tasks
other than the ones listed are executing. There
is some idle time. t1 - bus hardware starts via
hardware control on the 8 Hz boundary. The
transactions for the this cycle had been set up
by the previous execution of the bc_sched
task. t2 - 1553 traffic is complete and the
bc_dist task is awakened.t3 - bc_dist task has
completed all of the data distributiont4 -
bc_sched task is awakened to setup transactions
for the next cyclet5 - bc_sched activity is
complete
4The Failure
- The spacecraft began experiencing total system
resets. - This reset reinitializes all of the hardware and
software. It also terminates the execution of the
current ground commanded activities. - The remainder of the activities for that day were
not accomplished until the next day
5The Cause
- The Failure - a case of Priority Inversion
- The failure was identified by the spacecraft as a
failure of the bc_dist task to complete its
execution before the bc_sched task started - The ASI/MET task is delivered its information via
an interprocess communication mechanism (IPC). - IPC mechanism based on using Pipes.
- The higher priority bc_dist task was blocked by
the much lower priority ASI/MET task that was
holding a shared resource.
6The Cause contd..
- The resource that caused this problem was a
mutual exclusion semaphore used within the
select() mechanism. - The ASI/MET task had acquired this resource and
then been preempted by several of the medium
priority tasks. - The bc_dist task attempted to send the newest
ASI/MET data via the IPC mechanism which called a
Pipe. This pipe blocked taking the semaphore. - The medium priority tasks ran, still not allowing
the ASI/MET task to run, until the bc_sched task
was awakened. - At that point, the bc_sched task determined that
the bc_dist task had not completed its cycle (a
hard deadline in the system) and declared the
error that initiated the reset.
7Correction
- Changing the creation flags for the semaphore so
as to enable the priority inheritance - Modify the semaphore associated with the pipe
used for bc_dist task to ASI/MET task
communications corrected the problem.
8Questions??
9References
- http//mars.jpl.nasa.gov/missions/past/pathfinder.
html - http//research.microsoft.com/7embj/Mars_Pathfind
er/Authoritative_Account.html