Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
20th may 2004
Computer Laboratory > Research > Systems Research Group > NetOS > Seminars > 20th may 2004

Exceptions and side-effects in atomic blocks

Tim Harris
In recent work we've been looking at the design and implementation of a new "atomic" keyword as an extension to the Java programming language. It allows programmers to perform a series of heap accesses atomically without needing to use mutual exclusion locks. In a paper at OOPSLA 2003 we showed that data structures built using it could perform well and scale to large multi-processor systems.
In this talk I'll present some initial thoughts on extending this design in two ways. The first of these is how to provide an explicit "abort" operation to abandon execution of an atomic block and to automatically undo any updates made within it. The second extension is to enable external I/O to be performed within an atomic block.
Both extensions are based on a single "external action" abstraction, allowing code running within an atomic block to request that a given pre-registered operation be executed outside the block. Providing these features without opening a back-door to circumvent language-based security turned out to be a much more intricate problem than it first appeared.