I am pleased to invite you to the following seminar of the Faculty of
Computer Science of Bolzano-Bozen.
The seminar takes place at P.za Sernesi, 1, room D101
For the complete list of the Faculty Seminar Series 2006/2007 and
additional information on how to reach us, please visit the web site
06.06.07, 14:00-15:00 - Faculty of Computer Science, Free University of
Bolzano-Bozen, P.za Sernesi, 1, room D101
Eliminating Fatal Errors in Software Systems
Martin Rinard - Department of Electrical Engineering and Computer
Science Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology
I will present a set of simple techniques that enable software systems
to survive otherwise fatal errors. The goal is to enable systems to
execute through such errors, potentially with degraded functionality, to
continue to serve the needs of their users.
I will first address techniques for eliminating resource consumption
errors such as memory leaks, file handle leaks, infinite loops, and
infinite recursions. Our experimental results show that our techniques
eliminate resource consumption errors in widely used programs such as
Squid, Pine, and xinetd.
I will also discuss failure-oblivious computing, a technique for
ignoring memory addressing errors. A system that uses failure-oblivious
computing checks each memory access to discard out of bounds writes and
manufacture values for out of bounds reads. Our experimental results
show that this technique eliminates buffer-overflow security
vulnerabilities and enables widely used servers such as Apache, Pine,
and Sendmail to continue to execute successfully through otherwise fatal
All of these techniques are simple to implement and deploy. They do,
however, perturb the standard programming language semantics and
introduce the possibility of taking the software down unanticipated
execution paths. As such, they represent a significant departure from
standard approaches. I will briefly discuss the benefits and risks of
adopting such techniques.
Martin Rinard is a Professor in the MIT Department of Electrical
Engineering and Computer Science and a member of the MIT Computer
Science and Artificial Intelligence Laboratory. His research interests
include parallel and distributed computing, programming languages,
program analysis, program verification, and software engineering.
Much of his current research focuses on techniques that enable
software systems to execute successfully in spite of the presence of
errors. Results in this area include acceptability-oriented computing
(a framework for ensuring that software systems satisfy basic
acceptability properties), failure-oblivious computing (a technique
for enabling programs to execute successfully through otherwise fatal
memory addressing errors), and a technique for providing probabilistic
bounds on the accuracy of program outputs in the presence of failures.
Reference person: Sillitti Alberto <mailto:%20Alberto.Sillitti@unibz.it>