Universität Bielefeld - Technische Fakultät
 AG Rechnernetze und Verteilte Systeme 
 Arbeitsgruppe von Prof. Peter B. Ladkin, Ph.D. 
Zurück   Weiter
  From the Risk Forum 19.50  

Risks-19.50-10.1

Mars Pathfinder priority inversion (Jones, RISKS-19.49)

From: Bob Rahe < bob@hobbes.dtcc.edu>
Date: Wed, 10 Dec 1997 10:30:01 EST

In RISKS-19.49, Mike Jones <mbj@microsoft.com> writes a fascinating account of "What really happened on Mars Rover Pathfinder". It's just that kind of behind-the-scenes articles that make RISKS so great. But, near the end he talks about the 3 authors from CMU who had written a paper in 1990 that he says had first identified the priority inversion problem and proposed a solution.

Not to take anything from those authors but that exact type of problem was addressed in at least one mainframe operating system way back in the early 1970s. The Burroughs MCP (Master Control Program) that ran (and still runs as the Unisys A-Series MCP) their mainframe systems, had a locking scheme that could produce exactly that kind of problem. A lock procured by a low-priority task which then get's pre-empted by a medium- priority task, could lock out a high priority task. Their solution at the time (and still is the last time I looked) was to bump the priority of any task procuring a global system lock such as the one mentioned in the article. Simply, if priorities ran from 0 (low) to 99 (high), procuring a lock under their algorithm would add 100 to the priority of the locking program. When the lock was released the priority would be dropped back by the same amount.

While not as elegant a solution, in my opinion, it certainly was adequate for the problem given that these were not 'real-time' systems, and was certainly an enduring solution.

Another example of there apparently being nothing new in software as well as under the sun?

Bob Rahe, Delaware Tech&Comm Coll., Computer Center, Dover, Delaware
Internet: bob@hobbes.dtcc.edu

 Copyright © 1998 Peter B. Ladkin, 05. September 1998 
Letzte Änderung am 11.12.2001
von Mirco Hilbert