University of
Michigan researchers claim to have automated
the removal of software bugs that stall multi-threaded embedded
software.
"Software deadlocks can freeze the machine when different parts
of a program end up in an endless cycle of waiting for one another
as they access shared data," said the University.
The tool is called Gadara, a plug-in that operates using
feedback techniques.
"This is a totally different approach to what people had done
before for deadlock," said Gadara developer Professor Stephane
Lafortune. "Previously, engineers would try to identify potential
deadlocks through testing or program analysis and then go back and
rewrite the program. The bug fixes were manual, and not
automatic."
According to the University, Gadara works by analysing a program
to find potential deadlocks, and then inserting control logic into
the program to prevent the problem.
It uses a combination of discrete control theory and compiler
technology, said Lafortune, with the control theory providing the
logic that allows the tool to use feedback to prevent software
deadlocks.
A paper is titled "Gadara: Dynamic Deadlock Avoidance for
Multi-threaded Programs" will be presented at the USENIX Symposium
on Operating Systems Design and Implementation in San Diego next
week.